livepilot 1.6.3 → 1.6.5
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 +28 -0
- package/README.md +6 -5
- package/m4l_device/livepilot_bridge.js +1 -1
- package/mcp_server/__init__.py +1 -1
- package/mcp_server/server.py +1 -0
- package/mcp_server/tools/_theory_engine.py +366 -0
- package/mcp_server/tools/theory.py +712 -0
- package/package.json +2 -2
- package/plugin/plugin.json +2 -2
- package/plugin/skills/livepilot-core/SKILL.md +70 -5
- package/plugin/skills/livepilot-core/references/overview.md +17 -3
- package/remote_script/LivePilot/__init__.py +2 -2
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "livepilot",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.5",
|
|
4
4
|
"mcpName": "io.github.dreamrec/livepilot",
|
|
5
|
-
"description": "AI copilot for Ableton Live 12 —
|
|
5
|
+
"description": "AI copilot for Ableton Live 12 — 142 tools, device atlas (280+ devices), real-time audio analysis, automation intelligence, 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.6.
|
|
4
|
-
"description": "AI copilot for Ableton Live 12 —
|
|
3
|
+
"version": "1.6.5",
|
|
4
|
+
"description": "AI copilot for Ableton Live 12 — 142 tools, device atlas (280+ devices), real-time audio analysis, automation intelligence, 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 142 MCP tools, device atlas (280+ devices), M4L analyzer (spectrum/RMS/key detection), automation intelligence (16 curve types, 15 recipes), music theory analysis, 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 142 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 142 deterministic tools across 13 domains: transport, tracks, clips, MIDI notes, devices, scenes, mixing, browser, arrangement, technique memory, real-time DSP analysis, automation, and music theory.
|
|
15
15
|
|
|
16
16
|
## Golden Rules
|
|
17
17
|
|
|
@@ -25,6 +25,59 @@ These layers sit on top of 135 deterministic tools across 12 domains: transport,
|
|
|
25
25
|
8. **Volume is 0.0-1.0, pan is -1.0 to 1.0** — these are normalized, not dB
|
|
26
26
|
9. **Tempo range 20-999 BPM** — validated before sending to Ableton
|
|
27
27
|
10. **Always name your tracks and clips** — organization is part of the creative process
|
|
28
|
+
11. **Respect tool speed tiers** — see below. Never call heavy tools without user consent.
|
|
29
|
+
|
|
30
|
+
## Tool Speed Tiers
|
|
31
|
+
|
|
32
|
+
Not all tools respond instantly. Know the tiers and act accordingly.
|
|
33
|
+
|
|
34
|
+
### Instant (<1s) — Use freely, no warning needed
|
|
35
|
+
All 142 core tools (transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement, memory, automation, theory) 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
|
+
|
|
37
|
+
### Fast (1-5s) — Use freely, barely noticeable
|
|
38
|
+
`analyze_loudness` · `analyze_dynamic_range` · `compare_loudness`
|
|
39
|
+
|
|
40
|
+
File-based analysis that reads audio from disk. Fast enough to use mid-conversation. No warning needed for files under 2 minutes.
|
|
41
|
+
|
|
42
|
+
### Slow (5-15s) — Tell the user before calling
|
|
43
|
+
`analyze_spectral_evolution` · `compare_to_reference` · `transcribe_to_midi`
|
|
44
|
+
|
|
45
|
+
These run multi-pass analysis or load AI models. Always tell the user what you're about to do and roughly how long it takes. Never chain multiple slow tools back-to-back without checking in.
|
|
46
|
+
|
|
47
|
+
### Heavy (30-120s) — ALWAYS ask the user first
|
|
48
|
+
`separate_stems` · `diagnose_mix`
|
|
49
|
+
|
|
50
|
+
These run GPU-intensive processes (Demucs stem separation). Processing time: 15-25s on GPU, 60-90s on CPU/MPS. `diagnose_mix` chains stem separation with per-stem analysis and can take 2+ minutes.
|
|
51
|
+
|
|
52
|
+
**CRITICAL: Heavy Tool Protocol**
|
|
53
|
+
- NEVER call `separate_stems` or `diagnose_mix` unless the user explicitly requests it
|
|
54
|
+
- NEVER call them speculatively or "just to check"
|
|
55
|
+
- NEVER call them during creative flow (beat-making, sound design, mixing) — they break momentum
|
|
56
|
+
- ALWAYS warn the user with an estimated time before calling
|
|
57
|
+
- ALWAYS prefer fast tools first: if the user says "check my mix", use `analyze_loudness` + `analyze_dynamic_range` (2 seconds total), report findings, THEN offer to escalate: "I could separate stems to investigate further, but that takes about a minute. Want me to?"
|
|
58
|
+
|
|
59
|
+
**Wrong:** User says "how does my track sound?" → call `diagnose_mix` (120s surprise)
|
|
60
|
+
**Right:** User says "how does my track sound?" → call `analyze_loudness` + `get_master_spectrum` (1s) → report findings → offer heavy analysis only if needed
|
|
61
|
+
|
|
62
|
+
### Escalation Pattern for Analysis
|
|
63
|
+
|
|
64
|
+
Always follow this ladder — start fast, escalate only with consent:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Level 1 (instant): get_master_spectrum + get_track_meters
|
|
68
|
+
→ frequency balance + levels. Enough for 80% of questions.
|
|
69
|
+
|
|
70
|
+
Level 2 (fast): analyze_loudness + analyze_dynamic_range
|
|
71
|
+
→ LUFS, true peak, LRA, crest factor. For mastering prep.
|
|
72
|
+
|
|
73
|
+
Level 3 (slow): analyze_spectral_evolution + compare_to_reference
|
|
74
|
+
→ timbral trends, reference matching. Ask first.
|
|
75
|
+
|
|
76
|
+
Level 4 (heavy): separate_stems → per-stem analysis → diagnose_mix
|
|
77
|
+
→ full diagnostic. Explicit user consent required.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Never skip levels. The user's question determines the entry point, but always start at the lowest appropriate level and offer to go deeper.
|
|
28
81
|
|
|
29
82
|
## Track Health Checks — MANDATORY
|
|
30
83
|
|
|
@@ -64,7 +117,7 @@ These layers sit on top of 135 deterministic tools across 12 domains: transport,
|
|
|
64
117
|
- MIDI track with no instrument loaded
|
|
65
118
|
- Notes programmed but clip not fired
|
|
66
119
|
|
|
67
|
-
## Tool Domains (
|
|
120
|
+
## Tool Domains (142 total)
|
|
68
121
|
|
|
69
122
|
### Transport (12)
|
|
70
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`
|
|
@@ -122,6 +175,18 @@ Clip automation CRUD + intelligent curve generation with 15 built-in recipes.
|
|
|
122
175
|
- Clear existing automation before rewriting: `clear_clip_automation` first
|
|
123
176
|
- Load `references/automation-atlas.md` for curve theory, genre recipes, diagnostic technique, and cross-track spectral mapping
|
|
124
177
|
|
|
178
|
+
### Theory (7)
|
|
179
|
+
Music theory analysis — built-in pure Python engine, zero external dependencies.
|
|
180
|
+
|
|
181
|
+
**Tools:** `analyze_harmony` · `suggest_next_chord` · `detect_theory_issues` · `identify_scale` · `harmonize_melody` · `generate_countermelody` · `transpose_smart`
|
|
182
|
+
|
|
183
|
+
**Key discipline:**
|
|
184
|
+
- These tools read MIDI notes directly from session clips — no file export needed
|
|
185
|
+
- Auto-detects key via Krumhansl-Schmuckler if not provided; pass `key` hint for better accuracy
|
|
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 — the engine provides data, you provide interpretation
|
|
188
|
+
- Processing time: 2-5s for generative tools (harmonize, countermelody)
|
|
189
|
+
|
|
125
190
|
## Workflow: Building a Beat
|
|
126
191
|
|
|
127
192
|
1. `get_session_info` — check current state
|
|
@@ -263,7 +328,7 @@ Deep production knowledge lives in `references/`. Consult these when making crea
|
|
|
263
328
|
|
|
264
329
|
| File | What's inside | When to consult |
|
|
265
330
|
|------|--------------|-----------------|
|
|
266
|
-
| `references/overview.md` | All
|
|
331
|
+
| `references/overview.md` | All 142 tools mapped with params, units, ranges | Quick lookup for any tool |
|
|
267
332
|
| `references/midi-recipes.md` | Drum patterns by genre, chord voicings, scales, hi-hat techniques, humanization, polymetrics | Programming MIDI notes, building beats |
|
|
268
333
|
| `references/sound-design.md` | Stock instruments/effects, parameter recipes for bass/pad/lead/pluck, device chain patterns | Loading and configuring devices |
|
|
269
334
|
| `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.6.
|
|
1
|
+
# LivePilot v1.6.5 — 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 142 MCP tools with a device knowledge corpus, real-time audio analysis, automation intelligence, 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 142 Tools — What Each One Does
|
|
36
36
|
|
|
37
37
|
### Transport (12) — Playback, tempo, global state, diagnostics
|
|
38
38
|
|
|
@@ -244,6 +244,20 @@ 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) — Built-in music theory analysis (zero dependencies)
|
|
248
|
+
|
|
249
|
+
| Tool | What it does | Key params |
|
|
250
|
+
|------|-------------|------------|
|
|
251
|
+
| `analyze_harmony` | Chord-by-chord Roman numeral analysis of a clip | `track_index`, `clip_index`, `key` (optional) |
|
|
252
|
+
| `suggest_next_chord` | Suggests theory-valid chord continuations | `track_index`, `clip_index`, `style` (common_practice/jazz/modal/pop) |
|
|
253
|
+
| `detect_theory_issues` | Finds parallel fifths/octaves, out-of-key notes, voice crossing | `track_index`, `clip_index`, `strict` (bool) |
|
|
254
|
+
| `identify_scale` | Deep scale/mode identification with confidence ranking | `track_index`, `clip_index` |
|
|
255
|
+
| `harmonize_melody` | Generates 2 or 4-voice SATB harmonization | `track_index`, `clip_index`, `voices` (2 or 4) |
|
|
256
|
+
| `generate_countermelody` | Species counterpoint against a melody | `track_index`, `clip_index`, `species` (1 or 2) |
|
|
257
|
+
| `transpose_smart` | Diatonic or chromatic transposition to a new key | `track_index`, `clip_index`, `target_key`, `mode` (diatonic/chromatic) |
|
|
258
|
+
|
|
259
|
+
**Built-in** — zero external dependencies, works on every LivePilot install.
|
|
260
|
+
|
|
247
261
|
## Units & Ranges Quick Reference
|
|
248
262
|
|
|
249
263
|
| Concept | Unit/Range | Notes |
|
|
@@ -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.6.
|
|
8
|
+
__version__ = "1.6.5"
|
|
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.6.
|
|
37
|
+
self.log_message("LivePilot v1.6.5 initialized")
|
|
38
38
|
self.show_message("LivePilot: Listening on port 9878")
|
|
39
39
|
|
|
40
40
|
def disconnect(self):
|