What it's for¶
No-code path
Want this without writing Python? The free Script Generator builds a working Remote Script from any MIDI controller, right in your browser. It covers Axis 1 (map once, every set) out of the box. Axis 2 (action sequences) is what the rest of this site teaches you to build by hand.
Most people meet MIDI Remote Scripts by accident, while trying to make a controller behave, and never see the bigger picture. This page is that picture: why you would write one at all, before any code. There are two reasons, and they are very different.
The short version: a Remote Script lives in Live itself, not in your set, and it can trigger actions, not just move parameters. So you set it up once, and it works the same in every project you ever open. That is the whole idea, and it splits into two uses.
Axis 1: map once, not once per set¶
Live already has a MIDI map mode. You click it, you wiggle a knob, you assign it to a control. The catch: that mapping lives in the current set. New project, you do it again. And it only maps parameters (a volume, a knob), nothing else.
A Remote Script flips both of those:
- It lives at the system level, in your User Library. Map your surface once, and it is there in every set, forever, with no per-project setup.
- It maps to actions and state, not just parameters: select the next track, arm it, launch a scene, follow the selected device with eight knobs, light a pad when a clip plays.
And because it is a script, it can know which surface you have. You can ship one script per controller, or one script that recognises several, so the right mapping just loads. Pick your surface, and it is wired the way you like, the same way, every time.
This is the part that speaks to everyone: stop re-doing the same mapping at the start of every track. Do it once, properly, and forget it.
Axis 2: one button, a whole sequence¶
The second use is where it gets interesting. A button does not have to map to one thing. It can run a whole sequence of actions in Live, in order, on a single press.
One press, and the script creates a track, drops the same compressor on every track, arms them, sets a colour, names them, selects the first. The surface stops being a remote for parameters and becomes a remote for operations. A single pad can reshape your set. This is the territory people know from ClyphX, done with a native Remote Script, without Max for Live.
And it composes: each step is a small call against the Live Object Model, so you can chain as many as you want, branch on state (is a track selected? is it armed?), and build macros that would take a dozen manual clicks. The button is just the trigger; the script is the logic.
One honest note: these complex actions are not a turnkey product you download. You (or a script) write them, in Python, against the Live Object Model. The good news is that the hard part (talking to Live) is exactly what the rest of this site documents, and the cookbook gives you working pieces to assemble.
So: why not just MIDI map, or Max for Live?¶
- vs Live's MIDI map: that is per-set and parameter-only. A Remote Script is system-wide and action-capable. Different tool, different job.
- vs Max for Live: Max for Live reaches the same Live Object Model, visually, and is often the faster route for devices and generative tools. A Remote Script is the counterpart for control surfaces and actions, in Python, with no Max for Live needed. Both touch the same model; they just come at it from different sides.
The thread through both axes is the same: persistent (it lives in Live, not your set) and action-oriented (it does things, it does not just move sliders).
Where to go next¶
- Never written one? Start with Your first script, then build a real one in From idea to script.
- Want the mental model first? Architecture overview.
- Looking for ready patterns (encoders to the selected device, a clip grid, a Shift mode, a blinking LED)? The cookbook.
- Need a class or property? The Live Object Model map.