index.html — structure
style.css — styling
script.js — audio + canvas + input
analytics.js — session tracking via localStorage
ge
setupAudio() creates a Web Audio context and pipes the audio through an AnalyserNode. render() runs every frame, pulls FFT data, maps it into bins logarithmically, and draws whatever mode is selected.
Beat detection watches bass energy between frames and calculates BPM from the average gap between hits.
analytics.js exposes window.tick, window.volcheck, window.logBeat, window.logTrack so script.js can call them without importing. Run window.getReport() in the console to see session stats.
space play/pause · ← → cycle mode · ↑ ↓ sensitivity · G glow · T trail · P pulse · K peaks · X flip · R rotate · M color · S snapshot · 0-9 jump to mode
-Claude helped me style and suggested me some logic changes some ideas like analytics was given by ai and coded by me..
Built entirely from my own idea, logic, and code. Used AI only for polish and refactoring.