Skip to content

Controlling Ableton Live

MIDI Scripter was originally created to overcome some limitations of Ableton Live without getting into rewriting its complex built-in MIDI remote scripts.

MIDI Scripter has two ways to communicate directly with Ableton Live internals. Both has own limitations, so some use cases may require to use both.

1. Ableton MIDI Remote Script

The idea behind this method is to use the existing Ableton Live remote script and communicate with it by MIDI. Special remote script should be installed to Ableton Live and assigned to virtual MIDI ports in its settings.

The script has its raw MIDI messages mapped to AbletonMsg objects with corresponding AbletonEvent as type attribute.

All available events are listed in API documentation.

The messages are received and sent by AbletonIn and AbletonOut ports that are wrappers for virtual MIDI ports used for communication.

These ports should be declared with virtual MIDI port name as an argument.

Example: Select armed track script with Ableton MIDI Remote Script

2. AbletonOSC

Another way is to use AbletonOSC remote script and OSC messages. The AbletonOSC remote script should be installed to Ableton Live and enabled in its settings.

This method doesn't use any special ports or messages. You should use OscIn, OscOut and OscMsg with reference to AbletonOSC documentation for address and data attributes.

AbletonOSC is more capable than the MIDI method in many ways, but it's current lack of track and clip index updates handling makes MIDI the preferred method for simple actions on tracks/clips. AbletonOSC listeners send events with index the track/clip had when the listener was attached to it, while the track/clip can be already moved to another place in Ableton session.

Example: Select armed track script with AbletonOSC