Realtime Visual Music
6-Channel Visualizer · System Report
System report · 6-channel realtime visualizer

Six channels in.
Six screens out.

A rig that listens to six live sources at once, reads each one in real time, draws it on its own monitor, and sends it to its own speaker — with level, EQ and mute per channel. This is the hardware that does it, how the pieces connect, and what it measures.

Inputs
6 × mic · 48 kHz
Discrete outs
6 × line out
Displays
6 × 60 fps
Sound → light
≈ 35 ms
Speaker return
≈ 1.1 ms
The system, in operation

One device, one clock, six of everything

Live animated schematic — mics into preamps, one USB stream to the analysis engine, six feature streams to six fullscreen windows, and six discrete line outs straight back to their own speakers. Everything on this page is drawn from the same build.

signal-flow.html — 6-channel signal flow (animated)
LIVE
The animated diagram runs live above. Static 1600 × 920 render: signal-flow-still.png.
01 · The determination

One interface does both halves

Six mic inputs and six discrete outputs, one device clock, one driver — the whole job lands on a single box. Everything else is sources, speakers and screens.

PickModelWhy it wins here
Interface Focusrite Scarlett 18i20 Gen 4 8 mic pres (48 V + gain per channel), 10 line outs, USB-C, one ASIO stream. Six in and six out with two spare each way — and it is the same platform the See Song Studio Hardware Edition already runs, now on the input side.
Budget fitBehringer XR18 16 Midas mic pres and 6 aux outs — the aux sends are literally this job. Internal gate/EQ/comp per channel and per-aux mixes; ~$509.
Step upMOTU 8pre-es 8 mic in / 8 line out, AVB, onboard DSP mixer, better converters; ~$1k.
BulletproofRME UFX III + 2-ch preamp Best drivers and TotalMix FX per-output mixes — but only 4 mic pres on its own, so mics 5–6 need a preamp.
Why six discrete outputs and not three stereo pairs? Because each channel gets its own speaker and its own control — the room is the mix. One mono feed per channel means level, EQ and mute are per-channel operations, not a compromise between two sources.
02 · How it works together

Capture → analysis → display, and audio straight out the side

The audio path and the visual path split at the interface. That split is the whole design: the sound never waits on the computer.

STEP 01

Capture — one clock

Six mics land on six preamps. A single multichannel ASIO stream at 48 kHz / 64 samples (1.33 ms buffer) carries all six into the host. Everything downstream inherits that one device clock, so there is zero inter-channel skew — no drift between channels, ever.

STEP 02

Analysis — per channel, ~94×/s

Per channel: DC block → RMS and peak → FFT 2048 with a 512-sample hop → 8-band energy, spectral centroid and spectral-flux onset. A complete feature frame lands every 10.7 ms — each channel is measured on its own terms, not as part of a mix.

STEP 03

Display — one window per screen

One fullscreen window per monitor, placed by the host, each rendering its own channel at 60 fps from the feature stream. A visual is a pure function of its feature frames — nothing to keep in sync, so there is nothing to drift.

STEP 04

Return — made in the interface

Per-channel speaker feeds are built inside the interface, not in software: one mix per output, each routed to a physical line out. Level, EQ and mute per channel at ≈ 1.1 ms, and the audio keeps playing even if the computer or the visuals hiccup.

Fewer than six screens? The channels fold onto whatever is there — three per screen on a two-monitor rig, six zones in one window on a single display. The rig does not depend on having six.
03 · Latency budget

Where the time goes — 35 ms, measured per stage

48 kHz reference, 64-sample ASIO buffer. Two thirds of the sound-to-light delay is the display pipeline, not the audio.

sound≈ 35 ms sound → lightlight
StageTimeWhere it lives
Preamp + ADC1.3 msInterface analog in — one conversion, no resampler in the path
USB / ASIO, 64 samples1.3 msDriver period at 48 kHz; bypasses the Windows mixer entirely
Analysis hop10.7 ms512-sample hop, FFT 2048 — the feature frame rate
GPU frame16.7 msOne 60 fps frame — the single biggest line item
Panel response~5 msDisplay glass
Sound → light≈ 35 ms≈ two display frames of total pipeline
Speaker return≈ 1.1 msInterface direct monitor mix — the PC is not in this path at all
04 · Bill of materials

The whole rig, one page

Six of everything on the audio side; the displays are the only place a build has real choice.

Audio

  • Focusrite Scarlett 18i20 Gen 4 — 8 mic pre / 10 line out, USB-C, ASIO
  • 6 × dynamic mics (SM57 / SM58 / e604 class) + stands + XLR runs — condensers welcome, 48 V is per channel
  • 6 × powered studio monitors (JBL 305P MkII / KRK Rokit 5 G4 class), one per line out
  • Passive speakers instead? Then six amp channels, same count

Visuals

  • 6 × 24" 1080p 60 Hz on a VESA mount, 3 × 2
  • Two 4-output GPUs — 8 native outs, six used, no adapters, best frame pacing
  • Cheaper: one 4-out GPU + 2 DisplayLink USB→HDMI (fine for 2D, small CPU cost)
  • Single card: Matrox C680 — 6 × mini-DP, one slot, 4K per output

Host

  • Windows 10/11 mid-tower, two free PCIe slots
  • High-performance power plan, USB selective suspend off
  • Six 1080p60 canvases is a trivial GPU load — the headroom is for the analysis, not the pixels

Channel map

  • CH 1 · VOCALS
  • CH 2 · DRUMS
  • CH 3 · BASS
  • CH 4 · GUITAR
  • CH 5 · PIANO
  • CH 6 · AUX
05 · Verification

Checked, not eyeballed

The diagram above is not decoration — it was instrumented and measured in a real browser.

Cause → effect, ±8 ms

Every display flash is computed from the position of its own signal ball, not from a parallel clock. Sampling the ball's path position against the screen's brightness over CDP, the flash peaks within 8 ms of the ball arriving — half a frame at 60 fps — over repeated events.

Deploy verified by bytes

This page and its assets were fetched back from this server and compared to the local build: served bytes are identical, and the live URL is title-checked so a host's catch-all page can never masquerade as content.

Numbers are per stage

Latency figures are per-stage values at 48 kHz / 64 samples — buffer, hop, frame, panel — not a single round-trip estimate. The speaker return is listed separately because it never enters the computer.

Realtime Visual Music — 6-channel signal flow, static render
The same schematic as a still — useful for decks, specs and print.