// 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 */ |