Les 2
//boot de server
s.boot;
//een functie
~sinus = {SinOsc.ar([100, 101, 50], 0, [0.2, 0.1])}
//voer de functie uit
~sinus.play;
//simpele synth definitie
(
SynthDef(\sin, {|freq = 100, amp = 0.4|
var lala;
lala = SinOsc.ar([freq, freq+1], 0, amp);
Out.ar(0, lala);
}).add;
)
// nu een synth definitie met een envelope!!!!
(
SynthDef(\sinEnv, {|freq = 100, amp = 0.4, t_trig = 1, att=0.001|
var lala, envelope;
//zo maak je een envelope
envelope = EnvGen.ar(Env.perc(att, 2, amp, -8), gate: t_trig,
doneAction:2);
lala = SinOsc.ar([freq, freq+1], 0, envelope);
Out.ar(0, lala);
}).add;
)
//definieer patronen met een Pbind
(
~pattern = Pbind( \instrument, \sinEnv,
\dur, 0.5,
//Pseq maakt een sequentie
\freq, Pseq([48,50,60,67].midicps, inf),
\amp, Pseq([0.4, 0.2, 0.1], inf),
\att, Pseq([0.0001, 3, 0.0004],inf),
\t_trig, 1);
)
//speel de Pbind en er worden synths gestart
~play = ~pattern.play;
//simpel algoritme
Routine({
var omhoog = 0;
10.do({
omhoog = omhoog + 1;
0.5.wait;
omhoog.postln;
});
"klaar".postln;
}).play;