// title: num1 // author: Devi Skanadze // description: // code: ( ~particles = 5; ~rect = Array.fill(512, {arg i; rrand(-1.0, 1.0)}); ~sig = Signal.sineFill(512, ~rect); ~buff = Buffer.sendCollection(s,~sig); SynthDef(\fm, { arg freq = 60, l_shift = 0, lfo_rate = 0.5,fm_ratio = 3, fm_amount, dur = 2, fm_lfo; var snd, fm, env, lfo; lfo = LPF.ar(Wrap.ar(LFSaw.ar(lfo_rate, 1, 0.5, 0.5) + l_shift), 50); fm = SinOsc.ar(freq * fm_ratio, 0, SinOsc.ar(fm_lfo, 0, fm_amount)); env = EnvGen.kr(Env.sine(dur, 0.1), doneAction: 2); snd = SinOsc.ar(freq + fm, 0, env) * lfo; snd = RLPF.ar(BufRd.ar(1,~buff, LinLin.ar(snd, -1.0, 1.0, 0.0, BufFrames.kr(~buff))), 2000, 2.reciprocal) * 0.25; Out.ar(0, Pan2.ar(snd, 0)); }).add; ) ( var seq = [66, 73, 85, 76, 66, 73, 87, 78, 66, 73, 85, 76, 66, 73, 87, 78, 59, 66, 82, 73, 59, 66, 83, 75, 59, 66, 82, 73, 59, 66, 83, 75, 66]; var count = 0; ~t = Task({ seq.size.do({ postln(count); for(0, ~particles, {arg i; Synth(\fm, [\freq, (seq[count] - 24).midicps * i, \lfo_rate, 0.5, \dur, 12, \l_shift, ~particles.reciprocal * i, \fm_ratio, [2,3,4,5,6].choose, \fm_lfo, rrand(0.5,3.0), \fm_amount, rrand(100,500)])}); count = count + 1; 4.wait; }); }).play; )