xxxxxxxxxx
50
/**
* @name Mic Threshold
* @description <p>Trigger an event (draw a rectangle) when the Audio Input
* volume surpasses a threshold.</p>
* <p><em><span class="small"> To run this example locally, you will need the
* <a href="http://p5js.org/reference/#/libraries/p5.sound">p5.sound library</a>
* and a running <a href="https://github.com/processing/p5.js/wiki/Local-server">local server</a>.</span></em></p>
*/
// Adapted from Learning Processing, Daniel Shiffman
// learningprocessing.com
var input;
var analyzer;
function setup() {
createCanvas(710, 200);
background(255);
// Create an Audio input
input = new p5.AudioIn();
input.start();
}
function draw() {
// Get the overall volume (between 0 and 1.0)
var volume = input.getLevel();
// If the volume > 0.1, a rect is drawn at a random location.
// The louder the volume, the larger the rectangle.
var threshold = 0.1;
if (volume > threshold) {
stroke(0);
fill(0, 100);
rect(random(40, width), random(height), volume*50, volume*50);
}
// Graph the overall potential volume, w/ a line at the threshold
var y = map(volume, 0, 1, height, 0);
var ythreshold = map(threshold, 0, 1, height, 0);
noStroke();
fill(175);
rect(0, 0, 20, height);
// Then draw a rectangle on the graph, sized according to volume
fill(0);
rect(0, y, 20, y);
stroke(0);
line(0, ythreshold, 19, ythreshold);
}