// julian wrote... SynthDef("zz", { arg out, freq=440, sustain=0.1; var n, e; n = WhiteNoise.ar(18); e = EnvGen.ar(Env.perc(0.001, sustain), 1, doneAction:2); n = BPF.ar(n * e, freq * SinOsc.ar(e * 1000 * [1, 1.01], 0, 0.3, 1), 0.01); Out.ar(out, n * 2); }).send(b); Tdef(\z).play; ( var c; c = [0, 2, 3, 5, 7, 11]; Tdef(\z, { 10.do { arg i; b.allAddr.choose.sendMsg(9, \zz, -1,0,0, \freq, midicps(rrand(0, 11).degreeToKey(c) + 60 + 12 + 12)); 0.1.wait; } }) ) + some synthdefs : // main grain, classic gabor. SynthDef("grain", { arg out = 0, freq=800, sustain=0.001, amp=0.5, pan = 0; var window; window = Env.sine(sustain, amp); Out.ar(out, Pan2.ar( SinOsc.ar(freq), pan ) * EnvGen.ar(window, doneAction:2) ) } ).send(b); /***** b.sendMsg("/s_new", "grain", -1, 0, 0, \freq, 2000, \sustain, 1.1, \out, 0); ******/ SynthDef("grainFM", { arg out = 0, freq=800, freqFM=800, fmi = 10.5, sustain=0.001, amp = 0.5, pan = 0.0; var window; window = Env.sine(sustain, amp); Out.ar(out, Pan2.ar( SinOsc.ar( SinOsc.ar(freqFM) * fmi + freq ), pan ) * EnvGen.ar(window, doneAction:2) ) } ).send(b); /***** b.at(3.rand).sendMsg("/s_new", "grainFM", -1, 0, 0, \freq, exprand(100,13390),\freqFM, rrand(1, 100), \fmi, rrand(12200, 1), \sustain, rrand(0.03, 2), \out, 0, \pan, -0.5, \amp, 0.1); *******/ SynthDef("glisson", { arg out = 0, freq=800, freq2=1200, sustain=0.001, amp=0.5, pan = 0.0; var window, freqEnv; window = Env.sine(sustain, amp); freqEnv = Env([ freq, freq2 ], [ sustain ]); Out.ar(out, Pan2.ar( SinOsc.ar(EnvGen.ar(freqEnv)), pan ) * EnvGen.ar(window, doneAction:2) ) }).send(b); /***** b.sendMsg("/s_new", "glisson", -1, 0, 0, \freq2, rrand(2000, 12000), \sustain, 0.1, \out, 1, \pan, 0.5); *****/ **************/* authors so far: the changing grammar ensemble */ |