@openpets/ableton
v1.0.0
Published
Control Ableton Live through AI - create tracks, clips, add instruments, set tempo, and manipulate your session with natural language commands. Enables prompt-assisted music production and Live session control.
Maintainers
Readme
Ableton Live Plugin
Control Ableton Live through AI - create tracks, clips, add instruments, set tempo, and manipulate your session with natural language commands.
Prerequisites
- Ableton Live 10 or newer
- The AbletonMCP Remote Script installed in Ableton
Setup
1. Install the Ableton Remote Script
Download the
AbletonMCP_Remote_Scriptfolder from thereference/ableton-mcpdirectoryCopy the folder to Ableton's MIDI Remote Scripts directory:
macOS:
- Right-click on Ableton Live app → Show Package Contents
- Navigate to:
Contents/App-Resources/MIDI Remote Scripts/ - Paste the
AbletonMCP_Remote_Scriptfolder here
Alternative location:
/Users/[Username]/Library/Preferences/Ableton/Live XX/User Remote ScriptsWindows:
C:\Users\[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote Scripts- Or:
C:\ProgramData\Ableton\Live XX\Resources\MIDI Remote Scripts\
Launch Ableton Live
Go to Settings/Preferences → Link, Tempo & MIDI
In the Control Surface dropdown, select "AbletonMCP"
Set Input and Output to "None"
2. Test the Connection
cd pets/ableton
opencode run "test ableton connection"Available Tools
Session & Transport
| Tool | Description |
|------|-------------|
| ableton-test-connection | Test connection to Ableton Live |
| ableton-get-session-info | Get session details (tracks, tempo, playback status) |
| ableton-start-playback | Start playing the session |
| ableton-stop-playback | Stop playing the session |
| ableton-set-tempo | Set the session tempo (20-999 BPM) |
Track Operations
| Tool | Description |
|------|-------------|
| ableton-get-track-info | Get detailed info about a specific track |
| ableton-create-midi-track | Create a new MIDI track |
| ableton-set-track-name | Rename a track |
Clip Operations
| Tool | Description |
|------|-------------|
| ableton-create-clip | Create a new MIDI clip |
| ableton-set-clip-name | Rename a clip |
| ableton-add-notes-to-clip | Add MIDI notes to a clip |
| ableton-fire-clip | Start playing a clip |
| ableton-stop-clip | Stop playing a clip |
Browser & Instruments
| Tool | Description |
|------|-------------|
| ableton-get-browser-tree | Get browser category hierarchy |
| ableton-get-browser-items-at-path | Browse items at a specific path |
| ableton-load-instrument-or-effect | Load an instrument or effect by URI |
| ableton-load-drum-kit | Load a drum rack with a specific kit |
Example Usage
Get Session Info
opencode run "get session info from ableton"Create a Track with Instrument
opencode run "create a MIDI track called Bass and load a synth bass"Set Tempo and Create a Beat
opencode run "set tempo to 120 BPM, create a drum track, and add a basic 4/4 kick pattern"Create a Melody
opencode run "create a clip with a C major scale melody"Add Notes to a Clip
Notes are added using a JSON array format:
[
{"pitch": 60, "startTime": 0, "duration": 0.5, "velocity": 100},
{"pitch": 64, "startTime": 0.5, "duration": 0.5, "velocity": 90},
{"pitch": 67, "startTime": 1, "duration": 0.5, "velocity": 80}
]Where:
pitch: MIDI note number (0-127, 60 = Middle C)startTime: Start position in beatsduration: Note length in beatsvelocity: Note velocity (0-127)mute: Optional boolean to mute the note
Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| ABLETON_HOST | localhost | Host address for socket connection |
| ABLETON_PORT | 9877 | Port for socket connection |
Troubleshooting
Connection Errors
- Ableton not running: Make sure Ableton Live is open
- Remote Script not loaded: Check Settings → Link, Tempo & MIDI → Control Surface
- Port conflict: Ensure port 9877 is not used by another application
- Restart: Try restarting both Ableton Live and the AI client
Timeout Errors
Complex operations might timeout. Try breaking them into smaller steps:
- Instead of "create a complete synthwave track", do it step by step
- Create the track first, then load instruments, then add clips
Browser Not Available
The browser might not be accessible immediately after Ableton starts. Wait for Ableton to fully load before browsing instruments.
Capabilities
- Session Control: Get info, start/stop playback, set tempo
- Track Manipulation: Create, rename MIDI tracks
- Clip Creation: Create clips, add notes, rename
- Instrument Loading: Browse and load instruments/effects from Ableton's library
- Playback Control: Fire and stop individual clips
Limitations
- Only MIDI tracks are supported (audio track creation coming soon)
- Complex arrangements should be built step by step
- Works best with Ableton's built-in devices and browser items
Credits
Based on the AbletonMCP project by Siddharth Ahuja.
