The Modulation System
Modulation is what makes Lightbridge feel alive. A static slider gives you a fixed number; a modulated slider moves the number for you, driven by the music or the beat or a curve you designed. Every parameter in the app — every source param, every effect param, every transform — can be modulated.
For the hands-on walkthrough, see the Audio Reactivity guide or the Beat Sync guide. This page covers the three sources and the stages that shape their signals.
The three sources
Every modulation has exactly one source. What it is determines what the modulation feels like.
Audio
Audio is the reactive source. It reads the real-time loudness of one frequency band audio band audio One of six frequency ranges the audio input is split into — Sub Bass, Kick, Low Mid, Mid, Presence, Brilliance. Each band's loudness can drive any parameter independently. Learn more → from your audio input and drives the parameter with it. This is how you make visuals that respond to music — the parameter moves when the music moves.
Pick Audio when you want visuals to follow what the audience is hearing.
Examples:
- Kick → Scale — the source pulses on every kick drum hit
- Brilliance → Sparkle — hi-hats and cymbals make things shimmer
- Mid → Hue — the colour shifts when vocals enter the mix
- Sub Bass → Bloom Intensity — deep drops trigger a glow swell
The six bands are Sub Bass, Kick, Low Mid, Mid, Presence, and Brilliance. See the Audio & Beat concept for their exact frequency ranges and what each catches.
Audio modulations also have two extra controls that LFO and Beat don’t: Gain (a per-modulation level boost) and Reactivity (Attack/Release smoothing that tames spiky audio into usable motion). Both are only visible when the source is set to Audio.
LFO
LFO LFO modulation A steady repeating cycle, driven by time. Runs free in Hertz or locks to the beat grid. The classic synth tool for making anything move in a regular pattern. Learn more → is the metronome source. It generates a steady cyclical signal from nothing but time — no audio input needed. You pick a rate (in Hertz for free-running motion, or in beats for tempo-synced motion) and the parameter cycles through its range forever at that speed.
Pick LFO when you want regular, predictable motion that doesn’t care what the music is doing.
Examples:
- Slow LFO (64 beats per cycle) → palette hue offset — the entire colour scheme drifts through the wheel across a song section
- Fast LFO (0.5 Hz free-running) → camera rotation — constant slow spin, independent of tempo
- Medium LFO (8 beats per cycle) → a zoom param — a steady push-pull breathing effect
- Beat-synced LFO (4 beats) → effect mix — an effect that ramps on over one bar, then ramps back off
Controls:
- Rate — either a Hertz value (free-running) or a beat division (tempo-locked). A non-zero beat division wins over Hertz.
- Phase offset — shifts the starting position of the cycle, useful for drifting one LFO against another on a different parameter.
- Play mode —
loopgives you a sawtooth (0 → 1, snap back, repeat).bouncegives you a triangle (0 → 1 → 0, repeat).
Beat
Beat is the grid-locked source. It reads the beat clock beat clock beat The shared tempo timekeeper. Every beat-synced modulation in the app reads from it, so they all stay in lock-step with each other and with the music. Learn more → directly with no phase offset and no drift. The parameter cycles in perfect lock with the tempo, guaranteed.
Pick Beat when you want motion that’s welded to the beat grid.
Examples:
- Beat division
1withgatecurve → strobe brightness — hard strobes on every quarter note - Beat division
4→ effect mix — effect opens and closes every bar - Beat division
0.5→ source rotation — rotates once per half-beat - Beat division
16→ palette hue — phrase-locked colour cycling over 16 beats
Controls:
- Beat division — how many beats per cycle.
1is a quarter note,4is a bar in 4/4,0.25is a sixteenth. - Play mode — same
loop/bouncechoice as LFO.
LFO vs Beat: both can be beat-synced. The difference is that an LFO carries its own phase offset (so you can drift it relative to the grid), while a Beat modulation reads the master clock directly — no phase offset, no drift possible. Reach for Beat when you want absolute grid lock; LFO when you want a bit of flexibility.
Range — the most important knob
Every modulation has a range: a min and max that define how much of the parameter’s value span the modulation moves through. The shaped signal coming out of the source and curve stages gets stretched into that range before it reaches the parameter.
This is where most modulations live or die. Range controls the magnitude of the effect. You can have a perfectly tuned audio signal and a beautiful response curve, but if the bottom and top are a hair apart the motion is invisible.
Three practical rules:
- Narrow ranges feel subtle, wide ranges feel dramatic. A kick modulation with range 0.4 → 0.6 gives you a gentle pulse. The same modulation at 0 → 1 gives you a full swing from minimum to maximum.
- Set the range, don’t touch the slider. Modulation overrides the slider value, so dragging the slider has no effect while a modulation is active. To “set the base level,” drag the range’s bottom handle — the modulation’s swing happens above (or below) it.
- Dragging the top handle below the bottom is legal. It inverts the direction — equivalent to flipping the Direction toggle, sometimes clearer to read.
The range handles are visible on the slider itself, not just in the mod panel. During a performance, drag them to tighten or open the swing without opening the mod panel at all.
The response curve
The response curve is what gives a modulation its shape. The raw signal coming out of the source is always a value from 0 to 1 — 0 when the kick is quiet, 1 when the kick is loud; 0 at the start of an LFO cycle, 1 at the peak. The response curve takes that value and reshapes it before it hits the range stage.
A linear curve (the default) is passive — the output equals the input. A sharp S-curve turns a gentle audio swell into a hard snap. A bell shape turns an LFO ramp into a pulse. A stairs curve turns continuous motion into discrete steps.
Lightbridge ships with sixteen preset curves covering most common shapes: linear, easeIn, easeOut, sCurve, step, stairs4, stairs8, bounce, pulse, gate, bell, spike, notch, shelf, zigzag, inverse. See the Modulation Curves reference for a visual preview of every preset.
You can also edit the curve directly in the mod panel — click to add control points, drag them to reshape, and pull out Bezier handles for smooth curves between them.
Direction
A simple Normal / Inverted toggle. Inverted flips the signal vertically, so the parameter moves down as the source gets louder (or as the LFO phase advances). You could achieve the same thing by swapping the range’s top and bottom handles, but the toggle reads clearer.
Use it when you want the parameter to go down as the input goes up. Classic example: “brightness dims on the kick” — put an audio modulation on the brightness param, set the source to kick, flip Direction to Inverted.
Creating and managing modulations
To add a modulation, right-click a parameter’s slider and pick Add Audio mod, Add LFO mod, or Add Beat mod. Lightbridge creates the modulation and opens the mod panel below the slider. Every modulation you create has the same anatomy:
- A source — Audio, LFO, or Beat. The thing that drives it.
- Source configuration — which audio band, which LFO rate, which beat division.
- Shaping stages — a response curve, a direction toggle, and an output range.
- An enabled toggle — so you can mute a modulation without deleting it.
Disable the toggle to temporarily turn a modulation off. Delete it to remove permanently.
One modulation per parameter
Each parameter carries exactly one modulation at a time. To layer multiple effects, assign each to a different parameter. A common setup:
- A source’s scale modulated by the kick band → punchy size pulses
- A source’s main hue modulated by a slow LFO → gradual palette drift
- An effect’s mix modulated by a 4-beat LFO with a gate curve → rhythmic on/off
The combined visual effect reads as layered even though each modulation is on its own parameter.
If you need to change a modulation’s source type on the same parameter (audio to LFO, LFO to beat, etc.), edit the existing modulation rather than deleting and recreating — the source selector lets you swap between Audio, LFO, and Beat without losing your curve, direction, or range settings.
Advanced — engine vs UI capability
The engine architecture supports multiple modulation slots per target — applyModOverlay iterates the slot array filtered by target, and the last one wins. The current mod panel UI gates this to one-per-param via a conditional render on slotsForTarget.length === 0. So the capability exists in the runtime but isn’t exposed yet. If a future UI revision adds slot-stacking, the engine won’t need to change.
Phase lock
Beat-synced LFOs and beat modulations phase-lock to the global beat grid, not to when the modulation was created. Two beat-synced LFOs on different parameters started thirty seconds apart will still align on beat zero, because they both derive from the same master beat counter.
Free-running LFOs (those with no beat division) lock to their own creation time instead. That’s why a beat-synced modulation doesn’t visibly “reset” when you enable it during a gig — it was always phase-locked; you just weren’t watching.
See the Audio & Beat concept for how the beat clock itself is sourced and how phase is distributed.
Advanced — phase lock fields
In the slot data:
- Free-running LFOs (where
lfoBeatDiv === 0) anchor tolfoStartTime(in seconds, captured when the slot is created or reset). - Beat-synced LFOs (
lfoBeatDiv > 0) anchor tolfoStartBeats(in fractional beats, captured against the master clock’stotalBeats).
This is what makes beat-synced LFOs “phase-perfect” across the show: they all derive their phase from the same monotonic beat counter, so their cycles align deterministically regardless of when they were created.
Where to go from here
- Audio Reactivity guide — practical walkthrough of audio modulation.
- Beat Sync guide — practical walkthrough of beat-locked modulation.
- Modulation Curves reference — every preset curve with a shape preview.
- Parameter Priority — where modulation sits in the resolution chain, and what overrides what.