Control Ableton Live via Open Sound Control (OSC)
AbletonOSC is a MIDI remote script that provides an Open Sound Control (OSC) interface to control Ableton Live. The project's aim is to expose the entire Live Object Model API (full API docs), providing comprehensive control over Live's control interfaces using the same naming structure and object hierarchy as LOM.
AbletonOSC requires Ableton Live 11 or above.
To install the script:
AbletonOSC-master to AbletonOSCAbletonOSC folder to:\Users\[username]\Documents\Ableton\User Library\Remote ScriptsMacintosh HD/Users/[username]/Music/Ableton/User Library/Remote ScriptsPreferences > Link / Tempo / MIDI, under the Control Surface dropdown, select the new "AbletonOSC" option. Live should display a message
saying "AbletonOSC: Listening for OSC on port 11000"Activity logs will be output to a logs subdirectory. Logging granularity can be controlled with /live/api/set/log_level (see Application API below).
AbletonOSC listens for OSC messages on port 11000, and sends replies on port 11001. Replies will be sent to the
same IP as the originating message. When querying properties, OSC wildcard patterns can be used; for example, /live/clip/get/* 0 0 will query all the properties of track 0, clip 0.
Documentation: Application API
| Address | Query params | Response params | Description |
|---|---|---|---|
| /live/test | 'ok' | Display a confirmation message in Live, and sends an OSC reply to /live/test | |
| /live/application/get/version | major_version, minor_version | Query Live's version | |
| /live/api/reload | Initiates a live reload of the AbletonOSC server code. Used in development only. | ||
| /live/api/get/log_level | log_level | Returns the current log level. Default is info. |
|
| /live/api/set/log_level | log_level | Set the log level, which can be one of: debug, info, warning, error, critical. |
|
| /live/api/show_message | message | Show a message in Live's status bar |
These messages are sent to the client automatically when the application state changes.
| Address | Response params | Description |
|---|---|---|
| /live/startup | Sent to the client application when AbletonOSC is started | |
| /live/error | error_msg | Sent to the client application when an error occurs. For more diagnostics, see logs/abletonosc.log |
Represents the top-level Song object. Used to start/stop playback, create/modify scenes, create/jump to cue points, and set global parameters (tempo, metronome).
Documentation: Song API
| Address | Query params | Response params | Description |
|---|---|---|---|
| /live/song/capture_midi | Capture midi | ||
| /live/song/continue_playing | Resume session playback | ||
| /live/song/create_audio_track | index | Create a new audio track at the specified index (-1 = end of list) | |
| /live/song/create_midi_track | index | Create a new MIDI track at the specified index (-1 = end of list) | |
| /live/song/create_return_track | Create a new return track | ||
| /live/song/create_scene | index | Create a new scene at the specified index (-1 = end of list) | |
| /live/song/cue_point/jump | cue_point | Jump to a specific cue point, by name or numeric index (based on the list of cue points) | |
| /live/song/cue_point/add_or_delete | Add a cue point under the cursor, or, if one exists, delete it | ||
| /live/song/cue_point/set/name | cue_point | Rename a cue point, given its index | |
| /live/song/delete_scene | scene_index | Delete a scene | |
| /live/song/delete_return_track | track_index | Delete a return track | |
| /live/song/delete_track | track_index | Delete a track | |
| /live/song/duplicate_scene | scene_index | Duplicate a scene | |
| /live/song/duplicate_track | track_index | Duplicate a track | |
| /live/song/jump_by | time | Jump song position by the specified time, in beats | |
| /live/song/jump_to_next_cue | Jump to the next cue marker | ||
| /live/song/jump_to_prev_cue | Jump to the previous cue marker | ||
| /live/song/redo | Redo the last undone operation | ||
| /live/song/start_playing | Start session playback | ||
| /live/song/stop_playing | Stop session playback | ||
| /live/song/stop_all_clips | Stop all clips from playing | ||
| /live/song/tap_tempo | Mimics a tap of the "Tap Tempo" button | ||
| /live/song/trigger_session_record | Triggers record in session mode | ||
| /live/song/undo | Undo the last operation |
/live/song/start_listen//live/song/get/, with parameters ``| Address | Query params | Response params | Description |
|---|---|---|---|
| /live/song/get/arrangement_overdub | arrangement_overdub | Query whether arrangement overdub is on | |
| /live/song/get/back_to_arranger | back_to_arranger | Query whether "back to arranger" is lit | |
| /live/song/get/can_redo | can_redo | Query whether redo is available | |
| /live/song/get/can_undo | can_undo | Query whether undo is available | |
| /live/song/get/clip_trigger_quantization | clip_trigger_quantization | Query the current clip trigger quantization level | |
| /live/song/get/current_song_time | current_song_time | Query the current song time, in beats | |
| /live/song/get/groove_amount | groove_amount | Query the current groove amount | |
| /live/song/get/is_playing | is_playing | Query whether the song is currently playing | |
| /live/song/get/loop | loop | Query whether the song is currently looping | |
| /live/song/get/loop_length | loop_length | Query the current loop length | |
| /live/song/get/loop_start | loop_start | Query the current loop start point | |
| /live/song/get/metronome | metronome_on | Query metronome on/off | |
| /live/song/get/midi_recording_quantization | midi_recording_quantization | Query the current MIDI recording quantization | |
| /live/song/get/nudge_down | nudge_down | Query nudge down | |
| /live/song/get/nudge_up | nudge_up | Query nudge up | |
| /live/song/get/punch_in | punch_in | Query punch in | |
| /live/song/get/punch_out | punch_out | Query punch out | |
| /live/song/get/record_mode | record_mode | Query the current record mode | |
| /live/song/get/root_note | root_note | Query the current root note | |
| /live/song/get/scale_name | scale_name | Query the current scale name | |
| /live/song/get/session_record |
No open issues yet, or sync has not completed.