// Demonstrates sound input. Download and install Sonia // from http://sonia.pitaru.com before running. import pitaru.sonia_v2_9.*; import SoniaHelper.*; float level,damperval; SoniaHelper fft; void setup(){ size(512,400); // Start Sonia engine. Sonia.start(this); // Start LiveInput and return 256 FFT frequency bands. LiveInput.start(256); LiveInput.useEqualizer(true); // Initialize SoniaHelper // SoniaHelper(int _n, int _nbands,boolean doAvg) int spectrumLength=256; int numbands=8; fft=new SoniaHelper(spectrumLength,numbands,false); fft.setMaxLimits(50,500); // dampen sound input. 0.1 == 10% change per frame. damperval=0.1; fft.setDamper(damperval); } void draw() { background(0); // get spectrum data from Sonia LiveInput.getSpectrum(); // use SoniaHelper to modify spectrum data. // SoniaHelper.spectrum[] contains values normalized to // be in the range [0..1] fft.update(LiveInput.spectrum); noStroke(); fill(255,0,0); for(int i=0; i<256; i++) { level=fft.spectrum[i]*(height-10); rect(i*2,height-(level+10), 2,level+10); } }