(
s = Server.local;
b = Buffer.alloc(s, 4096, 1);
c = Buffer.alloc(s, 4096, 1);
)
(
SynthDef("Oscer1",{ arg nextTime=0.5, bufnum=0, freq=80, envLev=1.0;
var env, osc, sum, out;
env = EnvGen.kr(Env.new([0,1,1, 0],[0.1, 0.98,0.1]), levelScale: envLev, timeScale: nextTime*0.98, doneAction: 2);
osc = Osc.ar(b.bufnum,[freq,freq+(freq*0.0025)], 0, 0.5); //[freq,freq+(freq*0.0025)]
sum = (env*osc);
Out.ar(0, sum);
}).send(s);
SynthDef("Oscer2",{ arg nextTime=0.5, bufnum=0, freq=80, envLev=1.0;
var env, osc, sum, out;
env = EnvGen.kr(Env.new([0,1,1, 0],[0.1, 0.98,0.1]), levelScale: envLev, timeScale: nextTime*0.98, doneAction: 2);
osc = Osc.ar(c.bufnum,[freq,freq+(freq*0.0025)], 0, 0.5);
sum = (env*osc);
Out.ar(0, sum);
}).send(s);
)
(
t=TempoClock(110/60);
u=t.beatDur/4;
Routine({ arg nextTime;
OSCSched.global.tdeltaTillNext(4.0).wait;
loop({
nextTime = u;
s.sendBundle(nil,[\s_new, \Oscer1, 1001, 1, 0,
\freq, 26.midicps,
\envLev, rrand(0.6, 0.8),
\nextTime, nextTime
]);
(nextTime*2).wait;
});
}).play;
Routine({ arg nextTime;
var n = 7;
OSCSched.global.tdeltaTillNext(4.0).wait;
loop({
nextTime = u;
(nextTime*1.5).wait;
b.sine1(Array.rand(n,0,1).cubed, true, true, true);
(nextTime*0.5).wait;
});
}).play;
Routine({ arg nextTime;
OSCSched.global.tdeltaTillNext(4.0).wait;
loop({
nextTime = u;
nextTime.wait;
s.sendBundle(nil,[\s_new, \Oscer2, 1002, 1, 0,
\freq, 38.midicps,
\envLev, rrand(0.5, 0.8),
\nextTime, nextTime
]);
nextTime.wait;
});
}).play;
Routine({ arg nextTime;
var n = 7;
OSCSched.global.tdeltaTillNext(4.0).wait;
loop({
nextTime = u;
(nextTime*0.5).wait;
c.sine1(Array.rand(n,0,1).cubed, true, true, true);
(nextTime*1.5).wait;
});
}).play;
)
/*authors so far: Jonathan Segel */ |