SndBuf buff => dac; SndBuf buff2 => dac; Phasor grain => blackhole; Phasor speed => blackhole; buff.read("cool.wav"); buff2.read("cool.wav"); 50 => int grain_size; 1000 / grain_size => grain.freq; (1000 / (buff.samples() / 44.1)) * .25 => speed.freq; while (true) { ((grain.last() * grain_size * 44.1) + (speed.last() * buff.samples())) $ int => buff.pos; (Math.sin(grain.last() * pi)) => buff.gain; ((((grain.last() + .5 ) % 1.) * grain_size * 44.1) + (speed.last() * buff.samples())) $ int => buff2.pos; (Math.sin(((grain.last() + .5 ) % 1.)* pi)) => buff2.gain; 1::samp => now; }