Skip to main content

Dual LED Matrix Realtime Audio Visualizer

Dual LED Matrix Realtime Audio Visualizer is a script that captures system audio and displays stereo frequency bars simultaneously on both the left and right Framework 16 LED Matrix Input Modules. Developed by community member Seren (GitHub: 0xSeren), it was released on March 22, 2026 — a feature the author says they had wanted "since the framework 16 modules were first originally showcased"12.

To achieve high frame rates, the project relies on a modified fork of Framework's inputmodule-rs firmware that adds command batching, without which the per-frame serial round-trips limit the achievable FPS23.

How It Works​

The tool captures the system audio stream, computes a frequency spectrum, and renders bars across the two 9×34 LED matrix modules — each module showing its own audio channel's spectrum for true left/right stereo separation1. Both modules are driven over USB serial using Framework's standard LED Matrix serial protocol4.

Modified Firmware​

The stock Framework firmware sends each draw command as an individual USB serial transaction, which caps the update rate. Seren's fork of inputmodule-rs adds batching so multiple column updates can be sent together, raising the achievable frame rate for real-time visualization23.

Features​

FeatureDetails
LanguageNix, Python1
Audio captureSystem audio
DisplayStereo frequency bars on both left and right matrix modules
Stereo modeEach panel shows its own audio channel's spectrum
Brightness--brightness N (0–255, default 100)
Smoothing--smoothing N (0.0 = reactive, 0.9 = smooth)
Mirror--mirror — low frequencies in the middle, highs at top/bottom
Mono--mono — use mono audio instead of stereo
Run commandnix run .
Stars11
CreatedMarch 22, 20261

Installation​

Prerequisites​

  • A Framework Laptop 16 with both LED Matrix input modules installed
  • The modified firmware from 0xSeren/inputmodule-rs flashed to both modules (required for batching/high FPS)23

Running​

The project is built with Nix flakes. Run directly with1:

nix run .

Then play any audio on the system — the visualizer reacts to the live output.

Options​

FlagDescriptionDefault
--brightness NLED brightness (0–255)100
--smoothing NBar smoothing (0.0 = reactive, 0.9 = smooth)—
--mirrorLow frequencies in the middle, highs at top/bottomoff
--monoUse mono audio instead of stereooff

Technical Details​

DetailValue
LanguageNix, Python1
LicenseNot specified in repository1
Firmware dependencyModified inputmodule-rs fork (batching)
DisplayTwo 9×34 LED Matrix modules (RP2040 + IS31FL3741A)
Serial protocolFramework magic bytes 0x32 0xAC + command byte + payload4
Package managerNix flakes
Stars11
CreatedMarch 22, 20261
ProjectDescription
fw16-ledvuPipeWire/CAVA audio visualizer for the LED matrix (Linux)
FW16 LED Matrix VisualizerWindows audio visualizer + Pixel Hero animation player
dark-matrixFull daemon + web UI with an audio-reactive mode
fw16-led-matrixdCross-platform Rust daemon with pair mode
led-matrix-managerQt GUI for LED matrix management

Footnotes​

  1. 0xSeren/framework-inputmodule-audio-visualizer — GitHub ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10

  2. [Release] Dual LED Matrix Realtime Audio Visualizer — Framework Community (Seren, March 22, 2026) ↩ ↩2 ↩3 ↩4

  3. 0xSeren/inputmodule-rs — Fork of FrameworkComputer/inputmodule-rs with batching support (GitHub) ↩ ↩2 ↩3

  4. FrameworkComputer/inputmodule-rs — Framework Laptop 16 Input Module Firmware/Software (GitHub) ↩ ↩2