// Example by Krister Olsson
import krister.Ess.*;
AudioStream myStream;
AudioInput myInput;
boolean inputReady=false;
float[] streamBuffer;
void setup() {
size(256,200);
// start up Ess
Ess.start(this);
// create a new AudioInput
myInput=new AudioInput();
// create a new AudioStream
myStream=new AudioStream(myInput.size);
streamBuffer=new float[myInput.size];
// start
myStream.start();
myInput.start();
}
void draw() {
}
void keyPressed() {
if (myInput.state==Ess.RECORDING) myInput.stop();
else myInput.start();
}
void audioStreamWrite(AudioStream theStream) {
// block until we have some input
while (!inputReady);
System.arraycopy(streamBuffer,0,myStream.buffer,0,streamBuffer.length);
inputReady=false;
}
void audioInputData(AudioInput theInput) {
System.arraycopy(myInput.buffer,0,streamBuffer,0,myInput.size);
inputReady=true;
}
// we are done, clean up Ess
public void stop() {
Ess.stop();
super.stop();
}
|