// Squirrel/Echo Voice // by Krister Olsson // Sound is grabbed from the microphone and pitch // shifted or reverbed in real-time (toggled by // pressing any key) // // Note: Requires a fast computer // Created 14 May 2006 import krister.Ess.*; AudioStream myStream; AudioInput myInput; PitchShift myShift; Amplify myAmplify; Reverb myReverb; boolean inputReady=false; float[] streamBuffer; boolean toggle=true; void setup() { size(256,200); // start up Ess Ess.start(this); // create a new AudioInput (4k buffer) myInput=new AudioInput(4096); // create a new AudioStream (4k buffer) myStream=new AudioStream(myInput.size); streamBuffer=new float[myInput.size]; // our filters myShift=new PitchShift(2); myAmplify=new Amplify(4); myReverb=new Reverb(); // start myStream.start(); myInput.start(); framerate(30); } void draw() { background(0,0,255); // paint the top white fill(255); noStroke(); rect(0,0,width,height/2); // draw both waveforms int interp=(int)max(0,(((millis()-myStream.bufferStartTime)/(float)myStream.duration)*myStream.size)); for (int i=0;i<256;i++) { float leftp=50; float rightp=50; float left=150; float right=150; if (i+interp+1