オーディオ入力の音量がしきい値を超えたときにイベントをトリガー(長方形を描画)します。
threshold input trigger
Sound Interaction
View Source Code
/**
* @name Mic Threshold
* @arialabel Black rectangle is drawn on the bottom of a bar based on the amplitude of the user’s audio input. At a certain minimum amplitude, grey squares are randomly drawn on the right side of the screen
* @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
let input;
let analyzer;
function setup() {
// createCanvas(710, 200);
createCanvas(windowWidth, windowHeight);
background(255);
// Create an Audio input
input = new p5.AudioIn();
input.start();
}
function draw() {
// Get the overall volume (between 0 and 1.0)
let volume = input.getLevel();
// If the volume > 0.1, a rect is drawn at a random location.
// The louder the volume, the larger the rectangle.
let 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
let y = map(volume, 0, 1, height, 0);
let 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);
}
License
Source code is available on GitHub p5.js website legacy.
All examples are licensed under CC BY-NC-SA 4.0.