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.");
}
Creative Commons License

Valid XHTML 1.0 Strict Valid CSS 2