
The Controller Template Editor can be access from 2 places.
- in the ‘My Controller Templates’ tab, by clicking on the ‘open template’ button for a Controller Template.
- In the right panel of the Script Editor. This area displays the Controller Template which is currently attached to the script.
With the Controller Template Editor you can:
- Create a visual representation of controller inputs on the physical midi controller
- Configure the MIDI data which each controller input on the midi controller sends/receives.
The Editor Control Panel
Here are details of what each control does in the Controller Template Editor
Controller Template Name
The editable name of the controller template, usually named to match the midi controller which it is used for.

Save
Click this button to save the changes you have made to the Controller Template’s json file. This button becomes active when there are unsaved changes.
Controller Template Settings
Clicking the settings button opens a form which contains Controller Template specific settings.

Notes
Here you can write some helpful notes about the controller template
Grid settings
Set the total height and width of the controller template grid aswell as the size of each individual square in the grid. (note that the grid must be set to display in the Template Tools section).
Default controller LED values
Set the default on and off MIDI velocity values which will be sent the midi controller from the script during use of the mapping.
LED Feedback Color Reference
Assign MIDI velocity values to color names. These settings will display when configuring LED feedback options for mappings.
Click the plus (+) icon to add a new entry in the list.
The Controller Template Menu Bar
The menu bar is split into 2,
The left side contains all of the Controller Input Types which can be added to the template.
The right side contains all of the Template Tools which can be used to edit/manage the template.
Controller Input Types

Knob
A circular Input which can be a control type of either Absolute or Relative.
Button
A circular or square button input. Uses on/off control type but this can be overridden in the mapping settings to use increment/decrement.
Endless Encoder
Works exactly the same as ‘Knob’ inputs types, the only difference is how it is displayed visually in the MIDI Controller Area.
Slider (fader)
A rectangular Input which be a Control Type of either Absolute or Relative. Crossfader: The same as a Slider by in a horizontal position.
Crossfader
Works the same as Slider but is horizontal rather than vertical
Pads
This input type creates a group of (pad) inputs. The number of pad inputs contained in the group can be changed in the input type’s settings.]
LED Display
Use this for ‘output only’ type components on your MIDI Controller which only receive / display data. They do not send any data to Live.
Keys
This input type creates a group of (key) inputs. The number of key inputs contained in the group can be changed in the input type’s settings.
Container
The container Input type is purely for adding a rectangular shape in the MIDI Controller Area. Use it to draw the shape of your MIDI Controller.
Text
Use this to add titles and notes to the MIDI Controller Area. This is purely for your own visual references and is not used in Ableton Live.
Template Tools

The right side of the bar contains various tools for the template…
Delete selected inputs
When at least 1 input is selected on the grid, this button will become active. Clicking it will delete all selected inputs.
Select all inputs
Clicking this button will select all inputs in the controller template.
Deselect all inputs
Clicking this will delete all selected inputs
Bulk edit selected inputs
With at least 2 inputs selected, clicking this button will open the ‘bulk input editing’ popup form. Here you can bulk update various settings for all of the selected inputs.
Duplicate selected inputs
With at least 1 input selected, clicking this button will duplicate all selected inputs. Duplicated inputs will appear to the right of the selected inputs.
Selected inputs list
When clicked, it will display the names of all selected input in a popup.
Inputs can be deselected here by clicking the cross next to the input name.
Show/hide grid
Clicking this button will show and hide the grid lines.
Zoom in / Zoom out
Use the zoom in and out buttons to increase and decrease the size of the controller template grid and inputs.
Import inputs
Clicking the ‘import inputs’ button will open the file browser popup.
Select a controller template json file and click open.
All inputs in the file will added to the current controller template.
Export selected inputs
With at least 1 input selected, clicking this button will open the save file popup. Clicking save will save all selected inputs to a new controller template json file.
Adding an input to the template
To add a new input to the controller template, click one of the input types in the left side of the menu bar. Your selection will appear on the grid below.
How to open the settings form for an input
To open the Controller Input Settings form for an input, hover over the input and click the small pencil icon which appears. Each input contains the following settings:
Name User configurable name for the input.
Notes Here you can include any handy notes related to the input
MIDI message settings A MIDI Message is the data which MIDI Controllers send and receive. Enter the MIDI Type, Channel and Value which the physical input is set to. If the midi learn button on the left is turned on, when you move/press the input on your midi controller, the MIDI data will be automatically entered for you.
Velocity control settings Set the control type and the midi velocity values which are sent when the physical input is moved/pressed. (If MIDI learn is turn on, the last received velocity value will be displayed above)
Control Types
It is important to set the correct Control type and other information for an input. It should match the exact same data sent by the Physical Controller for the input.
Absolute
Sends MIDI Message Values from 0 – 127.
Relative
Sends a single value continuously while turning the physical input left/down and another value when turning right/up.
On/Off
On/Off buttons can work in 2 different ways depending on how your MIDI Controller is setup. If it is Momentary, a MIDI Value is sent when the button is pressed AND when released.If it is a toggle, an ‘on’ MIDI Value is sent on first press, then an ‘off’ Value is sent on second press.
You can also set ‘Momentary/Toggle’ in ‘Switch Type’ (see below). note: this does not change the configuration of your Physical Controller, check the User Manual for the Controller to do this.
For example, setting your Switch Type to ‘Momentary’ can mean that functionality only fires when an ‘on’ value is received, compared to ‘Toggle’ which will cause functionality to fire when both ‘on’ and ‘off’ are received.
First / Last
Used by the ‘Absolute’ Control Type to set the complete value range that your script listens for.
It’s important to note that ‘First’ must be the lowest value & ‘Last’ is the highest.
Here it is possible to only use a portion of your Physical Input’s complete range meaning, for example if you only want half of your Knob to control a Volume, you can set the range as First: 0 and Last: 63. The Volume will now move from 0db to 6db with only a half turn of your Knob.
Invert
Used by Absolute controls only. Reverse/invert the direction of the control.
Takeover Mode
Used by Absolute Controls. mimics Ableton Live’s internal Takeover mode, except that here you can set it per control.
Left/Right
Used by Relative Controls to set the left/right MIDI Values which your script listens for.
On/Off
Used by On/Off, Increment & Decrement Control Types to set the on and off MIDI Values that your script listens for. The Mapping will fire only when these Values are received.
Number of steps
Used by Relative, Increment & Decrement Control Types.
It is used in different ways depending on the Mapping Type. For example, with mappings that have Value Ranges such as Volume, Sends, Pan, Device Parameters, the amount that the control moves with each button press/knob turn is calculated by the total range divided by the number of steps that you have set.
For navigation type mappings such as Track/Scene Navigation, the step number is the number of tracks/scenes to move by with each press/turn.
Switch type
Used by On/Off, Increment & Decrement Controls to handle when a mapping should fire.
Note that a matching On or Off value must first be received by the script before this point is reached in the execution process.
Momentary
Will fire only when the ‘On’ value is received.
Toggle
Will fire when ‘On’ or ‘Off’ is received.
Selecting inputs /multiple inputs
An input can be selected by clicking it with the mouse cursor.
Multiple inputs can be selected by either holding cmd/ctrl and clicking more inputs or clicking on an empty space and dragging the blue square over multiple inputs.
Moving inputs
An input can be moved on the grid by first clicking to select it, then clicking it and dragging. Multiple inputs can be moved by first selecting multiple inputs (see above), the clicking on them and dragging.
Changing the size of inputs To change the size of an input on the grid, hover over the input and you will see a small arrow appear in the bottom right corner, clicking it and dragging will increase the size.