Skip to content

delaudio/ableton-composer

Repository files navigation

ableton-composer

CLI for generating structured MIDI content for Ableton Live with multiple AI providers. It can analyze existing sets, extract style profiles, generate new material from prompts, expand arrangements, and push clips directly into Live.

What It Does

  • generates song JSON from natural-language prompts
  • supports anthropic, openai, codex, and claude-cli
  • analyzes songs, albums, artists, and collections into hierarchical style profiles
  • uses modular prompt layers for genre, harmony, arrangement, and planning
  • compares generated material against reference profiles
  • pushes clips into Ableton Live through ableton-js

Quick Start

git clone https://github.com/delaudio/ableton-composer
cd ableton-composer
npm install

cp .env.example .env
# add ANTHROPIC_API_KEY and/or OPENAI_API_KEY

Generate a first set:

ableton-composer generate "melancholic IDM, 8 sections" \
  --tracks "Bass,Drums,Pad,Lead,Chords,FX" \
  --provider openai

Analyze your own reference set into a reusable bundle:

ableton-composer analyze sets/reference-collection \
  --scope album \
  --artist "Example Artist" \
  --album "Midnight Signals"

Generate from the reference bundle:

ableton-composer generate "moody electronic sketch with restrained hooks" \
  --style profiles/albums/example-artist/midnight-signals/bundle.json \
  --tracks "Bass,Drums,Pad,Lead,Chords,FX" \
  --provider openai \
  --sections 4 \
  --chunk-size 2

Use reference sets only when you own the material, have permission to analyze it, or are working with synthetic/example material.

Documentation

The full documentation now lives in the Minuto-powered docs site under docs/.

Run the docs site locally:

npm run docs:install
npm run docs:dev

Build the static docs:

npm run docs:build

Ableton Setup

This project uses the ableton-js MIDI Remote Script.

cp -r node_modules/ableton-js/midi-script \
      ~/Music/Ableton/User\ Library/Remote\ Scripts/AbletonJS

Then in Ableton:

Preferences -> Link / MIDI -> Control Surfaces -> AbletonJS

Project Shape

src/
  commands/      CLI commands
  lib/           AI providers, analysis, profiles, Ableton helpers
prompts/         modular prompt system
schema/          JSON schema for generated songs
sets/            generated song directories
profiles/        analyzed style bundles
docs/            Minuto-powered static documentation site

Acknowledgements

ableton-composer owes a practical debt to ableton-js.

Its Remote Script and Live API bridge made it possible to prototype and ship a large part of this project's Ableton integration much faster than would otherwise have been realistic. This project builds on that groundwork with gratitude and treats it as an important source of inspiration for the Live-facing workflow.

License

MIT

About

Describe a song in plain text and get MIDI clips in Ableton Live

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors