// Input FFT // original code by Marius Watz // modified by Krister Olsson // Showcase for new FFT processing options in Ess v2. // Clicking and dragging changes FFT damping // Created 27 May 2006 import krister.Ess.*; int bufferSize; int steps; float limitDiff; int numAverages=32; float myDamp=.1f; float maxLimit,minLimit; FFT myFFT; AudioInput myInput; void setup () { size(700,221); // start up Ess Ess.start(this); // set up our AudioInput bufferSize=512; myInput=new AudioInput(bufferSize); // set up our FFT myFFT=new FFT(bufferSize*2); myFFT.equalizer(true); // set up our FFT normalization/dampening minLimit=.005; maxLimit=.05; myFFT.limits(minLimit,maxLimit); myFFT.damp(myDamp); myFFT.averages(numAverages); // get the number of bins per average steps=bufferSize/numAverages; // get the distance of travel between minimum and maximum limits limitDiff=maxLimit-minLimit; framerate(25); myInput.start(); } void draw() { background(0,0,255); // draw the waveform stroke(255,100); int interp=(int)max(0,(((millis()-myInput.bufferStartTime)/(float)myInput.duration)*myInput.size)); for (int i=0;i1) myDamp=1; else if(myDamp<0) myDamp=0; myFFT.damp(myDamp); } public void audioInputData(AudioInput theInput) { myFFT.getSpectrum(myInput); }