Getting Started
Requirements
- Node.js 20 or newer
- Ableton Live
- the
ableton-jsMIDI Remote Script enabled in Live - one of:
ANTHROPIC_API_KEYOPENAI_API_KEY- Claude Code CLI auth for
--provider cli
Install
git clone https://github.com/delaudio/ableton-composer
cd ableton-composer
npm install
cp .env.example .env
Edit .env and add the provider keys you want to use.
Useful OpenAI env vars:
OPENAI_MODELOPENAI_TIMEOUT_MSOPENAI_MAX_RETRIES
First Generation
ableton-composer generate "melancholic IDM, 8 sections" \
--tracks "Bass,Drums,Pad,Lead,Chords,FX" \
--provider openai
What this does:
- loads the base generation prompt
- optionally infers genre or harmony overlays
- generates structured song JSON
- saves the result under
sets/
Ableton Remote Script
cp -r node_modules/ableton-js/midi-script \
~/Music/Ableton/User\ Library/Remote\ Scripts/AbletonJS
Then activate AbletonJS in:
Preferences -> Link / MIDI -> Control Surfaces
Restart Live if needed.
Note for Live 11+: the custom AbletonJS Remote Script may trigger Ableton’s warning about using an older MIDI-note editing process. For normal clip/note workflows you can proceed, but advanced Live 11 note metadata such as MPE, probability, velocity deviation, and release velocity may not be preserved when a Remote Script rewrites MIDI notes.
Push a Generated Set
ableton-composer push sets/my-song --setup
Each generated section maps to one scene row in Ableton session view.