A decade-long journey building one of GitHub's most popular audio-reactive LED strip visualizers, now at 2.8k stars. The author details why LED strip visualization is fundamentally harder than screen-based approaches due to 'pixel poverty' — with only 144 LEDs, every pixel must display perceptually meaningful information. Key breakthroughs included adopting the mel scale (borrowed from speech recognition) to map frequencies to human perception, exponential smoothing to eliminate flicker, convolutions for spatial blending, and gamma correction for perceptual brightness. The project runs on Raspberry Pi and ESP8266, has been deployed in nightclubs, integrated with Amazon Alexa, and used as a first electronics project by beginners. Remaining challenges include genre-agnostic performance and capturing the rhythmic 'feel' of music, with neural networks proposed as a future direction.
Table of contents
Volume Is EasyThe Naive FFTPixel PovertyThe Mel ScaleSmoothing, Flickering, and ConvolutionsBoth Sides of PerceptionThree EffectsThe Latency TradeoffThe ArchitectureA Life of Its OwnWhat's Still MissingWhat I LearnedSort: