Concept
For this task I decided to generate some sort of imagery based upon the music being played. There isn’t a particular reason why wanted to implement this other than the fact that it seems pretty cool and fun to make.
Implementation
let song, buttton, fft; function toggleSong() { if(song.isPlaying()) { song.pause(); } else { song.play(); } } function preload() { song = loadSound('bgmusic.mp3'); } function setup() { createCanvas(600, 600); colorMode(HSB); angleMode(DEGREES); // Change the mode to DEGREES song.play(); fft = new p5.FFT(0.9, 128); } function draw() { background(0); space = width / 128; let spectrum = fft.analyze(); //console.log(spectrum); for (let i = 0; i < (spectrum.length/2)+1; i++) { stroke(255); let amp = spectrum[i]; let y = map(amp, 0, 256, height, 0); fill(i,125,125); //remove stroke(255); noStroke(); rect(i * space, y, space, height - y); rect(width - (i * space), y, space, height); //rect(space, height ,width - (i * space), y); } } function touchStarted() { getAudioContext().resume(); }
Sketch (you might have to click the canvas to start)
Reflections
I would love to explore creating 3d visuals for the background and improving the aesthetics in general for this sketch. However, this was a lot of fun to make and I enjoyed the process.