feat(innovation): audio-reactive LED visualizer — Phase 1 complete
Innovation Day — Audio Reactive LED Strip
Implements Phase 1: FFT Core with logarithmic band splitting.
Changes
-
AudioProcessor.buildBinToBandMap()— constant-Q perceptual bands (20Hz–Nyquist) - Replace linear averaging with proper bin→band accumulation
- TypeScript strict mode fixes
Acceptance
-
audio.getBands(60)returns live 0–1 normalized array - Smoothing applied per-band (configurable via
setSmoothing) -
tsc --noEmitclean,npm run buildsucceeds
Next
Phase 2 — Canvas 2D renderer enhancements + ControlPanel UI
Innovation Day sprint