// psychostochastics : SuperCollider 3.10
(
SynthDef.new(\sinewave, {
arg freq=100, atk=0.01, rel=1, amp=1, index=800, panstart=0, panend=0,
fxmix = 0.5;
var sig, env, panenv;
sig = SinOsc.ar(freq + SinOsc.ar(freq, mul:index));
env = EnvGen.kr(Env([0,0.5,0],[atk,rel],[1.0,-1.0]),doneAction:2);
panenv = EnvGen.kr(Env([panstart,panend],[atk+rel]));
sig = Pan2.ar(sig,panenv,amp);
Out.ar(0, sig*env);
Out.ar(2, sig*env*fxmix); // FX Send
}).add
)
(
SynthDef.new(\reverb, {
var sig;
sig = FreeVerb2.ar(In.ar(2),In.ar(3),1,0.9,0.1);
Out.ar(0,sig);
}).add
)
(
x = Synth.new(\reverb);
20.do{
p = Pbind(
\instrument, \sinewave,
\freq, Pexprand(80,300,inf),
\dur, Pwhite(8.0,16.0,inf),
\atk, Pexprand(0.001,8,inf),
\rel, Pwhite(0.001,8,inf),
\panstart, Pwhite(-1,1,inf),
\panend, Pwhite(-1,1,inf),
\index,Pexprand(2,10000*0.7,inf),
\fxmix,Pwhite(0,0.9),
).play
}
)
|