Modulation Curves
Modulation signals run through a response curve between the source and the output range. The curve is a piecewise function from [0, 1] to [0, 1], built from control points with optional Bezier tangent handles. Lightbridge ships 16 presets to cover common shapes — you can also build fully custom curves from inside the modulation panel.
Every preview below is computed at build time from the same evaluation function the engine uses at runtime (evaluateCurve in packages/engine/src/modulation/EnvelopeCurve.ts). They are exact.
Linear & inverse
The identity pair. linear passes the signal through unchanged; inverse flips it end-for-end.
Eases
The classic animation curves. Use these when the default linear response feels lifeless.
- Ease In accelerates — useful for “hit hard at the end” behaviours.
- Ease Out decelerates — gentler responses on big signals.
- S-Curve combines both — a smoothstep that flattens the ends and steepens the middle.
Thresholds & stairs
Hard discrete responses. step is binary. 4-Step Ladder quantises into four plateaus, 8-Step Ladder into eight. Use these to turn a smooth signal into chunky, pixel-art-like motion.
Bounce & pulse
Shapes that peak and return. bounce overshoots and settles — great for “punchy” reactions. pulse and gate give you rectangular on/off windows with soft and hard edges respectively.
Shaped peaks
Single-peak shapes. bell is smooth and symmetrical. spike is the same idea but angular. notch is the inverse of spike — a flat signal with a sharp dip.
Plateau & alternating
shelf is a flat hold zone with smooth ramps into and out — useful for “hold at 80%” behaviours. zigzag gives you two alternating peaks across the input, which produces interesting rhythmic behaviour when driven by a slow LFO.
Picking a curve
Rough guide:
| You want… | Try… |
|---|---|
| The modulation to feel linear and natural | linear (default) |
| A “dead zone” at low signal and snap at high | easeIn, step |
| Instant reaction that settles | easeOut |
| Smooth build-up and release | sCurve, bell |
| On/off with hard edges | gate |
| On/off with soft edges | pulse |
| Overshoot and settle (physics feel) | bounce |
| Chunky discrete levels | stairs4, stairs8 |
| Flat but with a dip | notch |
| Flat plateau with edges | shelf |
| Rhythmic alternating shape | zigzag |
Custom curves
The modulation panel lets you edit the curve directly — add a point by clicking the curve, drag handles to adjust Bezier tangents, right-click for a context menu of operations. Custom curves are persisted per slot in the show file.
If you build a curve you want to reuse, the mod preset system saves the curve shape (without the rest of the slot config) so you can apply the same shape to other parameters later.
Related
- The Modulation System — where curves sit in the signal flow.
- Beat Sync guide — practical uses for curves on beat-synced modulation.
- Audio Reactivity guide — practical uses for curves on audio-reactive modulation.