xxxxxxxxxx
37
var wave;
let mic;
function setup() {
createCanvas(200, 200);
wave = new p5.Oscillator();
wave.setType('sine');
wave.start();
wave.amp(0.2);
wave.freq(440);
mic = new p5.AudioIn();
mic.start();
fft = new p5.FFT(0.5, 512);
fft.setInput(mic);
}
function draw() {
background(220);
var vol = mic.getLevel();
let bins = fft.analyze();
for (let i = 0; i < bins.length; i++) {
let drawY = map(i, 0, bins.length, 0, height);
let val = bins[i];
let rectWidth = map(val, 0, 255, 0, width);
let rectHeight = height / bins.length;
wave.freq(map(vol*200, 0, 200, 100, 1000), 0.1);
//wave.amp(map(mouseY, 0, vol, 0, 0.5));
fill('pink');
rect(0, drawY, rectWidth, rectHeight);
}
}