diff --git a/sclang-play/tut/ch02.sc b/sclang-play/tut/ch02.sc new file mode 100644 index 0000000..015ce1e --- /dev/null +++ b/sclang-play/tut/ch02.sc @@ -0,0 +1,195 @@ +( + s.boot; +) + +( + FreqScope.new; +) + +( + { + WhiteNoise.ar(0.1) + }.scope +) + +( + { + LPF.ar(WhiteNoise.ar(0.1), 1000) + }.scope +) + +( + { + HPF.ar(LPF.ar(WhiteNoise.ar(0.1), 1000), 1000) + }.scope +) + +( + { + LPF.ar(WhiteNoise.ar(0.1), Line.kr(10000, 1000, 10)) + }.scope +) + +( + { + Resonz.ar( + LFNoise0.ar(400), + 1000, + 0.1 + ) + }.scope +) + +( + { + Resonz.ar( + LFNoise0.ar(400), + Line.kr(10000, 1000, 10), + 0.1 + ) + }.scope +) + +( + { + var source, line, filter; + + source = LFNoise0.ar(400); + line = Line.kr(10000, 1000, 10); + filter = Resonz.ar(source, line, 0.1); + + filter + }.scope; +) + +( + { + SinOsc.ar + }.scope +) + +( + { + SinOsc.ar(400, 0, 0.1) + SinOsc.ar(660, 0, 0.1) + }.scope +) + +( + { + SinOsc.ar([400, 660], 0, 0.1) + }.scope +) + +( + { + Pan2.ar( + WhiteNoise.ar(0.1), + MouseX.kr(-1, 1) + ) + }.scope +) + +( + { + SinOsc.ar([400], 0, 0.1) + }.scope +) + +( + { + SinOsc.ar(400, 0, 0.1) + }.scope +) + +( + { + SinOsc.ar([400, 660, 870], 0, 0.1) + }.scope +) + +( + { + Mix( + SinOsc.ar([400, 660], 0, 0.1) + ) + }.scope +) + +( + { + Pan2.ar( + Mix( + SinOsc.ar([400, 660], 0, 0.1) + ), + MouseX.kr(-1, 1) + ) + }.scope +) + +// sawtooth wave +( + { + var n = 10; + var wave = Mix.fill(10, { |i| + var mult = ((-1) ** i) * (0.5 / ((i + 1))); + SinOsc.ar(440 * (i + 1)) * mult + }); + + Pan2.ar(wave / n, 0.0); + }.scope +) + +// square wave +( + { + var n = 10; + var wave = Mix.fill(10, { |i| + var harmonicnumber = 2 * i + 1; + SinOsc.ar(440 * harmonicnumber) / harmonicnumber + }) * 0.25; + + Pan2.ar(wave, 0.0); + }.scope +) + +// triangle wave +( + { + var n = 10; + var wave = Mix.fill(10, { |i| + var harmonicnumber = 2 * i + 1; + var mult = ((-1) ** ((harmonicnumber - 1)/2)) * (1.0/(harmonicnumber*harmonicnumber)); + SinOsc.ar(440 * i) * mult + })/n; + + Pan2.ar(wave, 0.0); + }.scope +) + +( + { + Mix( + SinOsc.ar(500 * [0.5, 1, 1.19, 1.56, 2.51, 2.66, 3.01, 4.1], 0, 0.1) + ) + }.scope +) + +( + { + Mix( + SinOsc.ar( + 500 * [0.5, 1, 1.19, 1.56, 2.51, 2.66, 3.01, 4.1], + 0, + 0.1 * [0.25, 1, 0.8, 0.5, 0.9, 0.4, 0.3, 0.6, 0.1] + ) + ) + }.scope +) + +( + var n = 10; + + { + Mix(SinOsc.ar(250 * (1..n), 0, 1/n)) + }.scope +)