xxxxxxxxxx
94
var mic;
function setup() {
createCanvas(400, 400);
noStroke();
//max hue, max sat, max bright, max capacity
colorMode(HSB, 360, 100, 100, 100);
mic = new p5.AudioIn()
mic.start();
fft = new p5.FFT();
fft.setInput(mic);
}
function draw() {
background(0, 15);
let micLevel = mic.getLevel();
let sinVal = sin(radians(frameCount));
ellipse(width/2, height/2, sinVal * 50 + 50, sinVal * 50 +50);
//print(micLevel);
var spectrum = fft.analyze();
//console.log(spectrum);
noStroke();
// fill(255, 100, 100); // spectrum is green
// for (var i = 100; i < spectrum.length; i++) {
// var x = map(i, 0, spectrum.length, 0, width);
// var h = -height + map(spectrum[i], 0, 255, height, 0);
// rect(x, height, width / spectrum.length, h)
// }
// for (let i = 0; i < width; i += 5) {
// let y = sin(radians(i + frameCount)) * micLevel * 150;
// // let ellipseType = ellipse(width/2, height/2, sinVal * 50 + 50, sinVal * 50 +50);
// noStroke();
// fill(255, 100, 100);
// ellipse(i, height / 2 + y, 5, 5);
// }
// let freq = 3;
let freq = cos(radians(frameCount));
let speed = sin(radians(frameCount)) * 2.9 * micLevel;
// let amp = 20;
let amp = cos(radians(frameCount)) * 1000 * micLevel;
// let amp = sin(radians(frameCount)) * 20;
for (let i = 0; i < width; i += 5) {
let y = sin(radians((i + frameCount*speed))*freq) * amp;
let ellipseType = ellipse(width/2, height/2, sinVal * 50 + 50, sinVal * 50 +50);
let absY = - abs(y);
let dia = map(y, -amp, amp, 30, 50);
let hueVal = map(y, -amp, amp, 0, 360);
fill(hueVal, 100, 100);
// ellipse(i, height / 4 * 3 + y, dia, dia);
ellipse(i, height / 2 + y, 5, 5);
}
for (let i = 0; i < width; i += 5) {
let y = sin(radians(i + 150*frameCount)) * 150;
let ellipseType = ellipse(width/2, height/2, sinVal * 50 + 50, sinVal * 50 +50);
noStroke();
fill(0);
ellipse(i, height / 2 + y, 5, 5);
}
for (let i = 0; i < width; i += 5) {
let y = sin(radians(i + 350*frameCount)) * 350;
let ellipseType = ellipse(width/2, height/2, sinVal * 50 + 50, sinVal * 50 +50);
noStroke();
fill(0);
ellipse(i, height / 2 + y, 5, 5);
}
let startNum = 50;
let endNum = 120;
let range = endNum - startNum;
// hue = 360, saturation = 100, brightness = 100
// hue, saturation, brightness
// fill(sin(radians(frameCount)) * range/2 + range/2, 100, 100);
// ellipse(width / 2, height / 2, 100, 100);
}