diff --git a/sclang-play/tutorial.sc b/sclang-play/tutorial.sc index 8b34540..01a44e5 100644 --- a/sclang-play/tutorial.sc +++ b/sclang-play/tutorial.sc @@ -2,6 +2,10 @@ s.boot; ) +( + s.reboot; +) + ( s.quit; ) @@ -249,3 +253,138 @@ //x.free; }).play; ) + +( + In.ar(0, 1); + In.ar(0, 4); +) + +( + { + Out.ar(0, SinOsc.kr) + }.play; +) + +( + { + Out.kr(0, SinOsc.ar) + }.scope; +) + +( + SynthDef( + "tutorial-args", + { + |freq = 440, out = 0| + Out.ar(out, SinOsc.ar(freq, 0, 0.2)); + } + ).add; + + x = Synth("tutorial-args", ["out", 1, "freq", 660]); + y = Synth("tutorial-args", ["out", 1, "freq", 770]); +) + +( + b = Bus.control(s, 2); + c = Bus.audio(s); +) + +( + b = Bus.control(s, 2); + b.index.postln; + b.numChannels.postln; + + c = Bus.control(s); + c.index.postln; + c.numChannels.postln; +) + +( + SynthDef( + "tutorial-Infreq", + { + |bus, freqOffset = 0| + Out.ar(0, SinOsc.ar(In.kr(bus) + freqOffset, 0, 0.5)); + } + ).add; + + SynthDef( + "tutorial-Outfreq", + { + |freq = 400, bus| + Out.kr(bus, SinOsc.kr(1, 0, freq/40, freq)); + } + ).add; + + b = Bus.control(s, 1); + + x = Synth("tutorial-Outfreq", [\bus, b]); + y = Synth.after(x, "tutorial-Infreq", [\bus, b]); + z = Synth.after(x, "tutorial-Infreq", [\bus, b, \freqOffset, 200]); +) + +( + SynthDef( + "tutorial-DecayPink", + { + |outBus = 0, effectBus, direct = 0.5| + var source; + source = Decay2.ar(Impulse.ar(1, 0.25), 0.01, 0.2, PinkNoise.ar); + Out.ar(outBus, source * direct); + Out.ar(effectBus, source * (1 - direct)); + } + ).add; + + SynthDef( + "tutorial-DecaySin", + { + |outBus = 0, effectBus, direct = 0.5| + var source; + source = Decay2.ar( + Impulse.ar(1, 0.25), + 0.3, + 1, + SinOsc.ar( + SinOsc.kr(0.2, 0, 110, 440) + ) + ); + + Out.ar(outBus, source * direct); + Out.ar(effectBus, source * (1 - direct)); + } + ).add; + + SynthDef( + "tutorial-Reverb", + { + |outBus = 0, inBus| + var input; + + input = In.ar(inBus, 1); + + 16.do({ + input = AllpassC.ar( + input, + 0.04, + { + Rand(0.001, 0.04); + }.dup, + 3 + ) + }); + + Out.ar(outBus, input); + } + ).add; + + b = Bus.audio(s, 1); + + x = Synth("tutorial-Reverb", [\inBus, b]); + y = Synth.before(x, "tutorial-DecayPink", [\effectBus, b]); + z = Synth.before(x, "tutorial-DecaySin", [\effectBus, b, \outBus, 1]); + + y.set(\direct, 1); + z.set(\direct, 1); + y.set(\direct, 0); + z.set(\direct, 0); +)