// Listing 5.9 Creating and using a cool granularize() function to chop up a sound file SndBuf2 click => dac; // (1) Makes and connects a stereo SndBuf2 // read soundfile, (2) Loads stereo SndBuf2 with a stereo sound file me.dir() + "/audio/stereo_fx_01.wav" => click.read; // function to hack up any sound file fun void granularize(SndBuf myWav, int steps ) // (3) Defines granularize function { myWav.samples()/steps => int grain; // (4) Calculates grain size // (5) Sets play pointer to random grain location in buffer Math.random2(0,myWav.samples() - grain) + grain => myWav.pos; grain :: samp => now; } // Main Program while (true) { // call function, time passes there granularize(click, 70); }