xxxxxxxxxx
46
let mic, fftl
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() {
time += 0.01;
background(255, 255, 255, 10);
let spectrum = fft.analyze();
let size = mic.getLevel()*50+10;
let circleCount = circleSlider.value();
//translate(width / 2, height / 2);
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);
fill(0, 0, 20* currAudio, 20* currAudio);
//let dict = layoutGrid(circleCount, i, i, 20, j);
push();
rotateX(i*time + 1);
rotateZ(i*time + 1);
translate(dict.x, dict.y, currAudio*10);
ellipse(0, 0, currAudio, currAudio);
pop();
}
}
}