Control Surface Studio Documentation

Remotify Team's picture by Remotify Team last updated Jul 08, 2019

Getting Started

Control Surface Studio is an incredibly powerful Desktop Application designed to make building MIDI Remote Scripts for Ableton Live as easy as possible. Any new tool however, requires some getting used to so we have created this set of detailed documentation which we will continuously maintain in order to provide you with all of the information you need.

If you're just getting started, after following the installation instructions below, we recommend reading through our Step by Step Tutorials. This will help you to create your first custom Script for your own MID Controller.

If you are not able to find the answer to a question in here, you can post it in the Forum or send us a message via the Contact Form.

Requirements

In order to use the Control Surface Studio Application, you will need

  1. A Computer running either MacOS or Windows operating systems
  2. A connection to the Internet.
  3. A Remotify user account which you can setup for free at Remotify.io/user/login

Installation

Control Surface Studio is a Desktop Application

After purchasing the App, you will see download links for Windows and Mac on the Control Surface Studio Product Page. Note: you must be logged in to your Account on the website to see the links.

Only the latest version will be available for download here.

Once the download is complete, in your downloads folder you will see ControlSurfaceStudio.dmg (Mac) or ControlSurfaceStudio.exe (Windows).

Double click on this and follow the onscreen instructions to install the Application as you normally would for your Operating System.

Registration

To login and use the App, you will need to be registered for a Remotify.io user account.

If you don't already have an account there are 2 ways to register.

Registration within the App.

When you first launch Control Surface Studio, you will see the login screen. Click 'Create a New Account' in the bottom right corner of the login form. This will display the Registration form. Enter a Username, a valid email address (this will be needed to active your user account) and enter a password. Re-enter your password in the 'Confirm Password' box then click 'Register'.

Your Account will now be created at Remotify.io (ensure you are connected to the internet).

Registration on the Remotify.io website

To register directly on the website, go to https://remotify.io/user where you will see a registration form. Complete all fields and click 'Register'.

Activate your Remotify User Account

After completing the registration form, an automated email will be sent to the email address that you provided.

Click the activation link in the email, you will be redirected to remotify.io where you will see a success/confirmation message. Your user account is now active and you will be able to login to the Control Studio Application.

If you cannot find the email, please check your spam folders. If it isn't there, contact us at https://remotify.io/contact

Forgotten Password

If you have forgotten your password, you can reset it via the Application or on the remotify.io website.

Resetting your password via the App

On the login form, click the link 'Forgotten Password' where the Forgotten Password form will be displayed. Enter the email address you entered when registrating your Remotify user account and click 'Email New Password'.

You will then see the message 'Further instructions have been sent to your e-mail address'.

Resetting your password on the remotify.io website

Go to https://remotify.io/user/password, enter your username or email address and click 'Email new password'.

Password Reset Email

after submitting the Forgotten Password form on either the App or website, you will receive an email titled 'Replacement login information for *username* at Remotify' (remember to check your spam folder if you do not see it).

Click the link in the email, you will then be redirected to a form where you can enter a new password.

Updates

To use the Control Surface Studio App, we recommend that you use the latest version available.

When you launch the App, if a newer version is available you will see the message 'An update is available' with links to download the update and to the changelog so you can see the changes which are included.

Click the download link to immediately download the latest version to your computer.

Once download is complete, install the new version and delete the old one.

Purchasing a Licence

To purchase a licence for Control Studio, go to the product page remotify.io/product/control-surface-studio.

Click the link to buy and follow the checkout steps.

Once checkout is complete, your Remotify Account will be automatically upgraded.

In the App, if you see the unlocked symbol in the top right corner, this indicates that the Licence has been applied to the App.

If you still see the 'purchase a licence' icon, logout and log back in and the App should automatically update.

Overview

Control Surface Studio has 3 main sections. The Script Manager, The Controller Manager and MIDI Controller Area.

The Controller Manager is used to create and Manage all of your MIDI Controllers. All MIDI Information and default control settings are set in here.

The Script Manager is used to manage Scripts and all functionality for them. In here you can add and import multiple scripts, everything is instantly saved so you can come back at a later time and continue editing and refining your scripts.

Scripts require a MIDI Controller to attach functionality to. The Controller which is attached to your Script can be changed at any time. The MIDI Controller Area is a visual representation of the currently selected MIDI Controller. This is extremely useful when building Scripts as you can quickly see which Control you are adding functionality to.

Header

The header contains clickable menu icons for the Settings Menu, Error Log , MIDI Monitor and logout link. On the right side you will also see a link to ‘Purchase a Licence’ or ‘unlocked’ icon depending on your user account status.

Settings Menu

Ableton Live Location

Click the browse button, Explorer (Windows) or Finder (Mac) will open. Navigate to the location of Ableton Live that you are using, click on your Ableton Live .app (Mac) or .exe (Windows) file and then click open.

MIDI Remote Script Folder location

The location of your MIDI Remote Script Folder will be automatically set once you select the location of Ableton Live in 'Ableton Live Location'. Ensure this is correct as Control Surface Studio will automatically generate MIDI Remote Scripts into that folder. If the folder location is incorrect then Ableton Live will be unable to find your MIDI Scripts.

Live Version

Once 'Ableton Live Location' is correctly set. 'Live Version' will automatically populate with all available Ableton Live versions on your Computer.

Log.txt Location

Ensure this has been automatically set correctly. If it isn't you can click 'browse' and find the location of Ableton Live's log.txt file.

See Error Log for more details.

Show grid

This shows and hides the grid for 'The MIDI Controller Area'.

Don't show delete popup

If unticked, a popup will be displayed before deleting each item in the Script/Controller Manager asking you to confirm you are sure. If this box is ticked then the popup will not display.

Error Log

The Error Log contains any errors added to the log.txt file by Ableton Live. These errors help to find and debug issues in any MIDI Remote Scripts.

For the Error Log to function, you must set the correct location of the log.txt file in the 'settings menu'. If there are errors in the log, a small red circle will be displayed above the Error Log icon in the Header.

Understanding Errors

Errors are listed from bottom to top - bottom being the newest error and top the oldest. Each line contains a piece of information related to an error. Some pieces contain details of the script and line number that are causing errors.

For example 'File "MIDI Remote Scripts/css_button_press_delay_test_2/css_button_press_delay_test_2.py", line 812, in scroll_active_device_bank'

This contains 3 valuable pieces of information.

  1. The name of the script that is erroring 'css_button_press_delay_test_2.py'
  2. The line in the script causing the error 'line 812'.
  3. The name of the python function causing the error 'scroll_active_device_bank'

Clearing the Log

Clicking the 'Clear Log' button will empty the log.txt file. It is advisable to periodically clear the log as large log.txt files can slow down the App.

MIDI Monitor

What is MIDI Monitor?

MIDI Monitor is used to listen for MIDI messages transmitted by any MIDI enabled Devices that are connected to your Computer.

MIDI Monitoring on/off

When this is turned on, Control Surface studio will listen for incoming MIDI Messages. You will see a green circle next to the MIDI Monitor icon when this is on and a red circle when off.

Latest MIDI Message received

When MIDI Monitoring is turned 'on', this will be updated with the last received MIDI Message.

Logout

Clicking the header > logout link will end your session and redirect you to the login screen.

Purchase Licence Icon

if you have not yet purchased a Licence, you will see the message ‘purchase a Licence’. After purchasing the licence, this will change to the unlocked icon.

The Manager Switcher

The ‘Manager Switcher’ column contains 2 clickable icons which enable you to switch between displaying the ‘Script Manager’ and ‘Controller Manager’.

Script Manager

The Script Manager is the place where you create and manage all of your custom Ableton MIDI scripts. It displays by default when you first load the App.

What are MIDI Remote Scripts?

MIDI Remote Scripts (also known as Control Surface Scripts) are what Ableton Live uses behind the scenes to program connected MIDI Controllers/Keyboards.

Control Surface Studio automatically generates these Scripts based on your own custom configurations and installs them directly into Live’s own MIDI Remote Script folder, ready for use.

Adding a new Script

A new script can be added to the Script Manager by clicking the ‘add’ icon in the header of the Script Manager.

Script Settings

The settings form can be opened by clicking the cog icon to the right of the Script name. Scripts are automatically given the name ‘New Script’. Change this in the settings form to something more descriptive.

Selecting a MIDI Controller

The Controller select list is populated with all MIDI Controllers found in the Controller Manager.

Select the MIDI Controller which you are going to build a script for. If your desired Controller isn’t available in the list, you can create a MIDI Controller yourself in the Controller Manager or import a pre-built Controller.

Viewing the selected MIDI Controller

Upon selecting a Controller, you will see a visual representation of it appear in the MIDI Controller section in the right side column.

Importing a Script

To open the Import section, click the Import icon in the top right corner of the Script Manager. The Import section will appear to the right.

There are 2 ways to Import Scripts into The App, from your computer or from remotify.io.
With both methods, when a script successfully imports, it will immediately appear in the Script Manager.

Importing a script from your computer

Click the browse button, then find the Script .json file, click open, then import.

Importing a script from remotify.io

Here you can import from our selection of pre-built scripts directly from our website. Simply click the ‘import’ link for a script.

Adding a Mapping to your Script

Mappings can be added by clicking the plus/add icon to the right of a parent mapping, then selecting an available Mapping in the Mapping Menu which has displayed.

The Mapping Hierarchy

It’s important to note that mappings have a strict hierarchy in how they can be added.
For example, every mapping must exist inside a ‘Mode’ mapping type. So if you click a Script’s 'add' icon, you will see that only ‘Mode’ is the only highlighted / clickable mapping type.

Mapping Type Colours

The colours of highlighted mapping types indicate their level within the hierarchy.
This is purely to make it quick and easy to understand the structure of your script as these same level colours, are carried over in the Script Manager.

Mapping Indentation

Parent and children mapping types are also made more visual by indenting them inside the Script Mapping Menu.

Generating and installing Scripts into Ableton Live

Clicking the ‘Install Script’ icon to the right of a Script generates the python code for it to run inside Ableton Live.
This is done by sending your script’s configuration to our server which returns the complete set of python scripts.
The Script is then installed automatically into Ableton Live’s ‘MIDI Remote Script’ folder ready for use (You set the location of this in the Settings Menu. see Ableton Live Location).

Activating your script in Ableton Live

After successfully installing your Scrip restart Ableton Live. Then go to preferences > MIDI. In the control surface column, open a select list and find your script.

Then after selecting your script, then select your MIDI Controller/keyboard from the Input and output select lists on the same row. Then for the MIDI ports options below, set ‘track’ and ‘remote’ to ‘on’ for your MIDI Controller/keyboard’s input and output.

Live only needs to be completely restarted when you add a new script. If you have made changes to an existing script then you can simply hit CMD/CTRL+N or reload your current Session which will load the changes to your script.

The naming structure of Control Surface Studio Scripts

All scripts created by Control Surface Studio are prefixed with “css_” so if you named your script “My first Script”, it will be named “css_my_first_script”. This ensure that you do not overwrite default Scripts provided with Live.

Mapping Errors

There are 2 places where Errors related to your scripts can be displayed.

Pop Up errors

These are Errors which appear, usually during generation of your script and will appear in the right side of the App.

Error Log Errors

Displayed in the Error Log which is found in the header. These are Errors returned by Ableton Live during execution of scripts. See Error Log section for more details.

Editing Script Mappings

Each mapping has its own settings form.
Clicking the cog icon to the right of the mapping name opens its settings form.

Type

The type of Mapping

Name

The user definable Mapping name. Each mapping has its own editable name.

Minimum & Maximum

Some mapping types such as Volume & Device Parameters have Minimum & Maximum form options. These enable you to set the minimum and maximum that a mapping will move to, usually as a percentage of 100. 0% being the absolute minimum and 100% being the absolute maximum.

Snapping

Used in combination with Minimum & Maximum, if the parameter in Ableton Live's UI is positioned outside your Minimum/Maximum settings and snapping is turned on, when you move your physical control, the parameter will first snap to either min or max then continue moving as normal.
If snapping is turned off then the parameter will only move it is already positioned inside your Minimum/Maximum settings. If it is outside these then the parameter will not move inside Live when you move the physical control on your MIDI Controller.

Controller Input

The Controller Input select list contains all available inputs from the MIDI Controller which is attached to your Script.

Viewing the selected input visually in the MIDI Controller

When you Select an Input, the control will become highlighted in the MIDI Controller Window to the right.
Also, clicking an input in the MIDI Controller Area will update the 'Controller Input' selection.

Control

The control option enables you to override the MIDI Controller’s default 'control type' functionality.
When set to default, control settings from the attached MIDI Controller input are used.

Overriding the default Control settings

Setting the ‘Control’ option to ‘Custom’ overrides the Control type settings from the MIDI Controller.

Why override default Controls?

Overriding Controls gives you the ability to change how Physical Inputs on your MIDI Equipment can interact with parameters inside Ableton Live. Buttons can act like knobs and vice versa. There are also options to set your control as an ‘increment' or ‘decrement’.

Control Types

Absolute

Inputs which send MIDI Message Values from 0 - 127.

Relative

Inputs which send a single value continuously while turning the input left/down and another single 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 'On' Value is sent when the button is pressed down then an 'Off' value is sent when the button released.

If it is a Toggle, an ‘on' MIDI Value is sent on first press. Then an ‘Off’ Value is sent on second press. On and Off will alternate with each press.

You can also set ‘Momentary/Toggle’ in ‘Switch Type’ (see below) but it’s important to note that this does not change the configuration of your Physical Controller, only the way in which your script fires functionality.
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.

Increment & Decrement

Increase or decrease the current value of a mapping. Useful for controls inside Ableton Live which have value ranges . Volume, Tempo, Sends, Device Parameters etc and Navigation type Mappings such as Highlight Navigation and Session Box Navigation. Usually can be used in combination with the ’Steps’ field to set the amount in which the control increments/decrements each time.

Control Options

First and Last Values

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 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 to 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 and Right Values

Used by Relative Controls to set the left/right MIDI Values which your script listens for.

On and Off Values

Used by On/Off, Increment & Decrement Control Types to set the on and off MIDI Values that your script listens for.

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.

Delay

Will fire only when the time between receiving the ‘On’ Message and ‘Off’ Message is greater than the value set in ‘Delay Amount’.

Delay Amount

Sets the delay amount (in seconds) to listen for. 0.5 equals a half second delay.
Only available when 'Switch Type’ is set to ‘Delay’.

Script Mapping Types

There are many different mapping types for your scripts, each are designed to control specific pieces of functionality within Ableton Live.

Mode

​Inside your Script, The mode mapping type is what all other mappings sit inside.

Modes contain a collection of mappings which can all be activated and deactivated together as a group. Only 1 Mode can be active at any time and you can change the active mode using a 'Mode Selector' mapping type.

Mode Selector

When fired, activates a selected Mode.
Select the Mode to activate or scroll through all available Modes in your script.
Scroll through Modes by using ‘Scroll’. Note: as the active Mode will change when you scroll, you will need to add the same mapping to all Modes so you can keep scrolling through them.

Reactions / Individual Reaction Mappings

​The Reaction Mapping type is an Event/Action based Mapping.
When you add a Reactions mapping type, you will first need to select the number of Reactions to add. This will automatically create the selected number of Reactions as children in the Script Manager.

There are 3 steps in the Reaction process.

1 Listener

Set the event that must happen in order for a reaction to fire. There are 3 types of Listeners:
Controls: when a physical input on your MIDI Controller sends a MIDI message.
Mixer: When a Mixer control in Ableton is changed in some way. The mute button is activated for example.
LOM: When a LOM(Live Object Model) event occurs. LOM events cover a wide variety of Ableton Live events.

2 Conditions

Set conditional options which must be met for a Reaction to fire.

3 Reactions

The event that occurs when the Listener fires and all Conditions are met.

For more details, see the Reactions Reference Guide

Session Box

Also known as ‘Red Box’, displays a custom sizeable coloured box in Ableton Live.
Use ‘Tracks’ and ‘Scenes’ options to set the height width and height of the Box respectively.

Duplicates Error

You cannot set more than 1 clip in the Session Box to the same Input. If you do, your script will error when you attempt to run it in Ableton Live.

Session Box Navigation

Moves the displayed Session Box.
Set to ‘tracks’ to change the track position.
Set to ‘Scenes’ to move the scene position.
Select ‘Scroll’ to scroll through tracks or scenes.
Select ‘Select track/Scenes number’ to move to a specific Track/Scene.

Highlight Navigation

​Moves the Track/Scene highlight.
Set to ‘tracks’ to change the track position.
Set to ‘Scenes’ to move the scene position.
Select ‘Scroll’ to scroll across tracks or up/down through Scenes.
Select ‘Select track/Scenes number’ to move to a specific Track/Scene.

Device Navigation

​Scroll through the currently selected Device's chains.

Tap Tempo

Set the tempo of your Session by tapping it out.

Tempo

​Control over the Tempo of your Session.
Set a Minimum and Maximum BPM range.

Song Tempo Nudge Up

​Control over Ableton Live’s Nudge Up functionality.

Song Tempo Nudge Down

​Control over Ableton Live’s Nudge down functionality.

Metronome

Turn the Metronome on and off.

Play

​Control over Ableton Live’s Play button.

Stop

Control over Ableton Live’s Play button.

Arrangement Record

Turn on/off Arrangement Record.

MIDI Arrangement Overdub

Turn on/off MIDI Arrangement Overdub.

Session Record

Turn on/off Session Record.

Redo

Redo change if available.

Undo

Undo previous change if available.

Arrangement Punch In

Turn on/off Arrangement Punch-in switch.

Arrangement Punch Out

Turn on/off Arrangement Punch-out switch.

Track

Set the track which all children mappings will control.
​Type options: track (select from the available mixer tracks), return (select a return track), selected (the currently highlighted track), master (the master track).
Number options: if track or return is selected for Type you can select a track number here.
Include folded tracks: Yes/No. should tracks folded into groups be selectable.
Relative to Session Box: If a Session Box is active and you have selected ‘Yes’, then your track number will be relative to its current position, meaning it will move with the Session Box. If you set this to ’No’ then the track selection will always stay the same.

Volume

Control the track’s Volume. Set the Minimum / Maximum value range to control.

Pan

Control the track’s Volume. Set the Minimum / Maximum value range to control.

Mute

Turn the track’s Mute/Track Activator button on and off. Mute

Solo

Turn the track’s Solo button on and off.

Arm

Turn the track’s ‘Arm Session Recording’ button on and off.

Sends & Individual Send Mappings

First select the number of send controls you would like to create . This will automically create the selected number as ‘Send’ children in the Script Manager.
For each individual Send mapping you can select the send number to control and set the minimum / maximum range for it.

Device

This is the Device selector for a specific Device within the parent Track selection.
All children mappings will use this selection to control a Device.

Chain Targeting

​Inside Ableton Live, Devices can be contained within other ‘Device Chains’. Chain targeting enables you to dig down to specific Device Chain/level. From there you can select a specific Device number using the ‘Device Selector’ option below.

Device Selector

Number: select a Device number to control.
Selected: The currently selected Device.

Parameter bank / Individual Parameter Mappings

A Parameter bank is group of individual Parameter mappings.
Select the number of Parameter Mappings you would like to create. The selection will be automatically created as children in the Script Manager.
Switch between active Parameter Banks using a Parameter Banking mapping type.

Individual Parameter Mappings

Select parameter by: Choose the Parameter number that you would like to control in the Device.
minimum / maximum: Set the range to control for the Parameter.

Device On/Off

Control the Device’s on/off button.

Parameter Banking

​Change the active Parameter Bank.
Select Bank Number: select a specific Parameter Bank to change to. The number you add is the Parameter Bank's order number as it appears in the Script Manager for that Device.
Scroll: scroll through all available Parameter Banks for that Device.
Note that when a new Parameter Bank is activated, its name is displayed in the message window or Ableton Live.

Select Device

Selects the parent Device. (Moves Track highlight and Device Highlight to it).

LED Feedback

From version 2.5 onwards, LED Feedback options are available for most mapping types. See our tutorial on Adding LED Feedback for details.

Controller Manager

Contains all of the available Controllers. Here you can create your own custom Controllers, or download pre-built Controllers to use with your Scripts.

What are Controllers?

Controllers are where MIDI Message information for every Physical Input on a MIDI Controller are defined, ready for use by Scripts. All controls also have a visual representation in the MIDI Controller Area.

Adding a New Controller

Make sure you are viewing the Controller Manager and click the ‘add controller’ plus icon in the Controller Manager’s header.

Setting the Controller’s grid

When you add a new Controller, its settings form will automatically display. This has options to set the grid dimensions in the MIDI Controller Area. Default settings are added which you can change. Square Size: The size of a grid square in pixels. Grid Height: The number of squares in height Grid Width: The number of square in width.

How to turn the grid on and off

The grid can be displayed and hidden in the "settings Menu”.

Colour Assignments

Add Colour names and the corresponding Velocity Values which the MIDI Controller uses to display on LEDs. You can find these Velocity Values in the User Manual for your MIDI Controller/Keyboard. The Colour Assignments added in here will appear as options in the Script's LED Feedback select lists.

The MIDI Controller Area

A visual representation of the MIDI Controller/Keyboard you are creating. The position of each control is set in its settings form.

Importing a Controller

To open the Import section, click the Import icon in the top right corner of the Controller Manager. The Import section will then appear to the right.

There are 2 ways to Import Controllers into The App, from your computer or from remotify.io With both methods, when a Controller successfully imports, it will immediately appear in the Controller Manager.

Importing a Controller from your computer

Click the browse button, then find the Script .json file, click open, then import.

Importing a Controller from remotify.io

Here you can import from our selection of pre-built Controllers directly from our website. Simply click the ‘import’ link for a Controller.

Adding an Input to your Controller

Clicking the plus icon to the right of your Controller’s name opens the Controller Input Menu. From here you can select the input type to add.

The Controller Input Menu

Displays all Input types that you can add to your Controller. After clicking one, it will appear in your Controller.

The Controller Input Settings Form

When you add a new Input to your Controller, its settings form automatically opens. You can also open it by clicking the Cog icon immediately to the right of the Controller’s name.

Input Settings form options

This contains all required options for the Input.

Grid Options

Set the size and position of the Input visually in the MIDI Controller Area.

Width

The width (in grid squares) of the input.

Height

The height (in grid squares) of the input.

Left

The position from left (in grid squares) of the input.

Top

The position from top (in grid squares) of the input.

As of version 2.5, you can set the left / top position of the Inputer by clicking and dragging the Input within the MIDI Controller Area.

Radius

For round Input types, you have the option to set the radius (in grid squares).

Align to

If the input type has a radius, you can align it to the top left corner or the centre of the input.

Color Assignments

From version 2.5 onwards, any Color Assignments you add in here will be displayed in LED On/Off Select Lists

MIDI Messages

A MIDI Message is the Data that MIDI Controllers send and receive with the Computer.

Using MIDI Monitor to set Messages

You can automatically set the information for MIDI Type/Channel/Value by turning on MIDI Monitoring (see MIDI Monitor for details).

With MIDI Monitor turned on and an Input’s Settings form displayed, turn/move/press a physical input on your Controller and its MIDI Message Data will be automatically added to the MIDI Type/Channel/Value options.

Control Types

It is important to set the correct Control type and other information for an input. It should represent the exact same data sent by the Physical Controller. Note: you can override them in the script if you want to. The Controller should mirror the MIDI Controller's settings as much as possible.

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.

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.

Controller Input Types

Container

The container Input type is purely for visuals in the MIDI Controller Area. Use it to draw the rectangular shape of your MIDI Controller.

Knob

A circular Input which can be a Control Type of either Absolute or Relative.

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

A rectangular Input which be a Control Type of either Absolute or Relative.

Crossfader

The same as a Slider by in a horizontal position.

Pads & Individual pad inputs

When you add a Pads Input type, you will see 2 options
Rows: Number of pads in width
Columns: Number of pads in height.
This will automatically add the number of selected pads (rows x columns) as children ‘pad’ input types into the Controller Manager.
Individual Pad Input types are a Control Type of On/Off.

Keys & Individual key inputs

When you add a ‘Keys’ input type, you will see this option:
Keys: select the number of child keys you require.
This will automatically add the number of selected keys as children ‘key’ input types into the Controller Manager.
Individual ‘Key’ input types are a Control Type of On/Off.

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.

Text

Use this to add titles and notes to the MIDI Controller Area. This is purely for your own visual references and does not get used in Live.

Endless Encoder

Works exactly the same as 'Knob' inputs types, the only difference is how it is displayed visually in the MIDI Controller Area.

The MIDI Controller Area

A visual representation of the currently selected Controller when Controller Manager is active.
When the Script Manager is active, it displays the MIDI Controller attached to the selected Script.