More fun in Getting Started 11

This commit is contained in:
Dan Buch 2015-10-24 13:02:27 -04:00
parent 8500a540ed
commit 5f7cd27d9f

View File

@ -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);
)