/* Generic modulable buffer granulator */ SynthDef(\grainoo, { |buf, gate = 1| var sig, env; env = EnvGen.ar( Env.asr( \attack.kr(0.0), \decay.kr(1.0), \release.kr(1.0)), gate, // doneAction: Done.freeSelf ); sig = GrainBuf.ar( numChannels: 2, trigger: Impulse.ar(\trig_rate.kr(20)), dur: \gdur.kr(0.5), sndbuf: buf, rate: \rate.kr(0.5) * (0.01 + env), pos: \gpos.kr(0), pan: \gpan.kr(0), ); sig = RLPF.ar(sig, \ff.kr(6000), \rq.kr(1)); sig = sig * env; sig = sig * \amp.kr(1); sig = Limiter.ar(sig); Out.ar(\out.kr(0), sig); }).add;