Project: p5_sc / Examples: Buffer.read
Examples: Buffer.read
Reads a sound file from disk, and plays back the file once the read operation is completed. Frees the buffer upon a mouse click.
SynthDefs
SynthDef(\playbuf_2, { |bufnum = 0, outbus = 0, amp = 0.5, loop = 0, rate = 1.0| var data; data = PlayBuf.ar(2, bufnum, BufRateScale.kr(bufnum) * rate, 0, 0, loop); FreeSelfWhenDone.kr(data); Out.ar(outbus, data * amp); }).store;
Processing Code
import supercollider.*; Buffer buffer; void setup () { buffer = new Buffer(2); buffer.read("/Users/daniel/audio/samples/acoustic/piano-chord.aif", this, "done"); } void draw () { } void done (Buffer buffer) { println("Buffer loaded."); println("Channels: " + buffer.channels); println("Frames: " + buffer.frames); println("Sample Rate: " + buffer.sampleRate); Synth synth = new Synth("playbuf_2"); synth.set("bufnum", buffer.index); synth.create(); } void mousePressed() { buffer.free(this, "freed"); } void freed (Buffer buffer) { println("Buffer freed."); }

