Well, if the gains are overlaped (I think yes) this woks fine. b = Buffer.readChannel(s, "/Users/berio/Desktop/Tren Snare/Snare009.wav", channels:0); b.play; c = Buffer.alloc(s, 1); c.set(0, 1); ( SynthDef('grainTrain', {arg freq = 1, amp = 1, sndbuf, envbufnum; var dur = BufDur.kr(sndbuf); var rate = 1; var pos = 0; var interp = 1; var pan = 0; var signal = GrainBuf.ar(1, Impulse.ar(freq), dur, sndbuf, rate, pos, interp, pan, envbufnum); Out.ar(0, signal.dup * amp); }).send(s); ) x = Synth('grainTrain', [freq:1, amp:0.2, sndbuf:b, envbufnum:c]); x.set(\freq, 14, \amp, 0.1); x.set(\freq, 440); x.set(\freq, 100); x.set(\freq, 3); Thanks you very much. Lucas |