// title: example with sc // author: tonetron // description: // From Kyoto city in Japan. // code: s.boot; /*SynthDef section*/ ( SynthDef(\raintree02, {arg freq,amp,pan; var out, env; env = Env.perc(0.01,0.5); out = SinOsc.ar(freq.midicps,0,1.0) * EnvGen.kr(env, doneAction: 2); out = Pan2.ar(out, pan); out = FreeVerb.ar(out, 0.3,0.3,0.1,amp); Out.ar(0, out); }).send(s); ) /*Task section*/ ( var midiArray = [ [31,38,41,44,48,52] ,[33,38,45,48,51,55],[35,42,44,45,48,52] ]; var midi; var taskArray = [ 0,0 ]; Task({ inf.do({arg num1; if( (num1+1).mod(4) == 0,{ midiArray = midiArray.scramble; midiArray = midiArray + 1.rand2; }); midi = midiArray.wrapAt(num1); num1.postln; midi.postln; taskArray.wrapAt(num1).stop; taskArray.wrapPut(num1, Task({ inf.do({arg num2; var oct; oct = [0,12,24,36].wchoose( [0.2,0.25,0.3,0.25]); Synth(\raintree02,[ \freq, midi.wrapAt(num2)+oct, \amp, rrand(0.05, 0.4), \pan, [-0.8,0.8].wrapAt(num1); ]); if( (num2+1).mod(40) == 0,{ midi = midi.scramble; }); 0.25.wait; }) }).start; ); 20.wait; }) }).start; )