Audio

Audio prefs are app-wide, not per session (each channel does remember which audio channel feeds it).

Allow microphone access — this fires a one-time mic prompt just to unlock device names — then pick a device and Start capture. Capture disables echo cancellation, noise suppression, and auto gain, so the signal arrives raw. For DJ or DAW sound, use a loopback/virtual device (BlackHole, VB-Cable, Stereo Mix) instead of the room mic.

Each hardware channel gets a card: volume bar (green → yellow → red), peak marker, live waveform, L / M / H band meters, and a beat LED that pulses with the detector.

BPM

Detection runs on the first captured channel: onset envelope → tempo estimate → phase-locked beat clock, range 60–200 BPM. The badge walks through listening → tracking → strong → auto lock as confidence rises, or manual lock when you take over.

  • Tap tempo — at least 3 taps within a 2-second window; locks immediately at 100% confidence.
  • Lock BPM — freezes the current detected value. Auto detect — releases back to detection. Clear — wipes taps and BPM entirely.

Only one owner at a time: when MIDI clock is slaved, MIDI holds BPM until you tap, lock, clear, or auto-detect — any of those exits MIDI slave first.

Audio drives uBeatEnergy/uBass/uMid/uHigh/uVolume in shaders, FFT binds, video Beat Sync Restart and Fit Playback to Bars, mesh beat-scale, and Auto VJ energy. No capture → no BPM → all of that sits idle.