Modulation
Modulation is the system that connects dynamic sources — audio, MIDI, LFOs, sequencers, OSC — to any parameter in any track or effect.

Almost every float or bool parameter in Arkestra can be modulated. This is how you create audio-reactive, tempo-synced, or performance-controlled visuals without manual tweaking.
How to map a modulation source
Section titled “How to map a modulation source”Right-click any parameter → Map to… — the context menu shows all available modulation sources.

Or drag from the source (e.g. an LFO in the Modulation panel) to the parameter target.
Mapping panel shortcuts
Section titled “Mapping panel shortcuts”The bar at the bottom of the mapping panel has quick actions for the parameter you’re editing:
| Button | What it does |
|---|---|
| Copy | Copies this parameter’s mapping |
| Paste | Pastes the copied mapping onto this parameter |
| + Quick Map | Saves this mapping (source, range, invert, smoothing and LFO settings) to a Quick Map wheel slot. A small wheel opens; hover a slot to see what it replaces, click to save |
| Convert to… | Turns the mapping into a project-wide source. Offers Global Macro for controllers (MIDI, OSC, keyboard, mouse, Art-Net, CLX) and chain macros, and Global Signal for signals like audio, LFOs and sequencers; a local LFO also offers Global LFO and a local sequencer Global Sequencer |
With the parameter selected in the inspector, ⌘⇧C and ⌘⇧V also copy and paste its mapping.
Quick Map wheel
Section titled “Quick Map wheel”For the mappings you use all the time, press on a parameter’s map button (the + to the right of its slider, or the source badge once it’s mapped) and drag away from it. A wheel of eight slots opens around the button. Drag towards a slot and release to apply it. Press Esc to close the wheel without applying anything.
A slot holds either a ready-made mapping (a source with its LFO shape, rate, range and invert) or a special action:
| Action | What it does |
|---|---|
| Copy | Copies this parameter’s mapping |
| Paste | Pastes the copied mapping onto this parameter |
| Clear | Removes this parameter’s mapping |
| Prev | Restores the mapping this parameter had before your last quick map |
Configuring the slots
Section titled “Configuring the slots”Right-click a map button → Configure Quick Map…, or press C while the wheel is open. The sheet shows a replica of the wheel:
- Click a slot to edit it. Pick a Special Action, or pick a Source and set its Range and Invert (plus the shape and rate for an LFO).
- Turn on Open editor after applying to open the full mapping panel straight after the slot is applied.
- Drag one slot onto another to swap them.
- Empty clears a slot; Reset restores the default layout.
Changes save immediately. To capture a mapping you’ve already tuned, click + Quick Map at the bottom of its mapping panel, or right-click that parameter’s map button → Save to Quick Map Slot, and pick a slot.
Modulation sources
Section titled “Modulation sources”| Source | Description |
|---|---|
| LFO | Oscillator — sine, square, ramp, staircase, bounce, pulse, S&H, and more |
| Sequencer | Step sequencer with up to 16 steps |
| Audio | Kick, snare, hi-hat detector ranges (3 configurable bands) |
| MIDI CC | Any CC, note, or pitchbend from any connected MIDI device |
| OSC | Incoming OSC values via UDP |
| Art-Net | Any DMX channel from a lighting desk |
| CLX | Deck position, BPM, EQ and mixer faders from DJ software |
| Ableton Link | Tempo sync for all beat-synced LFOs and sequencers |
| Global LFO / SEQ | Project-wide LFOs and sequencers that many parameters can share — see LFOs and Sequencers |
| Global Force | A physics spring kicked by a trigger, for punchy, bouncing motion |
| Global Macro | One of 8 project-wide knobs in the toolbar, played by hand or from a controller |
| Global Signal | A named, shaped signal (say, a smoothed kick) that any number of parameters can follow |
| Fader | Direct manual control (the default) |
Combining signals
Section titled “Combining signals”A parameter’s mapping has one base source, the tile picked at the top of its mapping panel. Mapping a new source replaces the base. To mix in more signals, combine them in the panel’s SOURCES overview.
With a single source, the panel shows the source’s editor; the source row at the top has a CHANGE button to pick a different source and an × to remove the mapping. Click + COMBINE at the bottom of the editor and pick a second source. From then on the panel opens on the SOURCES overview, with one card per source and a live meter on each. The back button in the panel’s title bar always goes up one level — from any source editor, the result page or a picker, back returns to the overview:
| Card | Description |
|---|---|
| Source card | The source and its settings, for example AUDIO · RHYTHM · KICK. Click it to open the source’s editor; back in the title bar returns to the overview. CHANGE on the base card (or on the source row in its editor) picks a different base source |
| Operator | The chip between two cards sets how the card below folds into the signal above. Click it to choose from the menu |
| + COMBINE | Opens the source picker. The picked source is added as a new card (× by default) on the overview — click the card to tweak it |
| RESULT | The combined value. Click it for the parameter’s Range & Scale, Enabled toggle and Transfer Curve |
Layer cards also have a toggle that bypasses the source without removing it, and an × that removes it. A parameter can combine up to 3 sources: the base plus 2 more. Sources are applied top to bottom, with no precedence: base + A × B is worked out as (base + A) × B.
The RESULT page’s transfer curve, smoothing, threshold, invert and range apply to the combined value, so smoothing an “LFO + kick” mapping smooths the sum. Each added source is shaped in its own editor first: its range is its amount. The base source isn’t shaped before combining. To shape it on its own, move it into a Global Signal and shape it there. The combined value is kept between 0 and 1.
Combining only works on mapped parameters. To combine a hand-set value with a source, map the base to a fader or a global macro.
Recipes
Section titled “Recipes”- Master intensity: add × a global macro to every parameter you want under one knob. Turning the macro down scales all of them back at once.
- Shared signal under one knob: map parameters to a Global Signal (say, a smoothed kick) and add × a global macro. The signal is tuned once, and the macro sets how much of it comes through.
- Duck on the kick: map a parameter to an LFO and add − the kick from Audio. The LFO dips every time the kick hits.
- Either one: map a parameter to a MIDI fader and add MAX an audio band. Whichever is higher wins, so the fader sets a floor that the music can push above.
- Only when both: map a parameter to an LFO and add MIN an audio band. It only rises while the LFO is up and the music is loud.
Global Macros and Global Signals
Section titled “Global Macros and Global Signals”The Global tile in the mapping panel has two tabs:
- Macro — one of 8 global macros: project-wide knobs in the toolbar. A macro is a hand control, like a track fader. Turn it yourself, or put it on a hardware controller.
- Signal — a Global Signal: a named signal, shaped once and shared. Map it to audio, an LFO, a sequencer or any other source, tune its threshold, smoothing and curve, and every parameter that follows it moves the same way.
The two work together. Map parameters to a Global Signal for the motion, and combine them × a global macro for how much of it you want.
Global Macros
Section titled “Global Macros”Pick the Global tile → Macro, or right-click a parameter → Map to… → Global Macro. Choose which of the 8 macros it follows from the GLOBAL menu. Every parameter mapped to a macro moves when you turn it.
The status row above it shows what drives the macro (MANUAL when it’s just the toolbar knob) and a live output bar. Tap Configure to put the macro on a controller: MIDI, OSC, Key, Mouse or Art-Net. Audio, LFOs and other signals aren’t offered here — use a Global Signal for those. A macro in an older project that already follows a signal keeps working, and its editor suggests moving to a Global Signal.
Global Signals
Section titled “Global Signals”Pick the Global tile → Signal, or right-click a parameter → Map to… → Global Signal. Choose a Global Signal from the GLOBAL SIGNAL menu, or create one with New Global Signal (Add Global Signal when the project has none yet). A project can have up to 8.
The status row shows the signal’s source and a live output bar. Tap Configure to map it to any source and shape it with its own threshold, invert, smoothing, transfer curve and combined sources. Each parameter that follows it keeps its own range.
The SIG tab in the Generators panel lists the project’s Global Signals as cards. Click a card to expand and edit it. Right-click a card to Rename, Duplicate or Delete it. Add Global Signal at the bottom creates a new one.
Moving an existing mapping
Section titled “Moving an existing mapping”If you’ve already tuned a mapping on one parameter, click Convert to… at the bottom of its mapping panel, or right-click the parameter → Convert to Global Macro / Convert to Global Signal. Where it goes depends on the source:
| Source | Moves into |
|---|---|
| MIDI, OSC, keyboard, mouse, Art-Net, CLX | Global Macro — the first unused macro |
| Audio, Echo, LFO, sequencer, vision, force and other signals | Global Signal — a new one |
| Chain macro | Global Macro — its current value carries over |
The new macro or signal is named after the parameter. The source moves over with its threshold, invert and smoothing, and the parameter is mapped to it. The parameter keeps its own range, so it moves exactly as before, and other parameters can share the macro or signal with their own ranges. Combined sources stay on the parameter. When all 8 macros, or all 8 Global Signals, are in use, the action is disabled.
There’s also an in-context shortcut: tapping the Global tile over an existing mapping keeps a snapshot of it, and the editor offers Move … mapping to Global Macro for a controller or New Global Signal from previous … mapping for a signal, so you don’t lose it.
Track macros, faders, loops and timeline lanes only work inside their own track or chain, so they can’t be moved.
Modulation scaling
Section titled “Modulation scaling”Each mapping shapes its incoming signal with the same set of controls:
| Control | Description |
|---|---|
| Min/Max | The output range. The 0–1 signal is scaled into this part of the parameter’s range |
| Threshold | An input window. Input below its low end reads as 0, input above its high end reads as 1, and the window in between is stretched across the full range — useful for ignoring a noisy floor or making a soft signal hit the top |
| Invert | Flips the signal |
| Smooth | Eases the value towards each new reading instead of jumping, with separate Rise and Fall times (0–500 ms) |
| Smooth: Wrap | Smooths the short way round the 0/1 boundary — for hue, rotation and other values that wrap |
| Smooth: After Threshold | Smooths the final output instead of the raw input |
| Integrate | Uses the signal as a speed instead of a position: louder input moves a running phase forward faster, and it holds where it is when the input drops. Cycles / s sets how many full cycles per second a full-strength signal adds. Drift adds a constant number of cycles per second on top, so it keeps moving slowly in silence. The waveform tabs below pick the shape the phase is read through — Ramp, Triangle, Sine, Square, Smooth Square, S&H or Staircase — and Min/Max sets the range that waveform covers |
This lets you map the same audio band to multiple parameters with different ranges and response.
By default smoothing runs on the raw input, before the Threshold window. With a stepped source — a Sample & Hold LFO gated by a threshold, say — the window snaps the smoothed value back onto hard steps, so the output still jumps. Turn on Smooth: After Threshold and the output glides from one step to the next instead.
Integrate turns hits into motion. Map a rotation to the kick with Integrate on and every kick pushes the rotation forward, then it holds where it landed instead of springing back. Add a little Smooth so each hit eases in, and use Threshold to choose which part of the signal counts. Ramp wraps round from Max back to Min, so with the full 0–1 range it suits values that loop: rotation, hue, phase, scroll position. Triangle and Sine sway back and forth instead, faster when it’s loud, so they also suit values that don’t loop, like scale or brightness. S&H jumps to a new random value more often as the audio gets louder, and Staircase steps through levels. Offset shifts the waveform’s phase. Invert flips the waveform rather than the signal, so Ramp runs backwards and silence still means no movement.
On/off parameters
Section titled “On/off parameters”A mapped on/off parameter switches on when the signal reaches its Threshold. Drag the marker in the signal bar to set the level. Each time the signal rises past the threshold counts as a hit.
The RHYTHM section picks which hits actually fire:
| Control | Description |
|---|---|
| Chance | The probability that a hit fires. Drag to set it, or right-click for 100, 75, 50, 25 or 10% |
| Every | Fires one hit out of every 2–16 hits. off lets every hit through |
| Start | Picks which hit in the cycle fires. Every 4, Start hit 2 fires on hits 2, 6, 10 and so on |
The dots under Start show the cycle: the orange dot is the hit that fires, and the outlined dot is the next hit. Changing Every or Start restarts the count, and the arrow next to RHYTHM restarts it by hand, so the next hit becomes hit 1. Chance is only rolled for hits the cycle lets through, so Every 2 at 50% fires about one hit in four.
A hit that doesn’t fire keeps the parameter off until the signal drops back below the threshold. Momentary parameters set to Falling Edge count the moments the signal drops below the threshold instead.
Transfer Curve
Section titled “Transfer Curve”Any mapped parameter can run its modulation signal through a Transfer Curve — a draggable 0–1 → 0–1 remap that gives you precise control over how an incoming signal translates into visual output.
Enable Transfer Curve in the parameter’s mapping inspector, then:
- Mode — Stepped (quantised horizontal bands) or Linear (interpolated between points)
- Click an empty area to add a point; drag points to reshape the curve
- ⌘-drag a band/segment to move it vertically
- ⌥-click (or double-click) a point to delete it
A playhead line shows the current input value against the curve. The editor lives directly in the sidebar mapping panel, so you can shape and see the result immediately.