livepilot 1.7.2 → 1.7.4
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,323 @@
|
|
|
7
7
|
╚══════╝╚═╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
[](https://github.com/dreamrec/LivePilot/actions/workflows/ci.yml)
|
|
12
|
-
[](https://github.com/dreamrec/LivePilot/stargazers)
|
|
13
|
-
[](https://www.npmjs.com/package/livepilot)
|
|
10
|
+
An agentic production system for Ableton Live 12.
|
|
14
11
|
|
|
15
|
-
|
|
12
|
+
155 tools. Device atlas. Spectral perception. Technique memory.
|
|
13
|
+
Neo-Riemannian harmony. Euclidean rhythm. Species counterpoint.
|
|
16
14
|
|
|
17
|
-
|
|
15
|
+
It doesn't assist — it produces.
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
- **Perception** — An M4L analyzer that reads the master bus in real-time: 8-band spectrum, RMS/peak metering, pitch tracking, key detection. The AI makes decisions based on what it hears, not just what's configured.
|
|
21
|
-
- **Memory** — A technique library that persists across sessions. The AI remembers how you built that bass sound, what swing you like on hi-hats, which reverb chain worked on vocals. It learns your taste over time.
|
|
17
|
+
<br>
|
|
22
18
|
|
|
23
|
-
|
|
19
|
+
───────────────────────────────────────────────────────────────
|
|
24
20
|
|
|
25
|
-
|
|
21
|
+
## Architecture
|
|
26
22
|
|
|
27
|
-
|
|
23
|
+
```
|
|
24
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
25
|
+
│ │
|
|
26
|
+
│ KNOWLEDGE PERCEPTION MEMORY │
|
|
27
|
+
│ ─────────── ────────── ────── │
|
|
28
|
+
│ │
|
|
29
|
+
│ 280+ devices 8-band FFT recall by │
|
|
30
|
+
│ 139 drum kits RMS / peak mood, genre, │
|
|
31
|
+
│ 350+ impulse pitch tracking texture │
|
|
32
|
+
│ responses key detection │
|
|
33
|
+
│ │
|
|
34
|
+
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
|
|
35
|
+
│ │ Device │─────▶│ M4L │─────▶│ Technique │ │
|
|
36
|
+
│ │ Atlas │ │ Analyzer │ │ Store │ │
|
|
37
|
+
│ └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ │
|
|
38
|
+
│ └───────────────────┼───────────────────┘ │
|
|
39
|
+
│ ▼ │
|
|
40
|
+
│ ┌─────────────────┐ │
|
|
41
|
+
│ │ 155 MCP Tools │ │
|
|
42
|
+
│ │ 16 domains │ │
|
|
43
|
+
│ └────────┬────────┘ │
|
|
44
|
+
│ │ │
|
|
45
|
+
│ Remote Script ──┤── TCP 9878 │
|
|
46
|
+
│ M4L Bridge ─────┤── UDP 9880 / OSC 9881 │
|
|
47
|
+
│ │ │
|
|
48
|
+
│ ┌────────────────┐ │
|
|
49
|
+
│ │ Ableton Live │ │
|
|
50
|
+
│ └────────────────┘ │
|
|
51
|
+
└─────────────────────────────────────────────────────────────┘
|
|
52
|
+
```
|
|
28
53
|
|
|
29
|
-
|
|
54
|
+
The atlas gives the AI knowledge of every device in Ableton's library —
|
|
55
|
+
real names, real URIs, real parameters.
|
|
30
56
|
|
|
31
|
-
|
|
57
|
+
The analyzer gives it ears — spectral data from the master bus
|
|
58
|
+
via a Max for Live device.
|
|
32
59
|
|
|
33
|
-
|
|
60
|
+
The memory gives it history — a searchable library of production decisions
|
|
61
|
+
that persists across sessions.
|
|
34
62
|
|
|
35
|
-
|
|
63
|
+
All three feed into 155 deterministic tools that execute on Ableton's main thread
|
|
64
|
+
through the official Live Object Model API. Everything is reversible with undo.
|
|
36
65
|
|
|
37
|
-
|
|
66
|
+
<br>
|
|
38
67
|
|
|
39
|
-
|
|
68
|
+
───────────────────────────────────────────────────────────────
|
|
40
69
|
|
|
41
|
-
|
|
70
|
+
## Tools
|
|
42
71
|
|
|
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
|
|
72
|
+
<br>
|
|
46
73
|
|
|
47
|
-
|
|
74
|
+
### CORE ──────────────────────────────────────────────────────
|
|
48
75
|
|
|
49
|
-
|
|
76
|
+
The foundation. Session control, MIDI, device management, mixing.
|
|
77
|
+
Every tool maps directly to an LOM call — no abstraction, no guessing.
|
|
50
78
|
|
|
51
|
-
|
|
79
|
+
<br>
|
|
52
80
|
|
|
53
|
-
|
|
81
|
+
| Domain | # | Scope |
|
|
82
|
+
|--------|:-:|-------|
|
|
83
|
+
| Transport | 12 | playback, tempo, time sig, loop, metronome, undo/redo, cue points, diagnostics |
|
|
84
|
+
| Tracks | 14 | create MIDI/audio/return, delete, duplicate, arm, mute, solo, color, routing, monitoring |
|
|
85
|
+
| Clips | 11 | create, delete, duplicate, fire, stop, loop, launch mode, warp mode, quantize |
|
|
86
|
+
| Notes | 8 | add/get/remove/modify MIDI notes, transpose, duplicate, per-note probability |
|
|
87
|
+
| Devices | 12 | load by name or URI, get/set parameters, batch edit, racks, chains, presets, toggle |
|
|
88
|
+
| Scenes | 8 | create, delete, duplicate, fire, name, color, per-scene tempo |
|
|
89
|
+
| Browser | 4 | search library, browse tree, load items, filter by category |
|
|
90
|
+
| Mixing | 11 | volume, pan, sends, routing, meters, return tracks, master, full mix snapshot |
|
|
54
91
|
|
|
55
|
-
|
|
92
|
+
<br>
|
|
56
93
|
|
|
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 |
|
|
94
|
+
### PERCEPTION ────────────────────────────────────────────────
|
|
62
95
|
|
|
63
|
-
The
|
|
96
|
+
The M4L Analyzer sits on the master track. UDP 9880 carries spectral data
|
|
97
|
+
from Max to the server. OSC 9881 sends commands back.
|
|
64
98
|
|
|
65
|
-
|
|
99
|
+
All 135 core tools work without it — the analyzer adds 20 more
|
|
100
|
+
and closes the feedback loop.
|
|
66
101
|
|
|
67
|
-
|
|
102
|
+
<br>
|
|
68
103
|
|
|
69
|
-
|
|
104
|
+
```
|
|
105
|
+
SPECTRAL ─────── 8-band frequency decomposition (sub → air)
|
|
106
|
+
true RMS / peak metering
|
|
107
|
+
Krumhansl-Schmuckler key detection
|
|
70
108
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
109
|
+
DEEP LOM ─────── hidden parameters beyond ControlSurface API
|
|
110
|
+
automation state per parameter
|
|
111
|
+
recursive device tree (6 levels into nested racks)
|
|
112
|
+
human-readable display values as shown in Live's UI
|
|
75
113
|
|
|
76
|
-
|
|
114
|
+
SIMPLER ──────── replace / load samples
|
|
115
|
+
get slice points, crop, reverse
|
|
116
|
+
warp to N beats, get audio file paths
|
|
77
117
|
|
|
78
|
-
|
|
118
|
+
WARP ─────────── get / add / move / remove markers
|
|
119
|
+
tempo manipulation at the sample level
|
|
79
120
|
|
|
80
|
-
|
|
121
|
+
PREVIEW ──────── scrub at beat position
|
|
122
|
+
stop scrub
|
|
123
|
+
```
|
|
81
124
|
|
|
82
|
-
|
|
125
|
+
<br>
|
|
83
126
|
|
|
84
|
-
###
|
|
127
|
+
### INTELLIGENCE ──────────────────────────────────────────────
|
|
85
128
|
|
|
86
|
-
|
|
129
|
+
<br>
|
|
87
130
|
|
|
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. |
|
|
131
|
+
#### Theory ─── 7 tools
|
|
94
132
|
|
|
95
|
-
|
|
133
|
+
Krumhansl-Schmuckler key detection with 7 mode profiles:
|
|
134
|
+
major, minor, dorian, phrygian, lydian, mixolydian, locrian.
|
|
96
135
|
|
|
97
|
-
|
|
136
|
+
Roman numeral analysis via scale-degree chord matching
|
|
137
|
+
on a 1/32 note quantization grid.
|
|
98
138
|
|
|
99
|
-
|
|
139
|
+
Voice leading checks — parallel fifths, parallel octaves,
|
|
140
|
+
voice crossing, unresolved dominants.
|
|
141
|
+
|
|
142
|
+
Species counterpoint generation (1st and 2nd species).
|
|
143
|
+
SATB harmonization with smooth voice leading.
|
|
144
|
+
Diatonic transposition that preserves scale relationships.
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
analyze_harmony suggest_next_chord detect_theory_issues
|
|
148
|
+
identify_scale harmonize_melody generate_countermelody
|
|
149
|
+
transpose_smart
|
|
150
|
+
```
|
|
100
151
|
|
|
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 |
|
|
152
|
+
<br>
|
|
117
153
|
|
|
118
|
-
|
|
154
|
+
#### Harmony ─── 4 tools
|
|
119
155
|
|
|
120
|
-
|
|
156
|
+
Neo-Riemannian PRL transforms on the Tonnetz.
|
|
121
157
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
158
|
+
```
|
|
159
|
+
P flips the third ─────── Cm ↔ C
|
|
160
|
+
L shifts by semitone ──── C ↔ Em
|
|
161
|
+
R shifts by whole tone ── C ↔ Am
|
|
162
|
+
```
|
|
126
163
|
|
|
127
|
-
|
|
164
|
+
All three are involutions — apply twice, return to origin.
|
|
128
165
|
|
|
129
|
-
|
|
166
|
+
BFS through PRL space finds the shortest voice-leading path
|
|
167
|
+
between any two triads. Cm to E major? That's PLP — the hexatonic pole.
|
|
168
|
+
Three steps, each moving one voice by a semitone.
|
|
169
|
+
The Hitchcock chord change.
|
|
130
170
|
|
|
131
|
-
|
|
171
|
+
Chromatic mediants for film-score harmony: chords a major/minor third away
|
|
172
|
+
sharing 0-1 common tones. Maximum color shift, minimal voice movement.
|
|
132
173
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
|
174
|
+
```
|
|
175
|
+
navigate_tonnetz find_voice_leading_path
|
|
176
|
+
classify_progression suggest_chromatic_mediants
|
|
177
|
+
```
|
|
141
178
|
|
|
142
|
-
|
|
179
|
+
<br>
|
|
143
180
|
|
|
144
|
-
|
|
181
|
+
#### Generative ─── 5 tools
|
|
145
182
|
|
|
146
|
-
|
|
183
|
+
**Euclidean Rhythm** — Bjorklund distributes N pulses across M steps.
|
|
184
|
+
Bresenham's line algorithm applied to rhythm.
|
|
147
185
|
|
|
148
|
-
```
|
|
149
|
-
|
|
186
|
+
```
|
|
187
|
+
E(3,8) = tresillo ×··×··×·
|
|
188
|
+
E(5,8) = cinquillo ×·××·××·
|
|
189
|
+
E(7,16) = Brazilian necklace ×·×·×××·×·×·×××·
|
|
150
190
|
```
|
|
151
191
|
|
|
152
|
-
|
|
192
|
+
Layer multiple patterns at different pitches for polyrhythmic textures.
|
|
153
193
|
|
|
154
|
-
|
|
194
|
+
**Tintinnabuli** (Arvo Pärt) — for each melody note, find the nearest tone
|
|
195
|
+
of a specified triad: above, below, or nearest. The T-voice gravitates toward
|
|
196
|
+
the triad while the M-voice moves stepwise. Two voices, one rule, infinite music.
|
|
155
197
|
|
|
156
|
-
|
|
198
|
+
**Phase Shifting** (Steve Reich) — identical voices with accumulating timing drift.
|
|
199
|
+
Voice 0 plays straight. Each subsequent voice shifts by N beats per repetition.
|
|
200
|
+
They start in unison, gradually separate, and eventually realign.
|
|
157
201
|
|
|
158
|
-
|
|
159
|
-
|
|
202
|
+
**Additive Process** (Philip Glass) — melody unfolds note by note.
|
|
203
|
+
Forward: 1, then 1-2, then 1-2-3.
|
|
204
|
+
Backward: full melody, then remove from front.
|
|
205
|
+
Both: forward then backward.
|
|
206
|
+
The structure *is* the composition.
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
generate_euclidean_rhythm layer_euclidean_rhythms
|
|
210
|
+
generate_tintinnabuli generate_phase_shift
|
|
211
|
+
generate_additive_process
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
<br>
|
|
215
|
+
|
|
216
|
+
#### Automation ─── 8 tools
|
|
217
|
+
|
|
218
|
+
16 curve types in 4 categories:
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
BASIC ──────────── linear · exponential · logarithmic · s_curve
|
|
222
|
+
sine · sawtooth · spike · square · steps
|
|
223
|
+
|
|
224
|
+
ORGANIC ─────────── perlin · brownian · spring
|
|
225
|
+
|
|
226
|
+
SHAPE ──────────── bezier · easing
|
|
227
|
+
(bounce, elastic, back, quad, cubic,
|
|
228
|
+
quart, quint, expo)
|
|
229
|
+
|
|
230
|
+
GENERATIVE ─────── euclidean · stochastic
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
15 built-in recipes:
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
filter_sweep_up filter_sweep_down dub_throw
|
|
237
|
+
tape_stop build_rise sidechain_pump
|
|
238
|
+
fade_in fade_out tremolo
|
|
239
|
+
auto_pan stutter breathing
|
|
240
|
+
washout vinyl_crackle stereo_narrow
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Perception-action loop: `analyze_for_automation` reads the spectrum
|
|
244
|
+
and device chain, suggests what to automate, and maps each suggestion
|
|
245
|
+
to a recipe. The AI doesn't write automation blind — it knows what
|
|
246
|
+
to automate based on what it hears.
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
get_clip_automation set_clip_automation clear_clip_automation
|
|
250
|
+
apply_automation_shape apply_automation_recipe get_automation_recipes
|
|
251
|
+
generate_automation_curve analyze_for_automation
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
<br>
|
|
255
|
+
|
|
256
|
+
### MEMORY + I/O ──────────────────────────────────────────────
|
|
257
|
+
|
|
258
|
+
<br>
|
|
259
|
+
|
|
260
|
+
#### Memory ─── 8 tools
|
|
261
|
+
|
|
262
|
+
Persistent technique library across sessions.
|
|
263
|
+
|
|
264
|
+
Five types: `beat_pattern` · `device_chain` · `mix_template` · `preference` · `browser_pin`
|
|
265
|
+
|
|
266
|
+
Each stores:
|
|
267
|
+
- **Identity** — name, tags, timestamps
|
|
268
|
+
- **Qualities** — mood, genre, texture, production notes
|
|
269
|
+
- **Payload** — raw MIDI, device params, tempo, URIs
|
|
270
|
+
|
|
271
|
+
Recall by text query matching mood, genre, texture — not just names.
|
|
272
|
+
Favorite, rate, replay.
|
|
273
|
+
|
|
274
|
+
```
|
|
275
|
+
memory_learn memory_recall memory_list memory_get
|
|
276
|
+
memory_update memory_delete memory_favorite memory_replay
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
<br>
|
|
280
|
+
|
|
281
|
+
#### MIDI I/O ─── 4 tools
|
|
282
|
+
|
|
283
|
+
Export session clips to standard .mid files.
|
|
284
|
+
Import .mid into session clips — auto-creates the clip, tempo-aware timing.
|
|
285
|
+
|
|
286
|
+
Offline analysis without Ableton: note count, duration, tempo,
|
|
287
|
+
pitch range, velocity stats, density curve, key estimate.
|
|
288
|
+
|
|
289
|
+
Piano roll extraction: 2D velocity matrix at configurable resolution
|
|
290
|
+
(default 1/32 note).
|
|
291
|
+
|
|
292
|
+
Dependencies lazy-loaded — graceful error if missing.
|
|
293
|
+
|
|
294
|
+
```
|
|
295
|
+
export_clip_midi import_midi_to_clip
|
|
296
|
+
analyze_midi_file extract_piano_roll
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
<br>
|
|
300
|
+
|
|
301
|
+
───────────────────────────────────────────────────────────────
|
|
302
|
+
|
|
303
|
+
## Install
|
|
304
|
+
|
|
305
|
+
<br>
|
|
306
|
+
|
|
307
|
+
### 1. Remote Script
|
|
160
308
|
|
|
161
309
|
```bash
|
|
162
|
-
|
|
310
|
+
npx livepilot --install
|
|
163
311
|
```
|
|
164
312
|
|
|
165
|
-
|
|
313
|
+
Restart Ableton → Preferences → Link, Tempo & MIDI → Control Surface → **LivePilot**
|
|
166
314
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
315
|
+
<br>
|
|
316
|
+
|
|
317
|
+
### 2. MCP Client
|
|
318
|
+
|
|
319
|
+
<details open>
|
|
320
|
+
<summary><strong>Claude Code</strong></summary>
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
claude mcp add LivePilot -- npx livepilot
|
|
176
324
|
```
|
|
177
325
|
|
|
178
|
-
|
|
326
|
+
Plugin (adds skills, slash commands, producer agent):
|
|
179
327
|
|
|
180
328
|
```bash
|
|
181
329
|
claude plugin add github:dreamrec/LivePilot/plugin
|
|
@@ -186,34 +334,30 @@ claude plugin add github:dreamrec/LivePilot/plugin
|
|
|
186
334
|
<details>
|
|
187
335
|
<summary><strong>Claude Desktop (macOS)</strong></summary>
|
|
188
336
|
|
|
189
|
-
|
|
337
|
+
`~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
190
338
|
|
|
191
339
|
```json
|
|
192
340
|
{
|
|
193
341
|
"mcpServers": {
|
|
194
342
|
"LivePilot": {
|
|
195
343
|
"command": "npx",
|
|
196
|
-
"args": ["
|
|
344
|
+
"args": ["livepilot"]
|
|
197
345
|
}
|
|
198
346
|
}
|
|
199
347
|
}
|
|
200
348
|
```
|
|
201
349
|
|
|
202
|
-
Restart Claude Desktop after saving.
|
|
203
|
-
|
|
204
350
|
</details>
|
|
205
351
|
|
|
206
352
|
<details>
|
|
207
353
|
<summary><strong>Claude Desktop (Windows)</strong></summary>
|
|
208
354
|
|
|
209
|
-
On Windows, `npx` can cause EBUSY file-locking errors. Install globally instead:
|
|
210
|
-
|
|
211
355
|
```cmd
|
|
212
|
-
npm install -g
|
|
356
|
+
npm install -g livepilot
|
|
213
357
|
livepilot --install
|
|
214
358
|
```
|
|
215
359
|
|
|
216
|
-
|
|
360
|
+
`%APPDATA%\Claude\claude_desktop_config.json`:
|
|
217
361
|
|
|
218
362
|
```json
|
|
219
363
|
{
|
|
@@ -225,26 +369,19 @@ Add to `%APPDATA%\Claude\claude_desktop_config.json`:
|
|
|
225
369
|
}
|
|
226
370
|
```
|
|
227
371
|
|
|
228
|
-
Restart Claude Desktop after saving.
|
|
229
|
-
|
|
230
372
|
</details>
|
|
231
373
|
|
|
232
374
|
<details>
|
|
233
375
|
<summary><strong>Cursor</strong></summary>
|
|
234
376
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
- **Name:** LivePilot
|
|
238
|
-
- **Command:** `npx -y github:dreamrec/LivePilot`
|
|
239
|
-
|
|
240
|
-
Or add to `.cursor/mcp.json`:
|
|
377
|
+
`.cursor/mcp.json`:
|
|
241
378
|
|
|
242
379
|
```json
|
|
243
380
|
{
|
|
244
381
|
"mcpServers": {
|
|
245
382
|
"LivePilot": {
|
|
246
383
|
"command": "npx",
|
|
247
|
-
"args": ["
|
|
384
|
+
"args": ["livepilot"]
|
|
248
385
|
}
|
|
249
386
|
}
|
|
250
387
|
}
|
|
@@ -253,34 +390,29 @@ Or add to `.cursor/mcp.json`:
|
|
|
253
390
|
</details>
|
|
254
391
|
|
|
255
392
|
<details>
|
|
256
|
-
<summary><strong>VS Code
|
|
393
|
+
<summary><strong>VS Code / Windsurf</strong></summary>
|
|
257
394
|
|
|
258
|
-
|
|
395
|
+
VS Code — `.vscode/mcp.json`:
|
|
259
396
|
|
|
260
397
|
```json
|
|
261
398
|
{
|
|
262
399
|
"servers": {
|
|
263
400
|
"LivePilot": {
|
|
264
401
|
"command": "npx",
|
|
265
|
-
"args": ["
|
|
402
|
+
"args": ["livepilot"]
|
|
266
403
|
}
|
|
267
404
|
}
|
|
268
405
|
}
|
|
269
406
|
```
|
|
270
407
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
<details>
|
|
274
|
-
<summary><strong>Windsurf</strong></summary>
|
|
275
|
-
|
|
276
|
-
Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
408
|
+
Windsurf — `~/.codeium/windsurf/mcp_config.json`:
|
|
277
409
|
|
|
278
410
|
```json
|
|
279
411
|
{
|
|
280
412
|
"mcpServers": {
|
|
281
413
|
"LivePilot": {
|
|
282
414
|
"command": "npx",
|
|
283
|
-
"args": ["
|
|
415
|
+
"args": ["livepilot"]
|
|
284
416
|
}
|
|
285
417
|
}
|
|
286
418
|
}
|
|
@@ -288,237 +420,349 @@ Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
|
288
420
|
|
|
289
421
|
</details>
|
|
290
422
|
|
|
291
|
-
|
|
423
|
+
<br>
|
|
424
|
+
|
|
425
|
+
### 3. M4L Analyzer (optional)
|
|
426
|
+
|
|
427
|
+
Drag `LivePilot_Analyzer.amxd` onto the master track.
|
|
428
|
+
|
|
429
|
+
Unlocks 20 additional tools: spectral analysis, key detection,
|
|
430
|
+
sample manipulation, deep device introspection.
|
|
431
|
+
|
|
432
|
+
All core tools work without it.
|
|
433
|
+
|
|
434
|
+
<br>
|
|
435
|
+
|
|
436
|
+
### 4. Verify
|
|
292
437
|
|
|
293
438
|
```bash
|
|
294
|
-
npx
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## 155 Tools Across 16 Domains
|
|
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 |
|
|
439
|
+
npx livepilot --status
|
|
440
|
+
```
|
|
319
441
|
|
|
320
|
-
<
|
|
321
|
-
<summary><strong>Full tool list</strong></summary>
|
|
442
|
+
<br>
|
|
322
443
|
|
|
323
|
-
|
|
324
|
-
`get_session_info` · `set_tempo` · `set_time_signature` · `start_playback` · `stop_playback` · `continue_playback` · `toggle_metronome` · `set_session_loop` · `undo` · `redo` · `get_recent_actions` · `get_session_diagnostics`
|
|
444
|
+
───────────────────────────────────────────────────────────────
|
|
325
445
|
|
|
326
|
-
|
|
327
|
-
`get_track_info` · `create_midi_track` · `create_audio_track` · `create_return_track` · `delete_track` · `duplicate_track` · `set_track_name` · `set_track_color` · `set_track_mute` · `set_track_solo` · `set_track_arm` · `stop_track_clips` · `set_group_fold` · `set_track_input_monitoring`
|
|
446
|
+
## Plugin
|
|
328
447
|
|
|
329
|
-
|
|
330
|
-
|
|
448
|
+
```bash
|
|
449
|
+
claude plugin add github:dreamrec/LivePilot/plugin
|
|
450
|
+
```
|
|
331
451
|
|
|
332
|
-
|
|
333
|
-
`add_notes` · `get_notes` · `remove_notes` · `remove_notes_by_id` · `modify_notes` · `duplicate_notes` · `transpose_notes` · `quantize_clip`
|
|
452
|
+
<br>
|
|
334
453
|
|
|
335
|
-
|
|
336
|
-
|
|
454
|
+
| Command | What |
|
|
455
|
+
|---------|------|
|
|
456
|
+
| `/session` | Full session overview with diagnostics |
|
|
457
|
+
| `/beat` | Guided beat creation |
|
|
458
|
+
| `/mix` | Mixing assistant |
|
|
459
|
+
| `/sounddesign` | Sound design workflow |
|
|
460
|
+
| `/memory` | Technique library management |
|
|
337
461
|
|
|
338
|
-
|
|
339
|
-
`get_scenes_info` · `create_scene` · `delete_scene` · `duplicate_scene` · `fire_scene` · `set_scene_name` · `set_scene_color` · `set_scene_tempo`
|
|
462
|
+
<br>
|
|
340
463
|
|
|
341
|
-
|
|
342
|
-
|
|
464
|
+
**Producer Agent** — autonomous multi-step production.
|
|
465
|
+
Consults memory for style context, searches the atlas for instruments,
|
|
466
|
+
creates tracks, programs MIDI, chains effects, reads the spectrum to verify.
|
|
467
|
+
Ships with a reference corpus (drum patterns, chord voicings,
|
|
468
|
+
sound design recipes, mixing templates).
|
|
343
469
|
|
|
344
|
-
|
|
345
|
-
|
|
470
|
+
**Core Skill** — operational discipline connecting all three layers.
|
|
471
|
+
Consult atlas before loading. Read analyzer after mixing.
|
|
472
|
+
Check memory before creative decisions. Verify every mutation.
|
|
346
473
|
|
|
347
|
-
|
|
348
|
-
`get_arrangement_clips` · `create_arrangement_clip` · `add_arrangement_notes` · `get_arrangement_notes` · `remove_arrangement_notes` · `remove_arrangement_notes_by_id` · `modify_arrangement_notes` · `duplicate_arrangement_notes` · `transpose_arrangement_notes` · `set_arrangement_clip_name` · `set_arrangement_automation` · `back_to_arranger` · `jump_to_time` · `capture_midi` · `start_recording` · `stop_recording` · `get_cue_points` · `jump_to_cue` · `toggle_cue_point`
|
|
474
|
+
<br>
|
|
349
475
|
|
|
350
|
-
|
|
351
|
-
`get_clip_automation` · `set_clip_automation` · `clear_clip_automation` · `apply_automation_shape` · `apply_automation_recipe` · `get_automation_recipes` · `generate_automation_curve` · `analyze_for_automation`
|
|
476
|
+
───────────────────────────────────────────────────────────────
|
|
352
477
|
|
|
353
|
-
|
|
354
|
-
`memory_learn` · `memory_recall` · `memory_get` · `memory_replay` · `memory_list` · `memory_favorite` · `memory_update` · `memory_delete`
|
|
478
|
+
## Full Tool List
|
|
355
479
|
|
|
356
|
-
|
|
357
|
-
`get_master_spectrum` · `get_master_rms` · `get_detected_key` · `get_hidden_parameters` · `get_automation_state` · `walk_device_tree` · `get_clip_file_path` · `replace_simpler_sample` · `load_sample_to_simpler` · `get_simpler_slices` · `crop_simpler` · `reverse_simpler` · `warp_simpler` · `get_warp_markers` · `add_warp_marker` · `move_warp_marker` · `remove_warp_marker` · `scrub_clip` · `stop_scrub` · `get_display_values`
|
|
480
|
+
155 tools across 16 domains.
|
|
358
481
|
|
|
359
|
-
|
|
360
|
-
`analyze_harmony` · `suggest_next_chord` · `detect_theory_issues` · `identify_scale` · `harmonize_melody` · `generate_countermelody` · `transpose_smart`
|
|
482
|
+
<br>
|
|
361
483
|
|
|
362
|
-
###
|
|
363
|
-
`generate_euclidean_rhythm` · `layer_euclidean_rhythms` · `generate_tintinnabuli` · `generate_phase_shift` · `generate_additive_process`
|
|
484
|
+
### Transport (12)
|
|
364
485
|
|
|
365
|
-
|
|
366
|
-
|
|
486
|
+
| Tool | Description |
|
|
487
|
+
|------|-------------|
|
|
488
|
+
| `get_session_info` | Session state: tempo, tracks, scenes, transport |
|
|
489
|
+
| `set_tempo` | Set tempo (20-999 BPM) |
|
|
490
|
+
| `set_time_signature` | Set time signature |
|
|
491
|
+
| `start_playback` | Start from beginning |
|
|
492
|
+
| `stop_playback` | Stop |
|
|
493
|
+
| `continue_playback` | Resume from current position |
|
|
494
|
+
| `toggle_metronome` | Enable/disable click |
|
|
495
|
+
| `set_session_loop` | Set loop start, length, on/off |
|
|
496
|
+
| `undo` | Undo last action |
|
|
497
|
+
| `redo` | Redo |
|
|
498
|
+
| `get_recent_actions` | Recent undo history |
|
|
499
|
+
| `get_session_diagnostics` | Analyze session for issues |
|
|
500
|
+
|
|
501
|
+
<br>
|
|
367
502
|
|
|
368
|
-
###
|
|
369
|
-
`export_clip_midi` · `import_midi_to_clip` · `analyze_midi_file` · `extract_piano_roll`
|
|
503
|
+
### Tracks (14)
|
|
370
504
|
|
|
371
|
-
|
|
505
|
+
| Tool | Description |
|
|
506
|
+
|------|-------------|
|
|
507
|
+
| `get_track_info` | Track details: clips, devices, mixer |
|
|
508
|
+
| `create_midi_track` | New MIDI track |
|
|
509
|
+
| `create_audio_track` | New audio track |
|
|
510
|
+
| `create_return_track` | New return track |
|
|
511
|
+
| `delete_track` | Delete a track |
|
|
512
|
+
| `duplicate_track` | Copy track with all content |
|
|
513
|
+
| `set_track_name` | Rename |
|
|
514
|
+
| `set_track_color` | Set color (0-69) |
|
|
515
|
+
| `set_track_mute` | Mute on/off |
|
|
516
|
+
| `set_track_solo` | Solo on/off |
|
|
517
|
+
| `set_track_arm` | Arm for recording |
|
|
518
|
+
| `stop_track_clips` | Stop all clips on track |
|
|
519
|
+
| `set_group_fold` | Fold/unfold group track |
|
|
520
|
+
| `set_track_input_monitoring` | Set monitoring mode |
|
|
521
|
+
|
|
522
|
+
<br>
|
|
523
|
+
|
|
524
|
+
### Clips (11)
|
|
372
525
|
|
|
373
|
-
|
|
526
|
+
| Tool | Description |
|
|
527
|
+
|------|-------------|
|
|
528
|
+
| `get_clip_info` | Clip details: length, loop, launch |
|
|
529
|
+
| `create_clip` | New empty MIDI clip |
|
|
530
|
+
| `delete_clip` | Delete a clip |
|
|
531
|
+
| `duplicate_clip` | Copy to another slot |
|
|
532
|
+
| `fire_clip` | Launch a clip |
|
|
533
|
+
| `stop_clip` | Stop a clip |
|
|
534
|
+
| `set_clip_name` | Rename |
|
|
535
|
+
| `set_clip_color` | Set color |
|
|
536
|
+
| `set_clip_loop` | Loop start, end, on/off |
|
|
537
|
+
| `set_clip_launch` | Launch mode and quantization |
|
|
538
|
+
| `set_clip_warp_mode` | Set warp algorithm |
|
|
539
|
+
|
|
540
|
+
<br>
|
|
374
541
|
|
|
375
|
-
|
|
542
|
+
### Notes (8)
|
|
376
543
|
|
|
377
|
-
|
|
544
|
+
| Tool | Description |
|
|
545
|
+
|------|-------------|
|
|
546
|
+
| `add_notes` | Add MIDI notes with velocity, probability |
|
|
547
|
+
| `get_notes` | Read notes from a region |
|
|
548
|
+
| `remove_notes` | Remove notes in a region |
|
|
549
|
+
| `remove_notes_by_id` | Remove specific notes by ID |
|
|
550
|
+
| `modify_notes` | Change pitch, time, velocity, probability |
|
|
551
|
+
| `duplicate_notes` | Copy notes to new position |
|
|
552
|
+
| `transpose_notes` | Shift pitch by semitones |
|
|
553
|
+
| `quantize_clip` | Quantize to grid |
|
|
378
554
|
|
|
379
|
-
|
|
380
|
-
claude plugin add github:dreamrec/LivePilot/plugin
|
|
381
|
-
```
|
|
555
|
+
<br>
|
|
382
556
|
|
|
383
|
-
###
|
|
557
|
+
### Devices (12)
|
|
384
558
|
|
|
385
|
-
|
|
|
386
|
-
|
|
387
|
-
|
|
|
388
|
-
|
|
|
389
|
-
|
|
|
390
|
-
|
|
|
391
|
-
|
|
|
559
|
+
| Tool | Description |
|
|
560
|
+
|------|-------------|
|
|
561
|
+
| `get_device_info` | Device name, class, parameters |
|
|
562
|
+
| `get_device_parameters` | All params with names, values, ranges |
|
|
563
|
+
| `set_device_parameter` | Set param by name or index |
|
|
564
|
+
| `batch_set_parameters` | Set multiple params in one call |
|
|
565
|
+
| `toggle_device` | Enable/disable |
|
|
566
|
+
| `delete_device` | Remove from chain |
|
|
567
|
+
| `load_device_by_uri` | Load by browser URI |
|
|
568
|
+
| `find_and_load_device` | Search and load by name |
|
|
569
|
+
| `get_rack_chains` | Get chains in a rack |
|
|
570
|
+
| `set_simpler_playback_mode` | Classic/1-shot/slice |
|
|
571
|
+
| `set_chain_volume` | Set chain volume in rack |
|
|
572
|
+
| `get_device_presets` | List available presets |
|
|
573
|
+
|
|
574
|
+
<br>
|
|
392
575
|
|
|
393
|
-
###
|
|
576
|
+
### Scenes (8)
|
|
394
577
|
|
|
395
|
-
|
|
578
|
+
| Tool | Description |
|
|
579
|
+
|------|-------------|
|
|
580
|
+
| `get_scenes_info` | All scenes: name, tempo, color |
|
|
581
|
+
| `create_scene` | New scene |
|
|
582
|
+
| `delete_scene` | Delete a scene |
|
|
583
|
+
| `duplicate_scene` | Copy scene with all clips |
|
|
584
|
+
| `fire_scene` | Launch all clips in scene |
|
|
585
|
+
| `set_scene_name` | Rename |
|
|
586
|
+
| `set_scene_color` | Set color |
|
|
587
|
+
| `set_scene_tempo` | Per-scene tempo |
|
|
396
588
|
|
|
397
|
-
|
|
589
|
+
<br>
|
|
398
590
|
|
|
399
|
-
###
|
|
591
|
+
### Mixing (11)
|
|
400
592
|
|
|
401
|
-
|
|
593
|
+
| Tool | Description |
|
|
594
|
+
|------|-------------|
|
|
595
|
+
| `set_track_volume` | Volume (0.0-1.0) |
|
|
596
|
+
| `set_track_pan` | Pan (-1.0 to 1.0) |
|
|
597
|
+
| `set_track_send` | Send level (0.0-1.0) |
|
|
598
|
+
| `get_return_tracks` | Return track info |
|
|
599
|
+
| `get_master_track` | Master track info |
|
|
600
|
+
| `set_master_volume` | Master volume |
|
|
601
|
+
| `get_track_routing` | Input/output routing |
|
|
602
|
+
| `set_track_routing` | Set routing by display name |
|
|
603
|
+
| `get_track_meters` | Live meter levels |
|
|
604
|
+
| `get_master_meters` | Master meter levels |
|
|
605
|
+
| `get_mix_snapshot` | Full mix state in one call |
|
|
606
|
+
|
|
607
|
+
<br>
|
|
402
608
|
|
|
403
|
-
|
|
609
|
+
### Browser (4)
|
|
404
610
|
|
|
405
|
-
|
|
611
|
+
| Tool | Description |
|
|
612
|
+
|------|-------------|
|
|
613
|
+
| `get_browser_tree` | Browse category tree |
|
|
614
|
+
| `get_browser_items` | List items in a category |
|
|
615
|
+
| `search_browser` | Search by name with filters |
|
|
616
|
+
| `load_browser_item` | Load item by URI |
|
|
406
617
|
|
|
407
|
-
|
|
618
|
+
<br>
|
|
408
619
|
|
|
409
|
-
|
|
620
|
+
### Arrangement (19)
|
|
410
621
|
|
|
411
|
-
|
|
622
|
+
| Tool | Description |
|
|
623
|
+
|------|-------------|
|
|
624
|
+
| `get_arrangement_clips` | List arrangement clips |
|
|
625
|
+
| `create_arrangement_clip` | New clip at timeline position |
|
|
626
|
+
| `add_arrangement_notes` | Add MIDI notes to arrangement clip |
|
|
627
|
+
| `get_arrangement_notes` | Read arrangement notes |
|
|
628
|
+
| `remove_arrangement_notes` | Remove notes in region |
|
|
629
|
+
| `remove_arrangement_notes_by_id` | Remove by ID |
|
|
630
|
+
| `modify_arrangement_notes` | Modify arrangement notes |
|
|
631
|
+
| `duplicate_arrangement_notes` | Copy notes |
|
|
632
|
+
| `transpose_arrangement_notes` | Shift pitch |
|
|
633
|
+
| `set_arrangement_clip_name` | Rename arrangement clip |
|
|
634
|
+
| `set_arrangement_automation` | Write arrangement automation |
|
|
635
|
+
| `back_to_arranger` | Switch to arrangement view |
|
|
636
|
+
| `jump_to_time` | Seek to beat position |
|
|
637
|
+
| `capture_midi` | Capture played MIDI |
|
|
638
|
+
| `start_recording` | Start recording |
|
|
639
|
+
| `stop_recording` | Stop recording |
|
|
640
|
+
| `get_cue_points` | List cue points |
|
|
641
|
+
| `jump_to_cue` | Jump to cue point |
|
|
642
|
+
| `toggle_cue_point` | Add/remove cue point |
|
|
643
|
+
|
|
644
|
+
<br>
|
|
412
645
|
|
|
413
|
-
|
|
646
|
+
### Automation (8)
|
|
414
647
|
|
|
415
|
-
|
|
648
|
+
| Tool | Description |
|
|
649
|
+
|------|-------------|
|
|
650
|
+
| `get_clip_automation` | List envelopes on a clip |
|
|
651
|
+
| `set_clip_automation` | Write automation points |
|
|
652
|
+
| `clear_clip_automation` | Clear envelopes |
|
|
653
|
+
| `apply_automation_shape` | Generate + write curve in one call |
|
|
654
|
+
| `apply_automation_recipe` | Apply named recipe |
|
|
655
|
+
| `get_automation_recipes` | List all 15 recipes |
|
|
656
|
+
| `generate_automation_curve` | Preview curve without writing |
|
|
657
|
+
| `analyze_for_automation` | Spectral analysis + suggestions |
|
|
416
658
|
|
|
417
|
-
|
|
659
|
+
<br>
|
|
418
660
|
|
|
419
|
-
|
|
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 |
|
|
661
|
+
### Memory (8)
|
|
428
662
|
|
|
429
|
-
|
|
663
|
+
| Tool | Description |
|
|
664
|
+
|------|-------------|
|
|
665
|
+
| `memory_learn` | Save a technique |
|
|
666
|
+
| `memory_recall` | Search by text/mood/genre |
|
|
667
|
+
| `memory_list` | Browse library |
|
|
668
|
+
| `memory_get` | Get full technique with payload |
|
|
669
|
+
| `memory_update` | Update a technique |
|
|
670
|
+
| `memory_delete` | Delete a technique |
|
|
671
|
+
| `memory_favorite` | Toggle favorite |
|
|
672
|
+
| `memory_replay` | Replay saved technique |
|
|
673
|
+
|
|
674
|
+
<br>
|
|
675
|
+
|
|
676
|
+
### Analyzer (20) `[M4L]`
|
|
677
|
+
|
|
678
|
+
| Tool | Description |
|
|
679
|
+
|------|-------------|
|
|
680
|
+
| `get_master_spectrum` | 8-band frequency analysis |
|
|
681
|
+
| `get_master_rms` | RMS and peak levels |
|
|
682
|
+
| `get_detected_key` | Krumhansl-Schmuckler key detection |
|
|
683
|
+
| `get_hidden_parameters` | All params including hidden ones |
|
|
684
|
+
| `get_automation_state` | Automation state per parameter |
|
|
685
|
+
| `walk_device_tree` | Recursive device chain tree (6 levels) |
|
|
686
|
+
| `get_display_values` | Human-readable param values |
|
|
687
|
+
| `get_clip_file_path` | Audio file path on disk |
|
|
688
|
+
| `replace_simpler_sample` | Load audio into Simpler |
|
|
689
|
+
| `load_sample_to_simpler` | Bootstrap Simpler + load sample |
|
|
690
|
+
| `get_simpler_slices` | Slice point positions |
|
|
691
|
+
| `crop_simpler` | Crop to active region |
|
|
692
|
+
| `reverse_simpler` | Reverse sample |
|
|
693
|
+
| `warp_simpler` | Time-stretch to N beats |
|
|
694
|
+
| `get_warp_markers` | Get all warp markers |
|
|
695
|
+
| `add_warp_marker` | Add warp marker |
|
|
696
|
+
| `move_warp_marker` | Move warp marker |
|
|
697
|
+
| `remove_warp_marker` | Remove warp marker |
|
|
698
|
+
| `scrub_clip` | Preview at beat position |
|
|
699
|
+
| `stop_scrub` | Stop preview |
|
|
700
|
+
|
|
701
|
+
<br>
|
|
430
702
|
|
|
431
|
-
|
|
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 |
|
|
703
|
+
### Theory (7)
|
|
463
704
|
|
|
464
|
-
|
|
705
|
+
| Tool | Description |
|
|
706
|
+
|------|-------------|
|
|
707
|
+
| `analyze_harmony` | Chord-by-chord Roman numeral analysis |
|
|
708
|
+
| `suggest_next_chord` | Theory-valid continuations with style presets |
|
|
709
|
+
| `detect_theory_issues` | Parallel 5ths, out-of-key, voice crossing |
|
|
710
|
+
| `identify_scale` | Key/mode detection with confidence ranking |
|
|
711
|
+
| `harmonize_melody` | 2 or 4-voice SATB harmonization |
|
|
712
|
+
| `generate_countermelody` | Species counterpoint (1st/2nd) |
|
|
713
|
+
| `transpose_smart` | Diatonic or chromatic transposition |
|
|
465
714
|
|
|
466
|
-
|
|
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
|
|
715
|
+
<br>
|
|
471
716
|
|
|
472
|
-
###
|
|
717
|
+
### Generative (5)
|
|
473
718
|
|
|
474
|
-
|
|
719
|
+
| Tool | Description |
|
|
720
|
+
|------|-------------|
|
|
721
|
+
| `generate_euclidean_rhythm` | Bjorklund algorithm, identifies named rhythms |
|
|
722
|
+
| `layer_euclidean_rhythms` | Stack patterns for polyrhythmic textures |
|
|
723
|
+
| `generate_tintinnabuli` | Arvo Pärt — triad voice from melody |
|
|
724
|
+
| `generate_phase_shift` | Steve Reich — drifting canon |
|
|
725
|
+
| `generate_additive_process` | Philip Glass — expanding/contracting melody |
|
|
475
726
|
|
|
476
|
-
|
|
727
|
+
<br>
|
|
477
728
|
|
|
478
|
-
|
|
729
|
+
### Harmony (4)
|
|
479
730
|
|
|
480
|
-
|
|
731
|
+
| Tool | Description |
|
|
732
|
+
|------|-------------|
|
|
733
|
+
| `navigate_tonnetz` | PRL neighbors at depth N |
|
|
734
|
+
| `find_voice_leading_path` | Shortest path between two chords |
|
|
735
|
+
| `classify_progression` | Identify neo-Riemannian pattern |
|
|
736
|
+
| `suggest_chromatic_mediants` | All chromatic mediant relations |
|
|
481
737
|
|
|
482
|
-
|
|
738
|
+
<br>
|
|
483
739
|
|
|
484
|
-
|
|
485
|
-
AI Client
|
|
486
|
-
│ MCP Protocol (stdio)
|
|
487
|
-
▼
|
|
488
|
-
┌─────────────────────┐
|
|
489
|
-
│ MCP Server │ Python (FastMCP)
|
|
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
|
-
└─────────────────────┘
|
|
499
|
-
```
|
|
740
|
+
### MIDI I/O (4)
|
|
500
741
|
|
|
501
|
-
|
|
742
|
+
| Tool | Description |
|
|
743
|
+
|------|-------------|
|
|
744
|
+
| `export_clip_midi` | Export clip to .mid file |
|
|
745
|
+
| `import_midi_to_clip` | Import .mid into session clip |
|
|
746
|
+
| `analyze_midi_file` | Offline MIDI analysis |
|
|
747
|
+
| `extract_piano_roll` | 2D velocity matrix extraction |
|
|
502
748
|
|
|
503
|
-
|
|
749
|
+
<br>
|
|
504
750
|
|
|
505
|
-
|
|
751
|
+
───────────────────────────────────────────────────────────────
|
|
506
752
|
|
|
507
|
-
##
|
|
753
|
+
## Coming
|
|
508
754
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
| Max for Live devices | — | Yes |
|
|
517
|
-
| Third-party VST/AU plugins | Yes | — |
|
|
755
|
+
```
|
|
756
|
+
□ Real-time DSP analysis via LOM meters
|
|
757
|
+
□ M4L bridge expansion — deeper LiveAPI access
|
|
758
|
+
□ Arrangement view — clip placement, tempo automation
|
|
759
|
+
□ Audio clip manipulation — stretch, slice, resample
|
|
760
|
+
□ Plugin parameter mapping — VST/AU deep control
|
|
761
|
+
```
|
|
518
762
|
|
|
519
|
-
|
|
763
|
+
<br>
|
|
520
764
|
|
|
521
|
-
|
|
765
|
+
───────────────────────────────────────────────────────────────
|
|
522
766
|
|
|
523
767
|
## CLI
|
|
524
768
|
|
|
@@ -531,28 +775,29 @@ npx livepilot --doctor # Full diagnostic check
|
|
|
531
775
|
npx livepilot --version # Show version
|
|
532
776
|
```
|
|
533
777
|
|
|
534
|
-
|
|
778
|
+
<br>
|
|
535
779
|
|
|
536
|
-
##
|
|
780
|
+
## Compatibility
|
|
537
781
|
|
|
538
|
-
|
|
782
|
+
Live 12 all editions. Suite required for stock instruments
|
|
783
|
+
(Drift, Meld, Wavetable) and Max for Live.
|
|
784
|
+
Python 3.9+. Node.js 18+.
|
|
539
785
|
|
|
540
|
-
|
|
786
|
+
<br>
|
|
541
787
|
|
|
542
788
|
## Development
|
|
543
789
|
|
|
544
790
|
```bash
|
|
545
791
|
git clone https://github.com/dreamrec/LivePilot.git
|
|
546
792
|
cd LivePilot
|
|
547
|
-
python3 -m venv .venv
|
|
548
|
-
.venv/bin/pip install -r requirements.txt
|
|
793
|
+
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
|
|
549
794
|
.venv/bin/pytest tests/ -v
|
|
550
795
|
```
|
|
551
796
|
|
|
552
|
-
|
|
797
|
+
<br>
|
|
553
798
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
## License
|
|
799
|
+
───────────────────────────────────────────────────────────────
|
|
557
800
|
|
|
558
801
|
[MIT](LICENSE) — Pilot Studio
|
|
802
|
+
|
|
803
|
+
Sister projects: [TDPilot](https://github.com/dreamrec/TDPilot) (TouchDesigner) · [ComfyPilot](https://github.com/dreamrec/ComfyPilot) (ComfyUI)
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "livepilot",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.4",
|
|
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
|
|