Skip to content

Modulation & LFOs

You’ve already seen modulation in action in the Audio Reactivity and Beat Sync guides — those cover the specific workflows for making something move with the music or the tempo. This guide is the complete walkthrough of the modulation panel itself: every control, what it does, when to reach for it, and how the controls combine.

Opening the modulation panel

Every parameter slider in Lightbridge can be modulated. To open the mod panel for a parameter:

  1. Right-click the parameter’s slider to open its context menu.
  2. Choose one of Add Audio mod, Add LFO mod, or Add Beat mod. A new modulation is created and the mod panel opens below the slider.

You can also drag an audio band chip from the audio meters panel directly onto a slider, or drag a Beat chip from the BPM section — either gesture creates a new modulation with that source pre-selected.

Anatomy of the mod panel

Every modulation has the same set of sections in the panel, regardless of source type:

┌──────────────────────────────────────────────┐
│ Source selector [ Audio LFO Beat ] │
│ Source config (band / rate+div / div) │
│ │
│ Gain (audio only) │
│ Attack Release (audio only, reactivity) │
│ │
│ ┌─── Response curve editor ─────────────┐ │
│ │ breakpoint curve, dragable points │ │
│ └───────────────────────────────────────┘ │
│ Curve presets [linear][sCurve][...] │
│ │
│ Direction [Normal | Inverted] │
│ Range [min ─────── max] │
│ │
│ Presets [Save] [Load ▾] [Delete] │
│ Actions [+ Button] [× Remove] │
└──────────────────────────────────────────────┘

We’ll walk through each section top to bottom.

1. The source

The source determines what signal drives the parameter. There are three:

Audio

  • Audio band: one of six frequency bands (Sub Bass, Kick, Low Mid, Mid, Presence, Brilliance). The modulation reads the real-time energy of this band. See the Audio & Beat concept for the band definitions.
  • What it feels like: the parameter follows the loudness of that frequency range. Kick gives you punches. Brilliance gives you shimmer. Sub bass gives you deep pulsing.
  • Unique to Audio: the Gain and Attack/Release controls (below) are only visible when the source is Audio, because only audio signals need level compensation and reactivity smoothing.

LFO

  • Rate or beat division: free-running in Hertz (e.g. 0.1 Hz = 10 seconds per cycle) or beat-synced with a division (e.g. 4 = one cycle per bar). Setting the beat division to a non-zero value switches from Hz to beat-sync.
  • Phase offset [0, 1]: shifts the starting position of the cycle without changing its rate. Useful for drifting one LFO modulation against another on a different parameter.
  • Play mode: loop produces a sawtooth (0 → 1, reset, repeat). bounce produces a triangle (0 → 1 → 0, repeat).
  • What it feels like: steady cyclical motion, locked to either wall-clock time or the beat grid.

Beat

  • Beat division: how many beats per cycle (1 = quarter note, 4 = bar, 0.25 = sixteenth).
  • Play mode: same loop / bounce as LFO.
  • What it feels like: perfectly grid-locked rhythmic motion, no phase offset, no drift possible.
  • LFO vs Beat: LFO with a non-zero beat division gives you grid-locked motion with adjustable phase offset. Beat source gives you grid-locked motion with no phase offset — it reads the beat counter directly. Reach for Beat when you want absolute grid lock; LFO when you want some flexibility.

2. Gain (audio only)

A multiplier on the raw audio band value before the reactivity stage sees it. This is the per-modulation Gain — one of three levels of level control in the audio pipeline, each with its own UI label:

LevelUI labelWhereWhen to use
Master gainMaster GainAudio meters panel, topOnce per venue, for overall signal strength
Per-band gainA gain knob next to each band meterAudio meters panel, one per bandOnce per show, to emphasise or tame specific frequencies
Modulation gainGainInside the mod panelPer modulation, for “this one needs more room”

Start with Master Gain at a level where the band meters bounce between ~30% and ~80% on normal content. Use the per-band gains to even out tracks that are weak in certain ranges. Use the per-modulation Gain as a last resort for a specific modulation that needs to swing harder or softer than the others.

3. Reactivity (audio only)

Audio signals are spiky — every drum hit is a sudden peak, every vocal consonant is a transient. Without smoothing, a parameter driven by audio would jitter on every frame of noise. The reactivity stage traces the overall loudness shape of the signal so the modulation reacts to the swell of a sound rather than every tiny spike.

There are two places you’ll see these controls, with different names for the same concept:

  • In the Reactivity Controls panel (global): Reaction Speed and Decay Speed. These set the defaults every audio modulation inherits.
  • In the mod panel (per-modulation override): Attack and Release. Flip the override switch and you get a pair of controls that win over the global values, for this modulation only.

Both control the same two things:

  • Reaction Speed / Attack — how fast the signal rises when the audio gets louder. Lower = faster reaction.
  • Decay Speed / Release — how fast the signal falls when the audio gets quieter. Lower = faster decay.

Default values: 5 ms rise, 150 ms fall. A quick hit and a gentle tail — suitable for kick-driven reactions out of the box.

Practical tuning:

  • Drum hits: fast rise (1–5 ms), medium fall (100–250 ms). You want the parameter to pop on the hit and settle between hits.
  • Vocals / pads: slower rise (30–100 ms), slower fall (300–1000 ms). You want smooth swell, not jittery movement on every consonant.
  • Strobe-like reactivity: fastest rise (1 ms), fastest fall (10 ms). The parameter tracks the signal instantly in both directions.

4. The response curve

The curve is a piecewise function from [0, 1] to [0, 1] that shapes the signal between the source and the direction/range stages. This is the “wave shape” of the modulation.

Presets row: click any preset to apply it to the curve. Sixteen shapes ship out of the box: linear, easeIn, easeOut, sCurve, step, stairs4, stairs8, bounce, pulse, gate, bell, spike, notch, shelf, zigzag, inverse. See the Modulation Curves reference for visual previews of every preset.

Curve editor: the SVG in the middle of the panel is a breakpoint editor. You can:

  • Click on the curve to add a control point
  • Drag a control point to reshape the curve
  • Right-click a point for options (delete, make linear/bezier, reset)
  • Drag the Bezier handles of a point to adjust the tangent — creates smooth curves between points instead of linear segments

The editor is a live preview: change the curve and the parameter’s live modulation updates instantly.

5. Direction

A Normal / Inverted toggle. Inverted flips the signal: what was a rising swing becomes a falling one.

Use it when you want the parameter to go down as the source value goes up. Classic example: “brightness dims on the kick” — bind scale to kick with Normal, bind brightness to kick with Inverted.

6. Range

The range sets how much of the parameter the modulation actually moves through — the modulation’s bottom and top values. Drag the two handles on the slider to set them.

This is where most modulations live or die. Three practical tips:

  1. 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 with range 0 → 1 gives you a full swing.
  2. Offset the range, not the starting value. If you want “base scale 0.5, plus kick pulse up to 0.9,” set the range 0.5 → 0.9 on the modulation — not “slider at 0.5, modulation added on top.” The modulation overrides the slider, so the slider value doesn’t get added — it’s replaced.
  3. You can drag the top handle below the bottom — it’s equivalent to flipping Direction to Inverted. Use whichever reads clearer in the moment.

The range handles are visible on the slider itself, not just in the popup. During a performance, drag them to tighten or open the swing without reopening the mod panel.

7. Presets

A modulation can be saved as a preset and loaded onto another parameter. Click Save in the presets row, give it a name, and the full configuration — source, gain, reactivity, curve, direction, range — gets stored.

To load a preset, click the presets dropdown and pick one. The current modulation’s config is overwritten with the preset’s. Useful for recurring patterns: a “punchy kick” preset, a “smooth 16-bar drift” preset, a “gentle sine sweep” preset.

Presets are stored per-show and are shared across all parameters. Build up a library during rehearsal and apply them liberally during a gig.

8. Disabling vs deleting

Every modulation has an enabled toggle — a toggle button (created via the mod panel’s Create Toggle Button action) can flip a modulation on and off without deleting it. Useful for “cue this modulation in on the drop, off in the breakdown.”

Toggle buttons appear on the parent source and can be bound to a keyboard key or MIDI pad for hands-free triggering during a performance. Deleting a modulation is permanent (you lose the configuration); disabling via toggle button is reversible. When in doubt, toggle.

Worked examples

Three complete modulations using multiple sections together.

Example 1 — classic kick pulse

A source’s scale parameter pulsing with the bass drum.

SettingValue
SourceAudio
Bandkick
Gain1.0 (default)
Attack0.002s (fast hit)
Release0.18s (medium decay)
CurveeaseIn (dead zone, snaps at loud)
DirectionNormal
Range0.4 → 0.8

Feel: strong punch on every kick, settles back to 0.4 between hits, never gets bigger than 0.8.

Example 2 — slow palette rotation

The master palette hue offset drifting across an entire song section.

SettingValue
SourceLFO
RatebeatDiv = 64 (two phrases per cycle)
Phase offset0
Play modeloop (sawtooth)
Curvelinear
DirectionNormal
Range0 → 1

Feel: the whole palette rotates through the colour wheel over 64 beats, resets, and starts again. Because the palette swatches are all relative to the hue offset, every colour in the show drifts together.

Example 3 — beat-locked gate on an effect

An effect mix parameter pulsing on and off in a 4-beat rhythm.

SettingValue
SourceBeat
Beat division4 (one cycle per bar)
Play modeloop
Curvegate (hard on/off)
DirectionNormal
Range0 → 1

Feel: the effect is fully on for most of the bar and fully off for the brief “gap” portion. Using pulse instead of gate would give you soft edges. Using 0.5 for the beat division would give you an eighth-note rhythm instead.

Troubleshooting

“My modulation isn’t doing anything.” Check these in order:

  1. Is the slider overlay moving? When a modulation is active, the slider shows a coloured overlay that tracks the modulated value. If the overlay isn’t moving, the modulation isn’t producing a signal.
  2. Is the range too narrow? A range of 0.49 → 0.5 gives you imperceptible motion. Open the range handles wider.
  3. Is a higher priority layer overriding it? The parameter priority chain puts MIDI above modulation. If there’s a MIDI binding on this parameter, MIDI wins — you’ll see the binding label on the slider. Unbind the MIDI to let modulation through.
  4. (Audio only) Is the signal loud enough? Watch the band meter for the band you picked. If the meter isn’t moving, the band has no energy — try a different band or increase the global audio gain.
  5. (Audio only) Are the Attack/Release times sensible? A release of 5 seconds on a fast-decaying kick band will smooth the signal into near-silence. Reset to defaults (5 ms rise, 150 ms fall) and tune from there.
  6. (LFO only) Is the rate too slow? A free-running LFO at 0.001 Hz has a period of 16 minutes. You won’t see movement in a dev session. Set to 0.1 Hz and check again.

“My modulation is moving too much / not enough.” Adjust the range, not the curve. Range controls magnitude; curve controls shape. These are independent.

“I want this modulation to affect two parameters.” You can’t share a modulation across parameters, but you can copy it: save the modulation as a preset on parameter A, then load the same preset on parameter B. Both parameters will have independent modulations with the same configuration. When you need them to actually move identically, the cleaner pattern is to bind both parameters to the same palette channel (if they’re colours) or to drive both from the same action button (for coordinated changes).

“I want two different sources on the same parameter.” The mod panel only allows one modulation per parameter. To combine, for example, “pulse on kick” and “drift on a slow LFO” on the same scale param, you’d have to pick one. A common workaround is to use Audio with the kick band but pick a curve that gives you the LFO-like shape you wanted — since the response curve is independent of the source type, any source can produce any shape.

  • The Modulation System — the architecture underneath the UI: what a modulation contains, how signals flow through it, and how the shaped value ends up on your parameter.
  • Audio Reactivity guide — the quick-start workflow focused on audio-specific use.
  • Beat Sync guide — the quick-start workflow focused on tempo-locked use.
  • Modulation Curves reference — every preset curve with a visual shape preview.
  • Parameter Priority — where modulation sits in the resolution chain (tier 2; MIDI wins, then modulation, then palette, then slider).