In dynamic lighting design, simple audio amplitude meters only tell part of the story. A volume meter reacts instantly to every loud crash, but music is built on rhythmic bars, tempos, and repeating downbeats. The BPM Node (BpmNode) transforms raw audio FFT spectrum streams into a structured, musical clock that drives procedural lighting automation in tight lockstep with the beat.

🧠 How Audio Beat Detection Works
1. Spectral Flux Analysis
Rather than relying on simple volume peaks, BpmNode calculates spectral flux across consecutive audio frames, measuring how rapidly energy shifts across frequency bands.
2. Bandpass Isolation (Min Freq / Max Freq)
Defaults to 40 Hz – 200 Hz. By focusing the detector strictly on kick drum transients and bass energy, the node ignores high-frequency percussion, vocals, and synth leads that could otherwise trigger false beats.
3. Inter-Onset Interval (IOI) Median Tracking
The node computes the statistical median of time intervals between consecutive acoustic onsets. This eliminates syncopation errors and irregular rhythms, converging on the true underlying musical tempo.
4. Confidence Metric & BPM Bounding
Displays a real-time Confidence % metric indicating tracking stability. The Min BPM and Max BPM sliders (e.g. 60 to 180) prevent octave doubling or halving (such as jumping from 130 BPM to 65 BPM during a breakdown).
👑 Master Project Tempo Steering (Control tempo)
When the Control tempo toggle is active, BpmNode takes ownership of Unilighter's central BPMManager, synchronizing the entire show to the incoming live music.
- Smooth Phase Preservation (
changeBpmPreservePhase): A critical engineering feature: unlike a manual TAP button that resets the beat phase to 0 on every press,BpmNodesmoothly scales the master timebase. Running keyframe animations, sweeping matrix choreographies, and rhythmic step chases smoothly adapt their speed without stuttering, jumping, or skipping steps. - Operator Steal Protection: If an operator manually taps tempo in the top navigation bar, clicks a
x2 / /2button, or adjusts BPM via a mapped hardware MIDI knob, the manual action immediately steals tempo ownership and disengages the node's control toggle. This guarantees that live operator decisions always override automated audio algorithms.
🔌 Sockets & Musical Fractions Reference
| Socket | Direction | Data Type | Description |
|---|---|---|---|
| Audio FFT | Input | Spectrum |
Raw FFT frequency stream from an Audio Input Node. |
| Min Freq (Hz) | Input / Setting | Number |
Lower frequency boundary for transient detection (40 Hz). |
| Max Freq (Hz) | Input / Setting | Number |
Upper frequency boundary for transient detection (200 Hz). |
| Sensitivity | Input / Setting | Number |
Detection threshold multiplier (0.0 – 1.0). |
| BPM | Output | Number |
Live numerical tempo value. |
| Frequency | Output | Number |
Clock frequency in Hertz calculated from the selected musical fraction (e.g. 120 BPM x1 = 2.000 Hz). |
| Trigger | Output | Trigger |
Clean Boolean pulse emitted precisely on every downbeat. Connect directly to Gate Nodes or Device Nodes to pulse strobe blinder accents on the beat. |
Fraction Multipliers
The Fraction dropdown multiplies or divides the clock output (x4, x2, x1, /2, /4, /8) for half-time sweeps, double-time strobes, or multi-bar evolution.
Read more in the Visual Node Graphs Guide and the Time Synchronization Guide.