livepilot 1.7.1 → 1.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -7,175 +7,162 @@
|
|
|
7
7
|
╚══════╝╚═╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
An agentic production system for Ableton Live 12.
|
|
11
|
+
155 tools. Device atlas. Spectral perception. Technique memory.
|
|
12
|
+
Neo-Riemannian harmony. Euclidean rhythm. Species counterpoint.
|
|
13
|
+
It doesn't assist — it produces.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
---
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
## Architecture
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
```
|
|
20
|
+
┌─────────────────────────────────────────────────────────┐
|
|
21
|
+
│ │
|
|
22
|
+
│ KNOWLEDGE PERCEPTION MEMORY │
|
|
23
|
+
│ ─────────── ────────── ────── │
|
|
24
|
+
│ 280+ devices 8-band FFT recall by │
|
|
25
|
+
│ 139 drum kits RMS / peak mood, genre, │
|
|
26
|
+
│ 350+ impulse pitch tracking texture │
|
|
27
|
+
│ responses key detection │
|
|
28
|
+
│ │
|
|
29
|
+
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
|
|
30
|
+
│ │ Device │───▶│ M4L │───▶│ Technique │ │
|
|
31
|
+
│ │ Atlas │ │ Analyzer │ │ Store │ │
|
|
32
|
+
│ └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ │
|
|
33
|
+
│ └─────────────────┼─────────────────┘ │
|
|
34
|
+
│ ▼ │
|
|
35
|
+
│ ┌─────────────────┐ │
|
|
36
|
+
│ │ 155 MCP Tools │ │
|
|
37
|
+
│ │ 16 domains │ │
|
|
38
|
+
│ └────────┬────────┘ │
|
|
39
|
+
│ │ │
|
|
40
|
+
│ Remote Script ──┤── TCP 9878 │
|
|
41
|
+
│ M4L Bridge ─────┤── UDP 9880 / OSC 9881 │
|
|
42
|
+
│ │ │
|
|
43
|
+
│ ┌────────────────┐ │
|
|
44
|
+
│ │ Ableton Live │ │
|
|
45
|
+
│ └────────────────┘ │
|
|
46
|
+
└─────────────────────────────────────────────────────────┘
|
|
47
|
+
```
|
|
22
48
|
|
|
23
|
-
|
|
49
|
+
The atlas gives the AI knowledge of every device in Ableton's library — real names, real URIs, real parameters. The analyzer gives it ears — spectral data from the master bus via a Max for Live device. The memory gives it history — a searchable library of production decisions that persists across sessions. All three feed into 155 deterministic tools that execute on Ableton's main thread through the official Live Object Model API. Everything is reversible with undo.
|
|
24
50
|
|
|
25
51
|
---
|
|
26
52
|
|
|
27
|
-
##
|
|
53
|
+
## Tools
|
|
28
54
|
|
|
29
|
-
|
|
55
|
+
### CORE ─────────────────────────────────────────
|
|
30
56
|
|
|
31
|
-
|
|
57
|
+
The foundation. Session control, MIDI, device management, mixing. Every tool maps directly to an LOM call — no abstraction, no guessing.
|
|
32
58
|
|
|
33
|
-
|
|
59
|
+
| Domain | # | Scope |
|
|
60
|
+
|--------|:-:|-------|
|
|
61
|
+
| Transport | 12 | playback, tempo, time sig, loop, metronome, undo/redo, cue points, diagnostics |
|
|
62
|
+
| Tracks | 14 | create MIDI/audio/return, delete, duplicate, arm, mute, solo, color, routing, monitoring |
|
|
63
|
+
| Clips | 11 | create, delete, duplicate, fire, stop, loop, launch mode, warp mode, quantize |
|
|
64
|
+
| Notes | 8 | add/get/remove/modify MIDI notes, transpose, duplicate, per-note probability |
|
|
65
|
+
| Devices | 12 | load by name or URI, get/set parameters, batch edit, racks, chains, presets, toggle |
|
|
66
|
+
| Scenes | 8 | create, delete, duplicate, fire, name, color, per-scene tempo |
|
|
67
|
+
| Browser | 4 | search library, browse tree, load items, filter by category |
|
|
68
|
+
| Mixing | 11 | volume, pan, sends, routing, meters, return tracks, master, full mix snapshot |
|
|
34
69
|
|
|
35
|
-
|
|
70
|
+
### PERCEPTION ───────────────────────────────────
|
|
36
71
|
|
|
37
|
-
|
|
72
|
+
The M4L Analyzer sits on the master track. UDP 9880 carries spectral data from Max to the server. OSC 9881 sends commands back. All 135 core tools work without it — the analyzer adds 20 more and closes the feedback loop.
|
|
38
73
|
|
|
39
|
-
|
|
74
|
+
**Spectral Analysis (3)** — 8-band frequency decomposition (sub → air), true RMS/peak metering, Krumhansl-Schmuckler key detection on accumulated pitch data.
|
|
40
75
|
|
|
41
|
-
|
|
76
|
+
**Deep LOM Access (4)** — hidden parameters not in the ControlSurface API, automation state for every parameter, recursive device tree walking (6 levels into nested racks), human-readable display values as shown in Live's UI.
|
|
42
77
|
|
|
43
|
-
|
|
44
|
-
- **RMS and peak metering** — true loudness, not just parameter values
|
|
45
|
-
- **Pitch tracking and key detection** — Krumhansl-Schmuckler algorithm on accumulated pitch data
|
|
78
|
+
**Simpler Operations (7)** — replace/load samples, get slice points, crop, reverse, warp to N beats, get audio file paths on disk.
|
|
46
79
|
|
|
47
|
-
|
|
80
|
+
**Warp Markers (4)** — get/add/move/remove. Tempo manipulation at the sample level.
|
|
48
81
|
|
|
49
|
-
|
|
82
|
+
**Clip Preview (2)** — scrub at beat position, stop scrub.
|
|
50
83
|
|
|
51
|
-
###
|
|
84
|
+
### INTELLIGENCE ─────────────────────────────────
|
|
52
85
|
|
|
53
|
-
|
|
86
|
+
#### Theory — 7 tools
|
|
54
87
|
|
|
55
|
-
|
|
88
|
+
Krumhansl-Schmuckler key detection with 7 mode profiles (major, minor, dorian, phrygian, lydian, mixolydian, locrian). Roman numeral analysis via scale-degree chord matching on a 1/32 note quantization grid. Voice leading checks — parallel fifths, parallel octaves, voice crossing, unresolved dominants. Species counterpoint generation (1st and 2nd species). SATB harmonization with smooth voice leading. Diatonic transposition that preserves scale relationships.
|
|
56
89
|
|
|
57
|
-
|
|
58
|
-
|-------|----------|---------|
|
|
59
|
-
| **Identity** | UUID, name, type, tags, timestamps, rating | Indexing and filtering |
|
|
60
|
-
| **Qualities** | Mood, genre, rhythm feel, harmonic character, sonic texture, production notes | Search ranking and creative context |
|
|
61
|
-
| **Payload** | Raw MIDI notes, device params, tempo, kit URIs, send levels | Exact replay or adaptation |
|
|
90
|
+
`analyze_harmony` · `suggest_next_chord` · `detect_theory_issues` · `identify_scale` · `harmonize_melody` · `generate_countermelody` · `transpose_smart`
|
|
62
91
|
|
|
63
|
-
|
|
92
|
+
#### Harmony — 4 tools
|
|
64
93
|
|
|
65
|
-
|
|
94
|
+
Neo-Riemannian PRL transforms on the Tonnetz. P flips the third: Cm ↔ C. L shifts by semitone: C ↔ Em. R by whole tone: C ↔ Am. All three are involutions — apply twice, return to origin. BFS through PRL space finds the shortest voice-leading path between any two triads. Cm to E major? That's PLP — the hexatonic pole. Three steps, each moving one voice by a semitone. The Hitchcock chord change.
|
|
66
95
|
|
|
67
|
-
|
|
96
|
+
Chromatic mediants for film-score harmony: chords a major/minor third away sharing 0-1 common tones. Maximum color shift, minimal voice movement.
|
|
68
97
|
|
|
69
|
-
|
|
98
|
+
`navigate_tonnetz` · `find_voice_leading_path` · `classify_progression` · `suggest_chromatic_mediants`
|
|
70
99
|
|
|
71
|
-
|
|
72
|
-
2. **Memory** — recalls your previous boom bap patterns, checks your preferred swing amount and velocity curves
|
|
73
|
-
3. **Tools** — creates tracks, loads instruments, programs MIDI, chains effects, sets levels
|
|
74
|
-
4. **Analyzer** — reads the spectrum to verify the kick sits right, detects the key for the bass line, checks RMS to balance levels
|
|
100
|
+
#### Generative — 5 tools
|
|
75
101
|
|
|
76
|
-
|
|
102
|
+
Bjorklund distributes N pulses across M steps — Bresenham's line algorithm applied to rhythm. E(3,8) = tresillo. E(5,8) = cinquillo. E(7,16) = Brazilian necklace. Layer multiple Euclidean patterns at different pitches for polyrhythmic textures.
|
|
77
103
|
|
|
78
|
-
|
|
104
|
+
Tintinnabuli (Arvo Pärt): for each melody note, find the nearest tone of a specified triad — above, below, or nearest. The T-voice gravitates toward the triad while the M-voice moves stepwise. Two voices, one rule, infinite music.
|
|
79
105
|
|
|
80
|
-
|
|
106
|
+
Phase shifting (Steve Reich): identical voices with accumulating timing drift. Voice 0 plays straight. Each subsequent voice shifts by N beats per repetition. They start in unison, gradually separate, and eventually realign.
|
|
81
107
|
|
|
82
|
-
|
|
108
|
+
Additive process (Philip Glass): melody unfolds note by note. Forward: 1, then 1-2, then 1-2-3. Backward: full melody, then remove from front. Both: forward then backward. The structure *is* the composition.
|
|
83
109
|
|
|
84
|
-
|
|
110
|
+
`generate_euclidean_rhythm` · `layer_euclidean_rhythms` · `generate_tintinnabuli` · `generate_phase_shift` · `generate_additive_process`
|
|
85
111
|
|
|
86
|
-
|
|
112
|
+
#### Automation — 8 tools
|
|
87
113
|
|
|
88
|
-
|
|
89
|
-
|----------|--------|-------------|
|
|
90
|
-
| **Basic Waveforms** | `linear` · `exponential` · `logarithmic` · `s_curve` · `sine` · `sawtooth` · `spike` · `square` · `steps` | The building blocks. Exponential for filter sweeps (perceptually even). Logarithmic for volume fades (matches the ear). Spike for dub throws. Sawtooth for sidechain pumps. |
|
|
91
|
-
| **Organic / Natural** | `perlin` · `brownian` · `spring` | What makes automation feel alive. Perlin noise for drifting textures. Brownian for analog-style parameter wander. Spring for realistic knob movements with overshoot and settle. |
|
|
92
|
-
| **Shape Control** | `bezier` · `easing` | Precision curves for intentional design. Bezier with arbitrary control points. 8 easing types from the animation world: bounce, elastic, back overshoot, ease in/out. |
|
|
93
|
-
| **Algorithmic** | `euclidean` · `stochastic` | Generative intelligence. Euclidean distributes automation events using the Bjorklund algorithm (the same math behind Euclidean rhythms). Stochastic applies Xenakis-inspired controlled randomness within narrowing bounds. |
|
|
114
|
+
16 curve types in 4 categories:
|
|
94
115
|
|
|
95
|
-
|
|
116
|
+
```
|
|
117
|
+
BASIC ─────── linear · exponential · logarithmic · s_curve
|
|
118
|
+
sine · sawtooth · spike · square · steps
|
|
119
|
+
ORGANIC ───── perlin · brownian · spring
|
|
120
|
+
SHAPE ─────── bezier · easing (8 types: bounce, elastic, back...)
|
|
121
|
+
GENERATIVE ── euclidean · stochastic
|
|
122
|
+
```
|
|
96
123
|
|
|
97
|
-
|
|
124
|
+
15 built-in recipes: `filter_sweep_up` · `filter_sweep_down` · `dub_throw` · `tape_stop` · `build_rise` · `sidechain_pump` · `fade_in` · `fade_out` · `tremolo` · `auto_pan` · `stutter` · `breathing` · `washout` · `vinyl_crackle` · `stereo_narrow`
|
|
98
125
|
|
|
99
|
-
|
|
126
|
+
Perception-action loop: `analyze_for_automation` reads the spectrum and device chain, suggests what to automate, and maps each suggestion to a recipe. The AI doesn't write automation blind — it knows what to automate based on what it hears.
|
|
100
127
|
|
|
101
|
-
|
|
102
|
-
|--------|-------|-------------|
|
|
103
|
-
| `filter_sweep_up` | exponential | LP filter opening over 8-32 bars |
|
|
104
|
-
| `filter_sweep_down` | logarithmic | LP filter closing, mirrors the sweep up |
|
|
105
|
-
| `dub_throw` | spike | Instant send spike for reverb/delay throws |
|
|
106
|
-
| `tape_stop` | exponential | Pitch dropping to zero — steep deceleration |
|
|
107
|
-
| `build_rise` | exponential | Tension build on HP filter + volume + reverb |
|
|
108
|
-
| `sidechain_pump` | sawtooth | Volume ducking per beat — fast duck, slow recovery |
|
|
109
|
-
| `fade_in` / `fade_out` | log / exp | Perceptually smooth volume fades |
|
|
110
|
-
| `tremolo` | sine | Periodic volume oscillation |
|
|
111
|
-
| `auto_pan` | sine | Stereo movement via pan |
|
|
112
|
-
| `stutter` | square | Rapid on/off gating |
|
|
113
|
-
| `breathing` | sine | Subtle filter movement — acoustic instrument feel |
|
|
114
|
-
| `washout` | exponential | Reverb/delay feedback increasing to wash |
|
|
115
|
-
| `vinyl_crackle` | sine | Slow bit reduction for lo-fi character |
|
|
116
|
-
| `stereo_narrow` | exponential | Collapse stereo to mono before drop |
|
|
128
|
+
`get_clip_automation` · `set_clip_automation` · `clear_clip_automation` · `apply_automation_shape` · `apply_automation_recipe` · `get_automation_recipes` · `generate_automation_curve` · `analyze_for_automation`
|
|
117
129
|
|
|
118
|
-
###
|
|
130
|
+
### MEMORY + I/O ──────────────────────────────────
|
|
119
131
|
|
|
120
|
-
|
|
132
|
+
#### Memory — 8 tools
|
|
121
133
|
|
|
122
|
-
|
|
123
|
-
2. **Scans the device chain** — detects filters, reverbs, synths, distortion
|
|
124
|
-
3. **Suggests automation targets** — "Filter detected → automate cutoff for movement", "Heavy sub content → HP filter sweep for builds"
|
|
125
|
-
4. **Recommends recipes** — maps each suggestion to the right named recipe
|
|
134
|
+
Persistent technique library. Five types: `beat_pattern`, `device_chain`, `mix_template`, `preference`, `browser_pin`. Each stores identity (name, tags, timestamps), qualities (mood, genre, texture, production notes), and payload (raw MIDI, device params, tempo, URIs). Recall by text query matching mood, genre, texture — not just names. Favorite, rate, replay.
|
|
126
135
|
|
|
127
|
-
|
|
136
|
+
`memory_learn` · `memory_recall` · `memory_list` · `memory_get` · `memory_update` · `memory_delete` · `memory_favorite` · `memory_replay`
|
|
128
137
|
|
|
129
|
-
|
|
138
|
+
#### MIDI I/O — 4 tools
|
|
130
139
|
|
|
131
|
-
|
|
140
|
+
Export session clips to standard .mid files. Import .mid into session clips — auto-creates the clip, tempo-aware timing conversion. Offline analysis without Ableton: note count, duration, tempo, pitch range, velocity stats, density curve, key estimate. Piano roll extraction: 2D velocity matrix at configurable resolution (default 1/32 note). Dependencies lazy-loaded — graceful error if missing.
|
|
132
141
|
|
|
133
|
-
|
|
134
|
-
- **Arrange** — Build full song structures in arrangement view with MIDI editing, cue points, automation, and timeline navigation
|
|
135
|
-
- **Design sounds** — Browse Ableton's library, load presets, tweak every device parameter, chain effects, walk nested racks 6 levels deep
|
|
136
|
-
- **Mix with ears** — Set levels, panning, sends, and routing. Read the spectrum, check RMS, detect the key. The analyzer tells the AI what changed, not just what was set
|
|
137
|
-
- **Automate intelligently** — Write clip automation with 16 mathematically precise curve types, apply named recipes (dub throws, filter sweeps, sidechain pumps), get spectral-aware suggestions for what to automate next
|
|
138
|
-
- **Remember and evolve** — Save techniques, build a personal style library, replay past decisions exactly or as variations
|
|
139
|
-
- **Chop samples** — Load audio into Simpler, slice, reverse, crop, warp, and reprogram — all from conversation
|
|
140
|
-
- **Iterate fast** — Transpose, humanize, quantize, duplicate, and reshape patterns through conversation
|
|
142
|
+
`export_clip_midi` · `import_midi_to_clip` · `analyze_midi_file` · `extract_piano_roll`
|
|
141
143
|
|
|
142
144
|
---
|
|
143
145
|
|
|
144
|
-
##
|
|
146
|
+
## Install
|
|
145
147
|
|
|
146
|
-
### 1.
|
|
148
|
+
### 1. Remote Script
|
|
147
149
|
|
|
148
150
|
```bash
|
|
149
|
-
npx
|
|
151
|
+
npx livepilot --install
|
|
150
152
|
```
|
|
151
153
|
|
|
152
|
-
|
|
154
|
+
Restart Ableton → Preferences → Link, Tempo & MIDI → Control Surface → **LivePilot**
|
|
153
155
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
### 3. Add to your MCP client
|
|
156
|
+
### 2. MCP Client
|
|
157
157
|
|
|
158
158
|
<details open>
|
|
159
159
|
<summary><strong>Claude Code</strong></summary>
|
|
160
160
|
|
|
161
161
|
```bash
|
|
162
|
-
claude mcp add LivePilot -- npx
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
Or add to `.mcp.json`:
|
|
166
|
-
|
|
167
|
-
```json
|
|
168
|
-
{
|
|
169
|
-
"mcpServers": {
|
|
170
|
-
"LivePilot": {
|
|
171
|
-
"command": "npx",
|
|
172
|
-
"args": ["-y", "github:dreamrec/LivePilot"]
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
162
|
+
claude mcp add LivePilot -- npx livepilot
|
|
176
163
|
```
|
|
177
164
|
|
|
178
|
-
|
|
165
|
+
Plugin (adds skills, slash commands, producer agent):
|
|
179
166
|
|
|
180
167
|
```bash
|
|
181
168
|
claude plugin add github:dreamrec/LivePilot/plugin
|
|
@@ -186,34 +173,30 @@ claude plugin add github:dreamrec/LivePilot/plugin
|
|
|
186
173
|
<details>
|
|
187
174
|
<summary><strong>Claude Desktop (macOS)</strong></summary>
|
|
188
175
|
|
|
189
|
-
|
|
176
|
+
`~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
190
177
|
|
|
191
178
|
```json
|
|
192
179
|
{
|
|
193
180
|
"mcpServers": {
|
|
194
181
|
"LivePilot": {
|
|
195
182
|
"command": "npx",
|
|
196
|
-
"args": ["
|
|
183
|
+
"args": ["livepilot"]
|
|
197
184
|
}
|
|
198
185
|
}
|
|
199
186
|
}
|
|
200
187
|
```
|
|
201
188
|
|
|
202
|
-
Restart Claude Desktop after saving.
|
|
203
|
-
|
|
204
189
|
</details>
|
|
205
190
|
|
|
206
191
|
<details>
|
|
207
192
|
<summary><strong>Claude Desktop (Windows)</strong></summary>
|
|
208
193
|
|
|
209
|
-
On Windows, `npx` can cause EBUSY file-locking errors. Install globally instead:
|
|
210
|
-
|
|
211
194
|
```cmd
|
|
212
|
-
npm install -g
|
|
195
|
+
npm install -g livepilot
|
|
213
196
|
livepilot --install
|
|
214
197
|
```
|
|
215
198
|
|
|
216
|
-
|
|
199
|
+
`%APPDATA%\Claude\claude_desktop_config.json`:
|
|
217
200
|
|
|
218
201
|
```json
|
|
219
202
|
{
|
|
@@ -225,26 +208,19 @@ Add to `%APPDATA%\Claude\claude_desktop_config.json`:
|
|
|
225
208
|
}
|
|
226
209
|
```
|
|
227
210
|
|
|
228
|
-
Restart Claude Desktop after saving.
|
|
229
|
-
|
|
230
211
|
</details>
|
|
231
212
|
|
|
232
213
|
<details>
|
|
233
214
|
<summary><strong>Cursor</strong></summary>
|
|
234
215
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
- **Name:** LivePilot
|
|
238
|
-
- **Command:** `npx -y github:dreamrec/LivePilot`
|
|
239
|
-
|
|
240
|
-
Or add to `.cursor/mcp.json`:
|
|
216
|
+
`.cursor/mcp.json`:
|
|
241
217
|
|
|
242
218
|
```json
|
|
243
219
|
{
|
|
244
220
|
"mcpServers": {
|
|
245
221
|
"LivePilot": {
|
|
246
222
|
"command": "npx",
|
|
247
|
-
"args": ["
|
|
223
|
+
"args": ["livepilot"]
|
|
248
224
|
}
|
|
249
225
|
}
|
|
250
226
|
}
|
|
@@ -253,34 +229,29 @@ Or add to `.cursor/mcp.json`:
|
|
|
253
229
|
</details>
|
|
254
230
|
|
|
255
231
|
<details>
|
|
256
|
-
<summary><strong>VS Code
|
|
232
|
+
<summary><strong>VS Code / Windsurf</strong></summary>
|
|
257
233
|
|
|
258
|
-
|
|
234
|
+
VS Code — `.vscode/mcp.json`:
|
|
259
235
|
|
|
260
236
|
```json
|
|
261
237
|
{
|
|
262
238
|
"servers": {
|
|
263
239
|
"LivePilot": {
|
|
264
240
|
"command": "npx",
|
|
265
|
-
"args": ["
|
|
241
|
+
"args": ["livepilot"]
|
|
266
242
|
}
|
|
267
243
|
}
|
|
268
244
|
}
|
|
269
245
|
```
|
|
270
246
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
<details>
|
|
274
|
-
<summary><strong>Windsurf</strong></summary>
|
|
275
|
-
|
|
276
|
-
Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
247
|
+
Windsurf — `~/.codeium/windsurf/mcp_config.json`:
|
|
277
248
|
|
|
278
249
|
```json
|
|
279
250
|
{
|
|
280
251
|
"mcpServers": {
|
|
281
252
|
"LivePilot": {
|
|
282
253
|
"command": "npx",
|
|
283
|
-
"args": ["
|
|
254
|
+
"args": ["livepilot"]
|
|
284
255
|
}
|
|
285
256
|
}
|
|
286
257
|
}
|
|
@@ -288,236 +259,273 @@ Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
|
288
259
|
|
|
289
260
|
</details>
|
|
290
261
|
|
|
291
|
-
###
|
|
262
|
+
### 3. M4L Analyzer (optional)
|
|
263
|
+
|
|
264
|
+
Drag `LivePilot_Analyzer.amxd` onto the master track. Unlocks 20 additional tools: spectral analysis, key detection, sample manipulation, deep device introspection. All core tools work without it.
|
|
265
|
+
|
|
266
|
+
### 4. Verify
|
|
292
267
|
|
|
293
268
|
```bash
|
|
294
|
-
npx
|
|
269
|
+
npx livepilot --status
|
|
295
270
|
```
|
|
296
271
|
|
|
297
272
|
---
|
|
298
273
|
|
|
299
|
-
##
|
|
300
|
-
|
|
301
|
-
| Domain | Tools | What you can do |
|
|
302
|
-
|--------|:-----:|-----------------|
|
|
303
|
-
| **Transport** | 12 | Play/stop, tempo, time signature, loop, undo/redo, metronome, diagnostics |
|
|
304
|
-
| **Tracks** | 14 | Create MIDI/audio/return tracks, name, color, mute, solo, arm, group fold, input monitoring |
|
|
305
|
-
| **Clips** | 11 | Create, delete, duplicate, fire, stop, loop settings, launch mode, warp mode |
|
|
306
|
-
| **Notes** | 8 | Add/get/remove/modify MIDI notes, transpose, quantize, duplicate |
|
|
307
|
-
| **Devices** | 12 | Load instruments & effects, tweak parameters, rack chains, presets — works on regular, return, and master tracks |
|
|
308
|
-
| **Scenes** | 8 | Create, delete, duplicate, fire, rename, color, per-scene tempo |
|
|
309
|
-
| **Mixing** | 11 | Volume, pan, sends, routing, meters, mix snapshot — return tracks and master fully supported |
|
|
310
|
-
| **Browser** | 4 | Search Ableton's library, browse categories, load presets |
|
|
311
|
-
| **Arrangement** | 19 | Create clips, full MIDI note CRUD, cue points, recording, automation |
|
|
312
|
-
| **Automation** | 8 | Clip envelope CRUD, 16-type curve engine, 15 named recipes, spectral-aware suggestions |
|
|
313
|
-
| **Memory** | 8 | Save, recall, replay, and manage production techniques |
|
|
314
|
-
| **Analyzer** | 20 | Real-time spectral analysis, key detection, sample manipulation, warp markers, device introspection (requires M4L device) |
|
|
315
|
-
| **Theory** | 7 | Harmony analysis, Roman numerals, scale identification, chord suggestions, countermelody, SATB harmonization, smart transposition |
|
|
316
|
-
| **Generative** | 5 | Euclidean rhythms (Bjorklund), polyrhythmic layering, Pärt tintinnabuli, Reich phase shift, Glass additive process |
|
|
317
|
-
| **Harmony** | 4 | Tonnetz navigation, voice leading paths, neo-Riemannian classification, chromatic mediants |
|
|
318
|
-
| **MIDI I/O** | 4 | Export clips to .mid, import .mid files, offline MIDI analysis, piano roll extraction |
|
|
274
|
+
## Plugin
|
|
319
275
|
|
|
320
|
-
|
|
321
|
-
|
|
276
|
+
```bash
|
|
277
|
+
claude plugin add github:dreamrec/LivePilot/plugin
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
| Command | What |
|
|
281
|
+
|---------|------|
|
|
282
|
+
| `/session` | Full session overview with diagnostics |
|
|
283
|
+
| `/beat` | Guided beat creation |
|
|
284
|
+
| `/mix` | Mixing assistant |
|
|
285
|
+
| `/sounddesign` | Sound design workflow |
|
|
286
|
+
| `/memory` | Technique library management |
|
|
287
|
+
|
|
288
|
+
**Producer Agent** — autonomous multi-step production. Consults memory for style context, searches the atlas for instruments, creates tracks, programs MIDI, chains effects, reads the spectrum to verify. Ships with a reference corpus (drum patterns, chord voicings, sound design recipes, mixing templates).
|
|
289
|
+
|
|
290
|
+
**Core Skill** — operational discipline connecting all three layers. Consult atlas before loading. Read analyzer after mixing. Check memory before creative decisions. Verify every mutation.
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Full Tool List ────────────────────────────────
|
|
295
|
+
|
|
296
|
+
155 tools across 16 domains.
|
|
322
297
|
|
|
323
298
|
### Transport (12)
|
|
324
|
-
|
|
299
|
+
| Tool | Description |
|
|
300
|
+
|------|-------------|
|
|
301
|
+
| `get_session_info` | Session state: tempo, tracks, scenes, transport |
|
|
302
|
+
| `set_tempo` | Set tempo (20-999 BPM) |
|
|
303
|
+
| `set_time_signature` | Set time signature |
|
|
304
|
+
| `start_playback` | Start from beginning |
|
|
305
|
+
| `stop_playback` | Stop |
|
|
306
|
+
| `continue_playback` | Resume from current position |
|
|
307
|
+
| `toggle_metronome` | Enable/disable click |
|
|
308
|
+
| `set_session_loop` | Set loop start, length, on/off |
|
|
309
|
+
| `undo` | Undo last action |
|
|
310
|
+
| `redo` | Redo |
|
|
311
|
+
| `get_recent_actions` | Recent undo history |
|
|
312
|
+
| `get_session_diagnostics` | Analyze session for issues |
|
|
325
313
|
|
|
326
314
|
### Tracks (14)
|
|
327
|
-
|
|
315
|
+
| Tool | Description |
|
|
316
|
+
|------|-------------|
|
|
317
|
+
| `get_track_info` | Track details: clips, devices, mixer |
|
|
318
|
+
| `create_midi_track` | New MIDI track |
|
|
319
|
+
| `create_audio_track` | New audio track |
|
|
320
|
+
| `create_return_track` | New return track |
|
|
321
|
+
| `delete_track` | Delete a track |
|
|
322
|
+
| `duplicate_track` | Copy track with all content |
|
|
323
|
+
| `set_track_name` | Rename |
|
|
324
|
+
| `set_track_color` | Set color (0-69) |
|
|
325
|
+
| `set_track_mute` | Mute on/off |
|
|
326
|
+
| `set_track_solo` | Solo on/off |
|
|
327
|
+
| `set_track_arm` | Arm for recording |
|
|
328
|
+
| `stop_track_clips` | Stop all clips on track |
|
|
329
|
+
| `set_group_fold` | Fold/unfold group track |
|
|
330
|
+
| `set_track_input_monitoring` | Set monitoring mode |
|
|
328
331
|
|
|
329
332
|
### Clips (11)
|
|
330
|
-
|
|
333
|
+
| Tool | Description |
|
|
334
|
+
|------|-------------|
|
|
335
|
+
| `get_clip_info` | Clip details: length, loop, launch |
|
|
336
|
+
| `create_clip` | New empty MIDI clip |
|
|
337
|
+
| `delete_clip` | Delete a clip |
|
|
338
|
+
| `duplicate_clip` | Copy to another slot |
|
|
339
|
+
| `fire_clip` | Launch a clip |
|
|
340
|
+
| `stop_clip` | Stop a clip |
|
|
341
|
+
| `set_clip_name` | Rename |
|
|
342
|
+
| `set_clip_color` | Set color |
|
|
343
|
+
| `set_clip_loop` | Loop start, end, on/off |
|
|
344
|
+
| `set_clip_launch` | Launch mode and quantization |
|
|
345
|
+
| `set_clip_warp_mode` | Set warp algorithm |
|
|
331
346
|
|
|
332
347
|
### Notes (8)
|
|
333
|
-
|
|
348
|
+
| Tool | Description |
|
|
349
|
+
|------|-------------|
|
|
350
|
+
| `add_notes` | Add MIDI notes with velocity, probability |
|
|
351
|
+
| `get_notes` | Read notes from a region |
|
|
352
|
+
| `remove_notes` | Remove notes in a region |
|
|
353
|
+
| `remove_notes_by_id` | Remove specific notes by ID |
|
|
354
|
+
| `modify_notes` | Change pitch, time, velocity, probability |
|
|
355
|
+
| `duplicate_notes` | Copy notes to new position |
|
|
356
|
+
| `transpose_notes` | Shift pitch by semitones |
|
|
357
|
+
| `quantize_clip` | Quantize to grid |
|
|
334
358
|
|
|
335
359
|
### Devices (12)
|
|
336
|
-
|
|
360
|
+
| Tool | Description |
|
|
361
|
+
|------|-------------|
|
|
362
|
+
| `get_device_info` | Device name, class, parameters |
|
|
363
|
+
| `get_device_parameters` | All params with names, values, ranges |
|
|
364
|
+
| `set_device_parameter` | Set param by name or index |
|
|
365
|
+
| `batch_set_parameters` | Set multiple params in one call |
|
|
366
|
+
| `toggle_device` | Enable/disable |
|
|
367
|
+
| `delete_device` | Remove from chain |
|
|
368
|
+
| `load_device_by_uri` | Load by browser URI |
|
|
369
|
+
| `find_and_load_device` | Search and load by name |
|
|
370
|
+
| `get_rack_chains` | Get chains in a rack |
|
|
371
|
+
| `set_simpler_playback_mode` | Classic/1-shot/slice |
|
|
372
|
+
| `set_chain_volume` | Set chain volume in rack |
|
|
373
|
+
| `get_device_presets` | List available presets |
|
|
337
374
|
|
|
338
375
|
### Scenes (8)
|
|
339
|
-
|
|
376
|
+
| Tool | Description |
|
|
377
|
+
|------|-------------|
|
|
378
|
+
| `get_scenes_info` | All scenes: name, tempo, color |
|
|
379
|
+
| `create_scene` | New scene |
|
|
380
|
+
| `delete_scene` | Delete a scene |
|
|
381
|
+
| `duplicate_scene` | Copy scene with all clips |
|
|
382
|
+
| `fire_scene` | Launch all clips in scene |
|
|
383
|
+
| `set_scene_name` | Rename |
|
|
384
|
+
| `set_scene_color` | Set color |
|
|
385
|
+
| `set_scene_tempo` | Per-scene tempo |
|
|
340
386
|
|
|
341
387
|
### Mixing (11)
|
|
342
|
-
|
|
388
|
+
| Tool | Description |
|
|
389
|
+
|------|-------------|
|
|
390
|
+
| `set_track_volume` | Volume (0.0-1.0) |
|
|
391
|
+
| `set_track_pan` | Pan (-1.0 to 1.0) |
|
|
392
|
+
| `set_track_send` | Send level (0.0-1.0) |
|
|
393
|
+
| `get_return_tracks` | Return track info |
|
|
394
|
+
| `get_master_track` | Master track info |
|
|
395
|
+
| `set_master_volume` | Master volume |
|
|
396
|
+
| `get_track_routing` | Input/output routing |
|
|
397
|
+
| `set_track_routing` | Set routing by display name |
|
|
398
|
+
| `get_track_meters` | Live meter levels |
|
|
399
|
+
| `get_master_meters` | Master meter levels |
|
|
400
|
+
| `get_mix_snapshot` | Full mix state in one call |
|
|
343
401
|
|
|
344
402
|
### Browser (4)
|
|
345
|
-
|
|
403
|
+
| Tool | Description |
|
|
404
|
+
|------|-------------|
|
|
405
|
+
| `get_browser_tree` | Browse category tree |
|
|
406
|
+
| `get_browser_items` | List items in a category |
|
|
407
|
+
| `search_browser` | Search by name with filters |
|
|
408
|
+
| `load_browser_item` | Load item by URI |
|
|
346
409
|
|
|
347
410
|
### Arrangement (19)
|
|
348
|
-
|
|
411
|
+
| Tool | Description |
|
|
412
|
+
|------|-------------|
|
|
413
|
+
| `get_arrangement_clips` | List arrangement clips |
|
|
414
|
+
| `create_arrangement_clip` | New clip at timeline position |
|
|
415
|
+
| `add_arrangement_notes` | Add MIDI notes to arrangement clip |
|
|
416
|
+
| `get_arrangement_notes` | Read arrangement notes |
|
|
417
|
+
| `remove_arrangement_notes` | Remove notes in region |
|
|
418
|
+
| `remove_arrangement_notes_by_id` | Remove by ID |
|
|
419
|
+
| `modify_arrangement_notes` | Modify arrangement notes |
|
|
420
|
+
| `duplicate_arrangement_notes` | Copy notes |
|
|
421
|
+
| `transpose_arrangement_notes` | Shift pitch |
|
|
422
|
+
| `set_arrangement_clip_name` | Rename arrangement clip |
|
|
423
|
+
| `set_arrangement_automation` | Write arrangement automation |
|
|
424
|
+
| `back_to_arranger` | Switch to arrangement view |
|
|
425
|
+
| `jump_to_time` | Seek to beat position |
|
|
426
|
+
| `capture_midi` | Capture played MIDI |
|
|
427
|
+
| `start_recording` | Start recording |
|
|
428
|
+
| `stop_recording` | Stop recording |
|
|
429
|
+
| `get_cue_points` | List cue points |
|
|
430
|
+
| `jump_to_cue` | Jump to cue point |
|
|
431
|
+
| `toggle_cue_point` | Add/remove cue point |
|
|
349
432
|
|
|
350
433
|
### Automation (8)
|
|
351
|
-
|
|
434
|
+
| Tool | Description |
|
|
435
|
+
|------|-------------|
|
|
436
|
+
| `get_clip_automation` | List envelopes on a clip |
|
|
437
|
+
| `set_clip_automation` | Write automation points |
|
|
438
|
+
| `clear_clip_automation` | Clear envelopes |
|
|
439
|
+
| `apply_automation_shape` | Generate + write curve in one call |
|
|
440
|
+
| `apply_automation_recipe` | Apply named recipe |
|
|
441
|
+
| `get_automation_recipes` | List all 15 recipes |
|
|
442
|
+
| `generate_automation_curve` | Preview curve without writing |
|
|
443
|
+
| `analyze_for_automation` | Spectral analysis + suggestions |
|
|
352
444
|
|
|
353
445
|
### Memory (8)
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
446
|
+
| Tool | Description |
|
|
447
|
+
|------|-------------|
|
|
448
|
+
| `memory_learn` | Save a technique |
|
|
449
|
+
| `memory_recall` | Search by text/mood/genre |
|
|
450
|
+
| `memory_list` | Browse library |
|
|
451
|
+
| `memory_get` | Get full technique with payload |
|
|
452
|
+
| `memory_update` | Update a technique |
|
|
453
|
+
| `memory_delete` | Delete a technique |
|
|
454
|
+
| `memory_favorite` | Toggle favorite |
|
|
455
|
+
| `memory_replay` | Replay saved technique |
|
|
456
|
+
|
|
457
|
+
### Analyzer (20) `[M4L]`
|
|
458
|
+
| Tool | Description |
|
|
459
|
+
|------|-------------|
|
|
460
|
+
| `get_master_spectrum` | 8-band frequency analysis |
|
|
461
|
+
| `get_master_rms` | RMS and peak levels |
|
|
462
|
+
| `get_detected_key` | Krumhansl-Schmuckler key detection |
|
|
463
|
+
| `get_hidden_parameters` | All params including hidden ones |
|
|
464
|
+
| `get_automation_state` | Automation state per parameter |
|
|
465
|
+
| `walk_device_tree` | Recursive device chain tree (6 levels) |
|
|
466
|
+
| `get_display_values` | Human-readable param values |
|
|
467
|
+
| `get_clip_file_path` | Audio file path on disk |
|
|
468
|
+
| `replace_simpler_sample` | Load audio into Simpler |
|
|
469
|
+
| `load_sample_to_simpler` | Bootstrap Simpler + load sample |
|
|
470
|
+
| `get_simpler_slices` | Slice point positions |
|
|
471
|
+
| `crop_simpler` | Crop to active region |
|
|
472
|
+
| `reverse_simpler` | Reverse sample |
|
|
473
|
+
| `warp_simpler` | Time-stretch to N beats |
|
|
474
|
+
| `get_warp_markers` | Get all warp markers |
|
|
475
|
+
| `add_warp_marker` | Add warp marker |
|
|
476
|
+
| `move_warp_marker` | Move warp marker |
|
|
477
|
+
| `remove_warp_marker` | Remove warp marker |
|
|
478
|
+
| `scrub_clip` | Preview at beat position |
|
|
479
|
+
| `stop_scrub` | Stop preview |
|
|
358
480
|
|
|
359
481
|
### Theory (7)
|
|
360
|
-
|
|
482
|
+
| Tool | Description |
|
|
483
|
+
|------|-------------|
|
|
484
|
+
| `analyze_harmony` | Chord-by-chord Roman numeral analysis |
|
|
485
|
+
| `suggest_next_chord` | Theory-valid continuations with style presets |
|
|
486
|
+
| `detect_theory_issues` | Parallel 5ths, out-of-key, voice crossing |
|
|
487
|
+
| `identify_scale` | Key/mode detection with confidence ranking |
|
|
488
|
+
| `harmonize_melody` | 2 or 4-voice SATB harmonization |
|
|
489
|
+
| `generate_countermelody` | Species counterpoint (1st/2nd) |
|
|
490
|
+
| `transpose_smart` | Diatonic or chromatic transposition |
|
|
361
491
|
|
|
362
492
|
### Generative (5)
|
|
363
|
-
|
|
493
|
+
| Tool | Description |
|
|
494
|
+
|------|-------------|
|
|
495
|
+
| `generate_euclidean_rhythm` | Bjorklund algorithm, identifies named rhythms |
|
|
496
|
+
| `layer_euclidean_rhythms` | Stack patterns for polyrhythmic textures |
|
|
497
|
+
| `generate_tintinnabuli` | Arvo Pärt — triad voice from melody |
|
|
498
|
+
| `generate_phase_shift` | Steve Reich — drifting canon |
|
|
499
|
+
| `generate_additive_process` | Philip Glass — expanding/contracting melody |
|
|
364
500
|
|
|
365
501
|
### Harmony (4)
|
|
366
|
-
|
|
502
|
+
| Tool | Description |
|
|
503
|
+
|------|-------------|
|
|
504
|
+
| `navigate_tonnetz` | PRL neighbors at depth N |
|
|
505
|
+
| `find_voice_leading_path` | Shortest path between two chords |
|
|
506
|
+
| `classify_progression` | Identify neo-Riemannian pattern |
|
|
507
|
+
| `suggest_chromatic_mediants` | All chromatic mediant relations |
|
|
367
508
|
|
|
368
509
|
### MIDI I/O (4)
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
## Plugin
|
|
376
|
-
|
|
377
|
-
The plugin adds a skill, an autonomous agent, and 5 slash commands on top of the MCP tools.
|
|
378
|
-
|
|
379
|
-
```bash
|
|
380
|
-
claude plugin add github:dreamrec/LivePilot/plugin
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
### Commands
|
|
384
|
-
|
|
385
|
-
| Command | Description |
|
|
386
|
-
|---------|-------------|
|
|
387
|
-
| `/session` | Full session overview with diagnostics |
|
|
388
|
-
| `/beat` | Guided beat creation — genre, tempo, instrumentation |
|
|
389
|
-
| `/mix` | Mixing assistant — levels, panning, sends |
|
|
390
|
-
| `/sounddesign` | Sound design workflow — instruments, effects, presets |
|
|
391
|
-
| `/memory` | Browse, search, and manage your technique library |
|
|
392
|
-
|
|
393
|
-
### Producer Agent
|
|
394
|
-
|
|
395
|
-
Autonomous agent that handles multi-step production tasks end-to-end. "Make a lo-fi hip hop beat at 75 BPM" triggers a full pipeline: consult the technique memory for style context, search the device atlas for the right drum kit and instruments, create tracks, program MIDI, chain effects, set levels — then read the spectrum through the analyzer to verify everything sounds right.
|
|
396
|
-
|
|
397
|
-
The agent ships with a 2,700-line reference corpus (drum patterns, chord voicings, sound design recipes, mixing templates) and consults the technique memory by default. Mandatory health checks between each stage verify every track produces audible output — the analyzer confirms what the meters suggest.
|
|
398
|
-
|
|
399
|
-
### Core Skill
|
|
400
|
-
|
|
401
|
-
`livepilot-core` encodes the operational discipline that connects all three layers. It teaches the AI to consult the device atlas before loading instruments, read the analyzer after mixing moves, check technique memory before creative decisions, and verify every mutation through state reads. It enforces the rules that prevent silent failures: never load empty Drum Racks, never hallucinate device names, always verify audio output. Without it, an LLM with access to the tools will produce silent tracks and load wrong devices.
|
|
402
|
-
|
|
403
|
-
---
|
|
404
|
-
|
|
405
|
-
## M4L Analyzer
|
|
406
|
-
|
|
407
|
-
The LivePilot Analyzer (`LivePilot_Analyzer.amxd`) gives the AI ears. Drop it on the master track and 20 additional tools unlock: 8-band spectral analysis, RMS/peak metering, Krumhansl-Schmuckler key detection, plus deep LOM access for sample manipulation, warp markers, device introspection, and human-readable parameter display values.
|
|
408
|
-
|
|
409
|
-
All 115 core tools work without it. The analyzer is what turns LivePilot from a remote control into a feedback loop — the AI can set an EQ curve and then read the spectrum to verify the result.
|
|
510
|
+
| Tool | Description |
|
|
511
|
+
|------|-------------|
|
|
512
|
+
| `export_clip_midi` | Export clip to .mid file |
|
|
513
|
+
| `import_midi_to_clip` | Import .mid into session clip |
|
|
514
|
+
| `analyze_midi_file` | Offline MIDI analysis |
|
|
515
|
+
| `extract_piano_roll` | 2D velocity matrix extraction |
|
|
410
516
|
|
|
411
517
|
---
|
|
412
518
|
|
|
413
|
-
##
|
|
414
|
-
|
|
415
|
-
There are **15+ MCP servers for Ableton Live** as of March 2026. Here's how the major ones compare:
|
|
416
|
-
|
|
417
|
-
### At a Glance
|
|
418
|
-
|
|
419
|
-
| | [LivePilot](https://github.com/dreamrec/LivePilot) | [AbletonMCP](https://github.com/ahujasid/ableton-mcp) | [MCP Extended](https://github.com/uisato/ableton-mcp-extended) | [Ableton Copilot](https://github.com/xiaolaa2/ableton-copilot-mcp) | [AbletonBridge](https://github.com/hidingwill/AbletonBridge) | [Producer Pal](https://github.com/adamjmurray/producer-pal) |
|
|
420
|
-
|---|:-:|:-:|:-:|:-:|:-:|:-:|
|
|
421
|
-
| **Tools** | 155 | ~20 | ~35 | ~45 | 322 | ~25 |
|
|
422
|
-
| **Device knowledge** | 280+ devices | -- | -- | -- | -- | -- |
|
|
423
|
-
| **Audio analysis** | Spectrum/RMS/key | -- | -- | -- | Metering | -- |
|
|
424
|
-
| **Technique memory** | Persistent | -- | -- | -- | -- | -- |
|
|
425
|
-
| **Stars** | new | 2.3k | 139 | 72 | 13 | 103 |
|
|
426
|
-
| **Language** | Python | Python | Python | TypeScript | Python | TypeScript |
|
|
427
|
-
| **Active** | Yes | Slow | Yes | Yes | Yes | Yes |
|
|
428
|
-
|
|
429
|
-
### Feature Comparison
|
|
430
|
-
|
|
431
|
-
| Capability | LivePilot | AbletonMCP | Extended | Copilot | Bridge | Producer Pal |
|
|
432
|
-
|---|:-:|:-:|:-:|:-:|:-:|:-:|
|
|
433
|
-
| Transport | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
434
|
-
| Tracks (MIDI/audio/return) | ✅ | Partial | ✅ | ✅ | ✅ | ✅ |
|
|
435
|
-
| Session clips | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
436
|
-
| **Arrangement view** | ✅ | — | — | ✅ | ? | ? |
|
|
437
|
-
| **Arrangement automation** | ✅ | — | — | — | ? | — |
|
|
438
|
-
| **Clip automation (envelopes)** | ✅ | — | — | — | — | — |
|
|
439
|
-
| **Automation curve engine** | ✅ | — | — | — | — | — |
|
|
440
|
-
| MIDI notes (add/get) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
441
|
-
| **MIDI notes (modify/delete by ID)** | ✅ | — | — | ✅ | ? | — |
|
|
442
|
-
| **Per-note probability** | ✅ | — | — | — | — | — |
|
|
443
|
-
| Device loading | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
|
|
444
|
-
| Device parameters | ✅ | Basic | ✅ | ✅ | ✅ | ? |
|
|
445
|
-
| **Batch parameter editing** | ✅ | — | — | — | ? | — |
|
|
446
|
-
| **Rack chains** | ✅ | — | — | — | ✅ | — |
|
|
447
|
-
| Browser (tree/search/URI) | ✅ | Basic | ✅ | ✅ | ✅ | — |
|
|
448
|
-
| **Plugin browser (AU/VST)** | ✅ | — | — | — | ? | — |
|
|
449
|
-
| Mixing (vol/pan/sends) | ✅ | Basic | ✅ | Basic | ✅ | ? |
|
|
450
|
-
| **Master track control** | ✅ | — | — | — | ✅ | — |
|
|
451
|
-
| Scenes | ✅ | — | ✅ | ? | ✅ | ✅ |
|
|
452
|
-
| **Undo wrapping** | ✅ | — | Partial | — | ? | — |
|
|
453
|
-
| **Session diagnostics** | ✅ | — | — | — | — | — |
|
|
454
|
-
| **Technique memory** | ✅ | — | — | — | — | — |
|
|
455
|
-
| **AI plugin (skills/agent)** | ✅ | — | — | — | — | — |
|
|
456
|
-
| **Device Atlas (built-in)** | ✅ | — | — | — | — | — |
|
|
457
|
-
| **Auto-detect installer** | ✅ | — | — | ✅ | — | — |
|
|
458
|
-
| Snapshots/rollback | — | — | — | ✅ | — | — |
|
|
459
|
-
| Voice generation | — | — | — | — | ✅ | — |
|
|
460
|
-
| **Real-time DSP analysis** | ✅ | — | — | — | ✅ | — |
|
|
461
|
-
| M4L-native install | — | — | — | — | — | ✅ |
|
|
462
|
-
| Multi-LLM support | Any MCP | Claude | Claude | Any MCP | Any MCP | Multi |
|
|
463
|
-
|
|
464
|
-
### Also Notable
|
|
465
|
-
|
|
466
|
-
- **[Simon-Kansara](https://github.com/Simon-Kansara/ableton-live-mcp-server)** (369★) — OSC-based, exhaustive address mapping, inactive since 2025
|
|
467
|
-
- **[jpoindexter](https://github.com/jpoindexter/ableton-mcp)** — 200+ tools, triple interface (MCP + REST + M4L), 13 scales
|
|
468
|
-
- **[cafeTechne](https://github.com/cafeTechne/ableton-11-mcp-for-windows-codex-and-antigravity)** — 220+ tools, Windows/Codex optimized, Live 11 focused
|
|
469
|
-
- **[FabianTinkl](https://github.com/FabianTinkl/AbletonMCP)** — AI-powered chord/melody generation, genre-specific composition
|
|
470
|
-
- **[nozomi-koborinai](https://github.com/nozomi-koborinai/ableton-osc-mcp)** — Only Go implementation, uses Google Genkit
|
|
471
|
-
|
|
472
|
-
### Where LivePilot Fits
|
|
473
|
-
|
|
474
|
-
Every server on this list gives the AI tools to control Ableton. LivePilot is the only one that also gives it **knowledge** (device atlas with 280+ devices, 139 kits, 350+ IRs), **perception** (real-time spectrum, RMS, key detection from the M4L analyzer), and **memory** (persistent technique library that accumulates production decisions across sessions).
|
|
475
|
-
|
|
476
|
-
The practical difference: other servers let the AI set a parameter. LivePilot lets the AI choose the right parameter based on what device is loaded (atlas), verify the result by reading the audio output (analyzer), and remember the technique for next time (memory).
|
|
477
|
-
|
|
478
|
-
AbletonBridge has more raw tools (322 vs 155). Producer Pal has the easiest install (drag a .amxd). The original AbletonMCP has the community (2.3k stars). LivePilot has the deepest integration — tools that execute, knowledge that informs, perception that verifies, and memory that accumulates.
|
|
479
|
-
|
|
480
|
-
---
|
|
481
|
-
|
|
482
|
-
## Architecture
|
|
519
|
+
## Coming ────────────────────────────────────────
|
|
483
520
|
|
|
484
521
|
```
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
│ mcp_server/ │ Input validation, auto-reconnect
|
|
491
|
-
└────────┬────────────┘
|
|
492
|
-
│ JSON over TCP (port 9878)
|
|
493
|
-
▼
|
|
494
|
-
┌─────────────────────┐
|
|
495
|
-
│ Remote Script │ Runs inside Ableton's Python
|
|
496
|
-
│ remote_script/ │ Thread-safe command queue
|
|
497
|
-
│ LivePilot/ │ ControlSurface base class
|
|
498
|
-
└─────────────────────┘
|
|
522
|
+
□ Real-time DSP analysis via LOM meters
|
|
523
|
+
□ M4L bridge expansion — deeper LiveAPI access
|
|
524
|
+
□ Arrangement view — clip placement, tempo automation
|
|
525
|
+
□ Audio clip manipulation — stretch, slice, resample
|
|
526
|
+
□ Plugin parameter mapping — VST/AU deep control
|
|
499
527
|
```
|
|
500
528
|
|
|
501
|
-
All commands execute on Ableton's main thread via `schedule_message` — the same thread that handles the UI. This guarantees consistency with what you see on screen. Single-client TCP by design, because Ableton's Live Object Model is not thread-safe.
|
|
502
|
-
|
|
503
|
-
**Structured errors** with codes (`INDEX_ERROR`, `NOT_FOUND`, `INVALID_PARAM`, `STATE_ERROR`, `TIMEOUT`, `INTERNAL`) so the AI can understand what went wrong and recover.
|
|
504
|
-
|
|
505
|
-
---
|
|
506
|
-
|
|
507
|
-
## Compatibility
|
|
508
|
-
|
|
509
|
-
| | Live 12 (all editions) | Suite only |
|
|
510
|
-
|---|:---:|:---:|
|
|
511
|
-
| Transport, tracks, clips, scenes, mixing | Yes | — |
|
|
512
|
-
| MIDI notes (add, modify, remove, probability) | Yes | — |
|
|
513
|
-
| Device parameters, effects, browser | Yes | — |
|
|
514
|
-
| Arrangement (clips, notes, cue points) | Yes | — |
|
|
515
|
-
| Stock instruments (Drift, Meld, Wavetable) | — | Yes |
|
|
516
|
-
| Max for Live devices | — | Yes |
|
|
517
|
-
| Third-party VST/AU plugins | Yes | — |
|
|
518
|
-
|
|
519
|
-
**Requirements:** Ableton Live 12 · Python 3.9+ · Node.js 18+
|
|
520
|
-
|
|
521
529
|
---
|
|
522
530
|
|
|
523
531
|
## CLI
|
|
@@ -531,28 +539,21 @@ npx livepilot --doctor # Full diagnostic check
|
|
|
531
539
|
npx livepilot --version # Show version
|
|
532
540
|
```
|
|
533
541
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
## Documentation
|
|
537
|
-
|
|
538
|
-
**[Read the full manual](docs/manual/index.md)** — Getting started, tool reference, production workflows, MIDI programming, sound design, mixing, and troubleshooting.
|
|
542
|
+
## Compatibility
|
|
539
543
|
|
|
540
|
-
|
|
544
|
+
Live 12 all editions. Suite required for stock instruments (Drift, Meld, Wavetable) and Max for Live. Python 3.9+. Node.js 18+.
|
|
541
545
|
|
|
542
546
|
## Development
|
|
543
547
|
|
|
544
548
|
```bash
|
|
545
549
|
git clone https://github.com/dreamrec/LivePilot.git
|
|
546
550
|
cd LivePilot
|
|
547
|
-
python3 -m venv .venv
|
|
548
|
-
.venv/bin/pip install -r requirements.txt
|
|
551
|
+
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
|
|
549
552
|
.venv/bin/pytest tests/ -v
|
|
550
553
|
```
|
|
551
554
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
Contributions welcome. Please [open an issue](https://github.com/dreamrec/LivePilot/issues) first to discuss what you'd like to change.
|
|
555
|
-
|
|
556
|
-
## License
|
|
555
|
+
---
|
|
557
556
|
|
|
558
557
|
[MIT](LICENSE) — Pilot Studio
|
|
558
|
+
|
|
559
|
+
Sister projects: [TDPilot](https://github.com/dreamrec/TDPilot) (TouchDesigner) · [ComfyPilot](https://github.com/dreamrec/ComfyPilot) (ComfyUI)
|
|
@@ -82,7 +82,7 @@ def pitch_name(midi: int) -> str:
|
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
def parse_key(key_str: str) -> dict:
|
|
85
|
-
"""Parse key string -> {tonic: 0-11, mode: str}."""
|
|
85
|
+
"""Parse key string -> {tonic: 0-11, tonic_name: str, mode: str}."""
|
|
86
86
|
parts = key_str.strip().split()
|
|
87
87
|
raw_tonic = parts[0]
|
|
88
88
|
mode = parts[1].lower() if len(parts) > 1 else 'major'
|
|
@@ -97,7 +97,7 @@ def parse_key(key_str: str) -> dict:
|
|
|
97
97
|
if tonic_name not in NOTE_NAMES:
|
|
98
98
|
raise ValueError(f"Unknown tonic: {tonic_name} (from '{key_str}')")
|
|
99
99
|
|
|
100
|
-
return {"tonic": NOTE_NAMES.index(tonic_name), "mode": mode}
|
|
100
|
+
return {"tonic": NOTE_NAMES.index(tonic_name), "tonic_name": tonic_name, "mode": mode}
|
|
101
101
|
|
|
102
102
|
|
|
103
103
|
def get_scale_pitches(tonic: int, mode: str) -> list[int]:
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "livepilot",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.3",
|
|
4
4
|
"mcpName": "io.github.dreamrec/livepilot",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Agentic production system for Ableton Live 12 — 155 tools, 16 domains, device atlas, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
|
|
6
6
|
"author": "Pilot Studio",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"type": "commonjs",
|
package/plugin/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "livepilot",
|
|
3
|
-
"version": "1.7.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.7.2",
|
|
4
|
+
"description": "Agentic production system for Ableton Live 12 — 155 tools, 16 domains, device atlas, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
|
|
5
5
|
"author": "Pilot Studio",
|
|
6
6
|
"skills": [
|
|
7
7
|
"skills/livepilot-core",
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: livepilot-core
|
|
3
|
-
description: Core discipline for
|
|
3
|
+
description: Core discipline for LivePilot — agentic production system for Ableton Live 12. 155 tools across 16 domains. Device atlas (280+ devices), M4L analyzer (spectrum/RMS/key detection), technique memory, automation intelligence (16 curve types, 15 recipes), music theory (Krumhansl-Schmuckler, species counterpoint), generative algorithms (Euclidean rhythm, tintinnabuli, phase shift), neo-Riemannian harmony (PRL transforms, Tonnetz), MIDI file I/O. Use whenever working with Ableton Live through MCP tools.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# LivePilot Core — Ableton Live 12
|
|
6
|
+
# LivePilot Core — Ableton Live 12
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Agentic production system for Ableton Live 12. 155 tools across 16 domains, three layers:
|
|
9
9
|
|
|
10
10
|
- **Device Atlas** — A structured knowledge corpus of 280+ instruments, 139 drum kits, and 350+ impulse responses. Consult the atlas before loading any device. It contains real browser URIs, preset names, and sonic descriptions. Never guess a device name — look it up.
|
|
11
11
|
- **M4L Analyzer** — Real-time audio analysis on the master bus (8-band spectrum, RMS/peak, key detection). Use it to verify mixing decisions, detect frequency problems, and find the key before writing harmonic content.
|
|
12
12
|
- **Technique Memory** — Persistent storage for production decisions. Consult `memory_recall` before creative tasks to understand the user's taste. Save techniques when the user likes something. The memory shapes future decisions without constraining them.
|
|
13
13
|
|
|
14
|
-
These layers sit on top of 155 deterministic tools across 16 domains: transport, tracks, clips,
|
|
14
|
+
These layers sit on top of 155 deterministic tools across 16 domains: transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement, memory, analyzer, automation, theory, generative, harmony, and MIDI I/O.
|
|
15
15
|
|
|
16
16
|
## Golden Rules
|
|
17
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# LivePilot v1.7.
|
|
1
|
+
# LivePilot v1.7.2 — Architecture & Tool Reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Agentic production system for Ableton Live 12. 155 tools across 16 domains. Device atlas (280+ devices), spectral perception (M4L analyzer), technique memory, automation intelligence (16 curve types, 15 recipes), music theory (Krumhansl-Schmuckler, species counterpoint), generative algorithms (Euclidean rhythm, tintinnabuli, phase shift, additive process), neo-Riemannian harmony (PRL transforms, Tonnetz), MIDI file I/O.
|
|
4
4
|
|
|
5
5
|
## Architecture
|
|
6
6
|
|