ESP32 audio visualizer · live preview

Play a song, see what the firmware would show.

This page runs the real FFT-VIZ core, the same C++ analyzer and LED engine as the ESP32 firmware, compiled to WebAssembly. Your audio is analyzed live and all nine LED modes are driven from it.

Your audio never leaves this browser. The file is decoded and analyzed locally; nothing is uploaded, and the page's content security policy blocks every network request except loading its own files.

Drop an audio file here
or
Starting the core…

Real-time analysis and drawing use CPU: the core needs under 1 ms per frame, but nine glowing strips at 60 frames per second can load a slow device or a browser without GPU acceleration. If the page stutters, choose Raw wire values and Selected mode only, and switch the screen preview off.

0:00.0 / 0:00.0

AURORA

Off 0 Dim (1–15) 0 Lit 0 of 120 LEDs

Analyzer

Bass
Mid
Treble
Loudness
Beat
–
State
–
AGC ceiling
– dBFS
Strip current (model)
0 / 0 mA
Limiter
–
Frame
0
LED history of the selected mode · last 10 s · LED 0 at the top

All nine modes at once · click a row to select it

How this works

  1. The file is decoded by your browser, mixed to mono and resampled to 48 kHz, the core's ADC rate.
  2. One fixed level rule maps it into the 12-bit ADC domain: gain −32 dB, bias 2048, no loudness normalization. Synthetic board noise (rms 6 LSB) is added to every sample, as a microphone board would add it.
  3. Every analysis frame (800 samples, 60 per second) goes through the core: decimation, FFT, 40 bands, AGC, beat detection, then one LED engine per mode. The nine modes share one analyzer, so all of them are computed live at almost no extra cost.
  4. A calibration (cal) runs on a short noise-only lead-in before the audio, like a board that has just been switched on. Seeking rebuilds the analyzer state from the 4 s before the new position.
  5. Frames are computed in a Web Worker and pinned to the audio clock, so the strips follow what you hear.

A software preview, not a measurement. Real strips, the power supply limit, the microphone and the room change what a built device shows; the audio enters as a direct digital signal, not through a speaker, room and MAX4466. Current figures are the core's model estimates. LED colors are drawn through a display gamma 2.2 approximation; the raw view shows the wire values unchanged.

MIT licensed. The synthetic demo is generated by the core, so no recording is bundled. Visual inspiration: Musical Christmas Lights by Dilum Sanjaya (MIT).