xxxxxxxxxx
45
let mic, fft
let circleSlider;
let time;
function setup() {
createCanvas(400, 400, WEBGL);
setupAudioAnalysis();
createEasyCam();
document.oncontextmenu = function() { return false; }
document.onmousedown = function() { return false; }
circleSlider = createSlider(1, 20, 8);
noStroke();
time = 0;
}
function setupAudioAnalysis() {
mic = new p5.AudioIn();
mic.start();
fft = new p5.FFT(0.8, 16);
fft.setInput(mic);
}
function draw() {
background(0)
time += 0.01;
let spectrum = fft.analyze();
let size = mic.getLevel()*50+10;
let circleCount = circleSlider.value();
for(let i = 0; i < circleCount; i++) {
for(let j = 0; j < spectrum.length; j++) {
let currAudio = spectrum[j] * .1 * osc(j);
let dict = layoutCircle(circleCount, 20 * j, i, 1, 1, 0 ,0);
let greenCol = map(j, 0, spectrum.length, 0, 255);
stroke(0, greenCol, 20* currAudio, 20 * currAudio);
strokeWeight( currAudio);
push();
let rot = i * time * currAudio * .001 + 1;
translate(dict.x, dict.y, currAudio*10);
point(0, 0);
pop();
}
}
}