This applet requires the Jsyn plug-in.

Example
// Learning Processing
// Daniel Shiffman
// http://www.learningprocessing.com

// Example 20-7: Sound events (double threshold) with Sonia

// Import the Sonia library
import pitaru.sonia_v2_9.*;

float clapLevel = 0.5;  // How loud is a clap
float threshold = 0.25; // How quiet is silence
boolean clapping = false;

void setup() {
  size(200,200);
  Sonia.start(this); // Start Sonia engine.
  LiveInput.start(); // Start listening to the microphone
  smooth();
  background(255);
}

void draw() {

  // Get the overall volume (between 0 and 1.0)
  float vol = LiveInput.getLevel();

  // If the volume is greater than 0.5, and we were not previously clapping, then we are clapping! 
  if (vol > clapLevel && !clapping) { 
    stroke(0);
    fill(0,100);
    rect(random(width),random(height),vol*20,vol*20);
    clapping = true; // We are now clapping!
  } else if (clapping && vol < threshold) { 
    // Otherwise, if we were just clapping and the volume level has gone down below 0.25, then we are no longer clapping!
    clapping = false;
  }
  
  // Graph the overall volume
  // First draw a background strip
  noStroke();
  fill(200);
  rect(0,0,20,height);
  
  // Then draw a rectangle size according to volume
  fill(100);
  rect(0,height-vol*height/2,20,vol*height/2);
  
  // Draw lines at the threshold levels
  stroke(0);
  line(0,height-clapLevel*height/2,19,height-clapLevel*height/2 );
  line(0,height-threshold*height/2,19,height-threshold*height/2 );
}

// Close the sound engine
public void stop() {
  Sonia.stop();
  super.stop();
}