livepilot 1.6.4 → 1.7.0
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/CHANGELOG.md +43 -7
- package/README.md +21 -6
- package/m4l_device/LivePilot_Analyzer.amxd +0 -0
- package/m4l_device/livepilot_bridge.js +1 -1
- package/mcp_server/__init__.py +1 -1
- package/mcp_server/server.py +3 -0
- package/mcp_server/tools/_generative_engine.py +271 -0
- package/mcp_server/tools/_harmony_engine.py +207 -0
- package/mcp_server/tools/_theory_engine.py +366 -0
- package/mcp_server/tools/generative.py +273 -0
- package/mcp_server/tools/harmony.py +253 -0
- package/mcp_server/tools/midi_io.py +305 -0
- package/mcp_server/tools/theory.py +160 -320
- package/package.json +2 -2
- package/plugin/plugin.json +2 -2
- package/plugin/skills/livepilot-core/SKILL.md +46 -8
- package/plugin/skills/livepilot-core/references/overview.md +5 -5
- package/remote_script/LivePilot/__init__.py +2 -2
- package/requirements.txt +3 -3
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "livepilot",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"mcpName": "io.github.dreamrec/livepilot",
|
|
5
|
-
"description": "AI copilot for Ableton Live 12 —
|
|
5
|
+
"description": "AI copilot for Ableton Live 12 — 155 tools, device atlas (280+ devices), real-time audio analysis, generative algorithms, neo-Riemannian harmony, MIDI file I/O, and technique memory",
|
|
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.
|
|
4
|
-
"description": "AI copilot for Ableton Live 12 —
|
|
3
|
+
"version": "1.7.0",
|
|
4
|
+
"description": "AI copilot for Ableton Live 12 — 155 tools, device atlas (280+ devices), real-time audio analysis, generative algorithms, neo-Riemannian harmony, MIDI file I/O, and technique memory",
|
|
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 controlling Ableton Live 12 through LivePilot's
|
|
3
|
+
description: Core discipline for controlling Ableton Live 12 through LivePilot's 155 MCP tools, device atlas (280+ devices), M4L analyzer (spectrum/RMS/key detection), automation intelligence (16 curve types, 15 recipes), music theory analysis, generative algorithms, neo-Riemannian harmony, MIDI file I/O, and technique memory. Use whenever working with Ableton Live through MCP tools.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# LivePilot Core — Ableton Live 12 AI Copilot
|
|
7
7
|
|
|
8
|
-
LivePilot is an agentic production system for Ableton Live 12. It combines
|
|
8
|
+
LivePilot is an agentic production system for Ableton Live 12. It combines 155 MCP tools with three layers of intelligence:
|
|
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
|
|
14
|
+
These layers sit on top of 155 deterministic tools across 16 domains: transport, tracks, clips, MIDI notes, devices, scenes, mixing, browser, arrangement, technique memory, real-time DSP analysis, automation, music theory, generative algorithms, neo-Riemannian harmony, and MIDI file I/O.
|
|
15
15
|
|
|
16
16
|
## Golden Rules
|
|
17
17
|
|
|
@@ -32,7 +32,7 @@ These layers sit on top of 142 deterministic tools across 13 domains: transport,
|
|
|
32
32
|
Not all tools respond instantly. Know the tiers and act accordingly.
|
|
33
33
|
|
|
34
34
|
### Instant (<1s) — Use freely, no warning needed
|
|
35
|
-
All
|
|
35
|
+
All 155 core tools (transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement, memory, automation, theory, generative, harmony, midi_io) plus Layer A perception tools (spectral shape, timbral profile, mel spectrum, chroma, onsets, harmonic/percussive, novelty, momentary loudness). These are the reflex tools — call them anytime without hesitation.
|
|
36
36
|
|
|
37
37
|
### Fast (1-5s) — Use freely, barely noticeable
|
|
38
38
|
`analyze_loudness` · `analyze_dynamic_range` · `compare_loudness`
|
|
@@ -117,7 +117,7 @@ Never skip levels. The user's question determines the entry point, but always st
|
|
|
117
117
|
- MIDI track with no instrument loaded
|
|
118
118
|
- Notes programmed but clip not fired
|
|
119
119
|
|
|
120
|
-
## Tool Domains (
|
|
120
|
+
## Tool Domains (155 total)
|
|
121
121
|
|
|
122
122
|
### Transport (12)
|
|
123
123
|
`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`
|
|
@@ -176,7 +176,7 @@ Clip automation CRUD + intelligent curve generation with 15 built-in recipes.
|
|
|
176
176
|
- Load `references/automation-atlas.md` for curve theory, genre recipes, diagnostic technique, and cross-track spectral mapping
|
|
177
177
|
|
|
178
178
|
### Theory (7)
|
|
179
|
-
Music theory analysis
|
|
179
|
+
Music theory analysis — built-in pure Python engine, zero external dependencies.
|
|
180
180
|
|
|
181
181
|
**Tools:** `analyze_harmony` · `suggest_next_chord` · `detect_theory_issues` · `identify_scale` · `harmonize_melody` · `generate_countermelody` · `transpose_smart`
|
|
182
182
|
|
|
@@ -184,9 +184,47 @@ Music theory analysis powered by music21. Optional dependency — install with `
|
|
|
184
184
|
- These tools read MIDI notes directly from session clips — no file export needed
|
|
185
185
|
- Auto-detects key via Krumhansl-Schmuckler if not provided; pass `key` hint for better accuracy
|
|
186
186
|
- `analyze_harmony` and `detect_theory_issues` are analysis-only; `harmonize_melody`, `generate_countermelody`, and `transpose_smart` return note data ready for `add_notes`
|
|
187
|
-
- Use your own musical knowledge alongside these tools —
|
|
187
|
+
- Use your own musical knowledge alongside these tools — the engine provides data, you provide interpretation
|
|
188
188
|
- Processing time: 2-5s for generative tools (harmonize, countermelody)
|
|
189
189
|
|
|
190
|
+
### Generative (5)
|
|
191
|
+
Algorithmic composition tools — Euclidean rhythms, minimalist techniques.
|
|
192
|
+
|
|
193
|
+
**Tools:** `generate_euclidean_rhythm` · `layer_euclidean_rhythms` · `generate_tintinnabuli` · `generate_phase_shift` · `generate_additive_process`
|
|
194
|
+
|
|
195
|
+
**Key discipline:**
|
|
196
|
+
- All generative tools return note arrays — use `add_notes` to place them in clips
|
|
197
|
+
- `generate_euclidean_rhythm` uses the Bjorklund algorithm and identifies named rhythms (e.g., "tresillo", "cinquillo")
|
|
198
|
+
- `layer_euclidean_rhythms` stacks multiple patterns for polyrhythmic textures across tracks
|
|
199
|
+
- `generate_tintinnabuli` implements Arvo Pärt's technique: a T-voice (triad arpeggio) against a M-voice (melody)
|
|
200
|
+
- `generate_phase_shift` implements Steve Reich's phasing: two identical patterns drifting apart over time
|
|
201
|
+
- `generate_additive_process` implements Philip Glass's technique: melody expanded by adding one note per iteration
|
|
202
|
+
|
|
203
|
+
### Harmony (4)
|
|
204
|
+
Neo-Riemannian harmony tools — Tonnetz navigation, voice leading, chromatic mediants.
|
|
205
|
+
|
|
206
|
+
**Tools:** `navigate_tonnetz` · `find_voice_leading_path` · `classify_progression` · `suggest_chromatic_mediants`
|
|
207
|
+
|
|
208
|
+
**Key discipline:**
|
|
209
|
+
- These tools work with chord names and return harmonic relationships — no clip MIDI required
|
|
210
|
+
- `navigate_tonnetz` returns PRL (Parallel, Relative, Leading-tone) neighbors for any chord
|
|
211
|
+
- `find_voice_leading_path` finds the shortest harmonic path between two chords through Tonnetz space
|
|
212
|
+
- `classify_progression` identifies the neo-Riemannian transform pattern in a chord sequence
|
|
213
|
+
- `suggest_chromatic_mediants` returns all chromatic mediant relations with film score usage notes
|
|
214
|
+
- Opycleid library provides full Tonnetz; falls back to pure Python PRL if not installed
|
|
215
|
+
|
|
216
|
+
### MIDI I/O (4)
|
|
217
|
+
MIDI file import/export — works with standard .mid files on disk.
|
|
218
|
+
|
|
219
|
+
**Tools:** `export_clip_midi` · `import_midi_to_clip` · `analyze_midi_file` · `extract_piano_roll`
|
|
220
|
+
|
|
221
|
+
**Key discipline:**
|
|
222
|
+
- `export_clip_midi` exports a session clip's notes to a .mid file at the specified path
|
|
223
|
+
- `import_midi_to_clip` loads a .mid file into a clip, replacing existing notes
|
|
224
|
+
- `analyze_midi_file` performs offline analysis of any .mid file (tempo, notes, structure) — does not require Ableton connection
|
|
225
|
+
- `extract_piano_roll` returns a 2D velocity matrix (pitch × time) from a .mid file for visualization or processing
|
|
226
|
+
- Dependencies: midiutil (export), pretty-midi (import/analysis) — lazy-loaded, ~5 MB total
|
|
227
|
+
|
|
190
228
|
## Workflow: Building a Beat
|
|
191
229
|
|
|
192
230
|
1. `get_session_info` — check current state
|
|
@@ -328,7 +366,7 @@ Deep production knowledge lives in `references/`. Consult these when making crea
|
|
|
328
366
|
|
|
329
367
|
| File | What's inside | When to consult |
|
|
330
368
|
|------|--------------|-----------------|
|
|
331
|
-
| `references/overview.md` | All
|
|
369
|
+
| `references/overview.md` | All 155 tools mapped with params, units, ranges | Quick lookup for any tool |
|
|
332
370
|
| `references/midi-recipes.md` | Drum patterns by genre, chord voicings, scales, hi-hat techniques, humanization, polymetrics | Programming MIDI notes, building beats |
|
|
333
371
|
| `references/sound-design.md` | Stock instruments/effects, parameter recipes for bass/pad/lead/pluck, device chain patterns | Loading and configuring devices |
|
|
334
372
|
| `references/mixing-patterns.md` | Gain staging, parallel compression, sidechain, EQ by instrument, bus processing, stereo width | Setting volumes, panning, adding effects |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# LivePilot v1.
|
|
1
|
+
# LivePilot v1.7.0 — Architecture & Tool Reference
|
|
2
2
|
|
|
3
|
-
LivePilot is an agentic production system for Ableton Live 12. It combines
|
|
3
|
+
LivePilot is an agentic production system for Ableton Live 12. It combines 155 MCP tools with a device knowledge corpus, real-time audio analysis, automation intelligence, generative algorithms, neo-Riemannian harmony, MIDI file I/O, and persistent technique memory.
|
|
4
4
|
|
|
5
5
|
## Architecture
|
|
6
6
|
|
|
@@ -32,7 +32,7 @@ A flat tool list lets the AI press buttons. LivePilot's three layers give it con
|
|
|
32
32
|
|
|
33
33
|
This turns "set EQ band 3 to -4 dB" into "cut 400 Hz by 4 dB, then read the spectrum to confirm the mud is actually reduced."
|
|
34
34
|
|
|
35
|
-
## The
|
|
35
|
+
## The 155 Tools — What Each One Does
|
|
36
36
|
|
|
37
37
|
### Transport (12) — Playback, tempo, global state, diagnostics
|
|
38
38
|
|
|
@@ -244,7 +244,7 @@ This turns "set EQ band 3 to -4 dB" into "cut 400 Hz by 4 dB, then read the spec
|
|
|
244
244
|
|
|
245
245
|
**15 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
|
|
246
246
|
|
|
247
|
-
### Theory (7) —
|
|
247
|
+
### Theory (7) — Built-in music theory analysis (zero dependencies)
|
|
248
248
|
|
|
249
249
|
| Tool | What it does | Key params |
|
|
250
250
|
|------|-------------|------------|
|
|
@@ -256,7 +256,7 @@ This turns "set EQ band 3 to -4 dB" into "cut 400 Hz by 4 dB, then read the spec
|
|
|
256
256
|
| `generate_countermelody` | Species counterpoint against a melody | `track_index`, `clip_index`, `species` (1 or 2) |
|
|
257
257
|
| `transpose_smart` | Diatonic or chromatic transposition to a new key | `track_index`, `clip_index`, `target_key`, `mode` (diatonic/chromatic) |
|
|
258
258
|
|
|
259
|
-
**
|
|
259
|
+
**Built-in** — zero external dependencies, works on every LivePilot install.
|
|
260
260
|
|
|
261
261
|
## Units & Ranges Quick Reference
|
|
262
262
|
|
|
@@ -5,7 +5,7 @@ Entry point for the ControlSurface. Ableton calls create_instance(c_instance)
|
|
|
5
5
|
when this script is selected in Preferences > Link, Tempo & MIDI.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
__version__ = "1.
|
|
8
|
+
__version__ = "1.7.0"
|
|
9
9
|
|
|
10
10
|
from _Framework.ControlSurface import ControlSurface
|
|
11
11
|
from .server import LivePilotServer
|
|
@@ -34,7 +34,7 @@ class LivePilot(ControlSurface):
|
|
|
34
34
|
ControlSurface.__init__(self, c_instance)
|
|
35
35
|
self._server = LivePilotServer(self)
|
|
36
36
|
self._server.start()
|
|
37
|
-
self.log_message("LivePilot v1.
|
|
37
|
+
self.log_message("LivePilot v1.7.0 initialized")
|
|
38
38
|
self.show_message("LivePilot: Listening on port 9878")
|
|
39
39
|
|
|
40
40
|
def disconnect(self):
|
package/requirements.txt
CHANGED