livepilot 1.9.24 → 1.10.1
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/.claude-plugin/marketplace.json +3 -3
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +223 -0
- package/CONTRIBUTING.md +2 -2
- package/LICENSE +62 -21
- package/README.md +291 -276
- package/bin/livepilot.js +87 -0
- package/installer/codex.js +147 -0
- package/livepilot/.Codex-plugin/plugin.json +2 -2
- package/livepilot/.claude-plugin/plugin.json +2 -2
- package/livepilot/skills/livepilot-arrangement/SKILL.md +18 -1
- package/livepilot/skills/livepilot-core/SKILL.md +22 -5
- package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +34 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +204 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +173 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +211 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +188 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +162 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +229 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +243 -0
- package/livepilot/skills/livepilot-core/references/overview.md +13 -9
- package/livepilot/skills/livepilot-core/references/sample-manipulation.md +724 -0
- package/livepilot/skills/livepilot-core/references/sound-design-deep.md +140 -0
- package/livepilot/skills/livepilot-devices/SKILL.md +39 -4
- package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +1 -1
- package/livepilot/skills/livepilot-release/SKILL.md +23 -19
- package/livepilot/skills/livepilot-sample-engine/SKILL.md +105 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +87 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +51 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +131 -0
- package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +45 -0
- package/livepilot/skills/livepilot-wonder/SKILL.md +17 -0
- package/livepilot.mcpb +0 -0
- package/m4l_device/livepilot_bridge.js +1 -1
- package/manifest.json +4 -4
- package/mcp_server/__init__.py +1 -1
- package/mcp_server/atlas/__init__.py +357 -0
- package/mcp_server/atlas/device_atlas.json +44067 -0
- package/mcp_server/atlas/enrichments/__init__.py +111 -0
- package/mcp_server/atlas/enrichments/audio_effects/auto_filter.yaml +162 -0
- package/mcp_server/atlas/enrichments/audio_effects/beat_repeat.yaml +183 -0
- package/mcp_server/atlas/enrichments/audio_effects/channel_eq.yaml +126 -0
- package/mcp_server/atlas/enrichments/audio_effects/chorus_ensemble.yaml +149 -0
- package/mcp_server/atlas/enrichments/audio_effects/color_limiter.yaml +109 -0
- package/mcp_server/atlas/enrichments/audio_effects/compressor.yaml +159 -0
- package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb.yaml +143 -0
- package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb_pro.yaml +178 -0
- package/mcp_server/atlas/enrichments/audio_effects/delay.yaml +151 -0
- package/mcp_server/atlas/enrichments/audio_effects/drum_buss.yaml +142 -0
- package/mcp_server/atlas/enrichments/audio_effects/dynamic_tube.yaml +147 -0
- package/mcp_server/atlas/enrichments/audio_effects/echo.yaml +167 -0
- package/mcp_server/atlas/enrichments/audio_effects/eq_eight.yaml +148 -0
- package/mcp_server/atlas/enrichments/audio_effects/eq_three.yaml +121 -0
- package/mcp_server/atlas/enrichments/audio_effects/erosion.yaml +103 -0
- package/mcp_server/atlas/enrichments/audio_effects/filter_delay.yaml +173 -0
- package/mcp_server/atlas/enrichments/audio_effects/gate.yaml +130 -0
- package/mcp_server/atlas/enrichments/audio_effects/gated_delay.yaml +133 -0
- package/mcp_server/atlas/enrichments/audio_effects/glue_compressor.yaml +142 -0
- package/mcp_server/atlas/enrichments/audio_effects/grain_delay.yaml +141 -0
- package/mcp_server/atlas/enrichments/audio_effects/hybrid_reverb.yaml +160 -0
- package/mcp_server/atlas/enrichments/audio_effects/limiter.yaml +97 -0
- package/mcp_server/atlas/enrichments/audio_effects/multiband_dynamics.yaml +174 -0
- package/mcp_server/atlas/enrichments/audio_effects/overdrive.yaml +119 -0
- package/mcp_server/atlas/enrichments/audio_effects/pedal.yaml +145 -0
- package/mcp_server/atlas/enrichments/audio_effects/phaser_flanger.yaml +161 -0
- package/mcp_server/atlas/enrichments/audio_effects/redux.yaml +114 -0
- package/mcp_server/atlas/enrichments/audio_effects/reverb.yaml +190 -0
- package/mcp_server/atlas/enrichments/audio_effects/roar.yaml +159 -0
- package/mcp_server/atlas/enrichments/audio_effects/saturator.yaml +146 -0
- package/mcp_server/atlas/enrichments/audio_effects/shifter.yaml +154 -0
- package/mcp_server/atlas/enrichments/audio_effects/spectral_resonator.yaml +141 -0
- package/mcp_server/atlas/enrichments/audio_effects/spectral_time.yaml +164 -0
- package/mcp_server/atlas/enrichments/audio_effects/vector_delay.yaml +140 -0
- package/mcp_server/atlas/enrichments/audio_effects/vinyl_distortion.yaml +141 -0
- package/mcp_server/atlas/enrichments/instruments/analog.yaml +222 -0
- package/mcp_server/atlas/enrichments/instruments/bass.yaml +202 -0
- package/mcp_server/atlas/enrichments/instruments/collision.yaml +150 -0
- package/mcp_server/atlas/enrichments/instruments/drift.yaml +167 -0
- package/mcp_server/atlas/enrichments/instruments/electric.yaml +137 -0
- package/mcp_server/atlas/enrichments/instruments/emit.yaml +163 -0
- package/mcp_server/atlas/enrichments/instruments/meld.yaml +164 -0
- package/mcp_server/atlas/enrichments/instruments/operator.yaml +197 -0
- package/mcp_server/atlas/enrichments/instruments/poli.yaml +192 -0
- package/mcp_server/atlas/enrichments/instruments/sampler.yaml +218 -0
- package/mcp_server/atlas/enrichments/instruments/simpler.yaml +217 -0
- package/mcp_server/atlas/enrichments/instruments/tension.yaml +156 -0
- package/mcp_server/atlas/enrichments/instruments/tree_tone.yaml +162 -0
- package/mcp_server/atlas/enrichments/instruments/vector_fm.yaml +165 -0
- package/mcp_server/atlas/enrichments/instruments/vector_grain.yaml +166 -0
- package/mcp_server/atlas/enrichments/instruments/wavetable.yaml +162 -0
- package/mcp_server/atlas/enrichments/midi_effects/arpeggiator.yaml +156 -0
- package/mcp_server/atlas/enrichments/midi_effects/bouncy_notes.yaml +93 -0
- package/mcp_server/atlas/enrichments/midi_effects/chord.yaml +147 -0
- package/mcp_server/atlas/enrichments/midi_effects/melodic_steps.yaml +97 -0
- package/mcp_server/atlas/enrichments/midi_effects/note_echo.yaml +108 -0
- package/mcp_server/atlas/enrichments/midi_effects/note_length.yaml +97 -0
- package/mcp_server/atlas/enrichments/midi_effects/pitch.yaml +76 -0
- package/mcp_server/atlas/enrichments/midi_effects/random.yaml +117 -0
- package/mcp_server/atlas/enrichments/midi_effects/rhythmic_steps.yaml +103 -0
- package/mcp_server/atlas/enrichments/midi_effects/scale.yaml +83 -0
- package/mcp_server/atlas/enrichments/midi_effects/step_arp.yaml +112 -0
- package/mcp_server/atlas/enrichments/midi_effects/velocity.yaml +119 -0
- package/mcp_server/atlas/enrichments/utility/amp.yaml +159 -0
- package/mcp_server/atlas/enrichments/utility/cabinet.yaml +109 -0
- package/mcp_server/atlas/enrichments/utility/corpus.yaml +150 -0
- package/mcp_server/atlas/enrichments/utility/resonators.yaml +131 -0
- package/mcp_server/atlas/enrichments/utility/spectrum.yaml +63 -0
- package/mcp_server/atlas/enrichments/utility/tuner.yaml +51 -0
- package/mcp_server/atlas/enrichments/utility/utility.yaml +136 -0
- package/mcp_server/atlas/enrichments/utility/vocoder.yaml +160 -0
- package/mcp_server/atlas/scanner.py +236 -0
- package/mcp_server/atlas/tools.py +224 -0
- package/mcp_server/composer/__init__.py +1 -0
- package/mcp_server/composer/engine.py +532 -0
- package/mcp_server/composer/layer_planner.py +427 -0
- package/mcp_server/composer/prompt_parser.py +329 -0
- package/mcp_server/composer/sample_resolver.py +153 -0
- package/mcp_server/composer/tools.py +211 -0
- package/mcp_server/connection.py +53 -8
- package/mcp_server/corpus/__init__.py +377 -0
- package/mcp_server/device_forge/__init__.py +1 -0
- package/mcp_server/device_forge/builder.py +377 -0
- package/mcp_server/device_forge/models.py +142 -0
- package/mcp_server/device_forge/templates.py +483 -0
- package/mcp_server/device_forge/tools.py +162 -0
- package/mcp_server/m4l_bridge.py +1 -0
- package/mcp_server/memory/taste_accessors.py +47 -0
- package/mcp_server/preview_studio/engine.py +9 -2
- package/mcp_server/preview_studio/tools.py +78 -35
- package/mcp_server/project_brain/tools.py +34 -0
- package/mcp_server/runtime/capability_probe.py +21 -2
- package/mcp_server/runtime/execution_router.py +184 -38
- package/mcp_server/runtime/live_version.py +102 -0
- package/mcp_server/runtime/mcp_dispatch.py +46 -0
- package/mcp_server/runtime/remote_commands.py +13 -5
- package/mcp_server/runtime/tools.py +66 -29
- package/mcp_server/sample_engine/__init__.py +1 -0
- package/mcp_server/sample_engine/analyzer.py +216 -0
- package/mcp_server/sample_engine/critics.py +390 -0
- package/mcp_server/sample_engine/models.py +193 -0
- package/mcp_server/sample_engine/moves.py +127 -0
- package/mcp_server/sample_engine/planner.py +186 -0
- package/mcp_server/sample_engine/slice_workflow.py +190 -0
- package/mcp_server/sample_engine/sources.py +540 -0
- package/mcp_server/sample_engine/techniques.py +908 -0
- package/mcp_server/sample_engine/tools.py +545 -0
- package/mcp_server/semantic_moves/__init__.py +3 -0
- package/mcp_server/semantic_moves/device_creation_moves.py +237 -0
- package/mcp_server/semantic_moves/mix_moves.py +8 -8
- package/mcp_server/semantic_moves/models.py +7 -7
- package/mcp_server/semantic_moves/performance_moves.py +4 -4
- package/mcp_server/semantic_moves/sample_compilers.py +377 -0
- package/mcp_server/semantic_moves/sound_design_moves.py +4 -4
- package/mcp_server/semantic_moves/tools.py +63 -10
- package/mcp_server/semantic_moves/transition_moves.py +4 -4
- package/mcp_server/server.py +71 -1
- package/mcp_server/session_continuity/tracker.py +4 -1
- package/mcp_server/sound_design/critics.py +89 -1
- package/mcp_server/splice_client/__init__.py +1 -0
- package/mcp_server/splice_client/client.py +347 -0
- package/mcp_server/splice_client/models.py +96 -0
- package/mcp_server/splice_client/protos/__init__.py +1 -0
- package/mcp_server/splice_client/protos/app_pb2.py +319 -0
- package/mcp_server/splice_client/protos/app_pb2.pyi +1153 -0
- package/mcp_server/splice_client/protos/app_pb2_grpc.py +1946 -0
- package/mcp_server/tools/_conductor.py +16 -0
- package/mcp_server/tools/_planner_engine.py +24 -0
- package/mcp_server/tools/analyzer.py +2 -0
- package/mcp_server/tools/arrangement.py +69 -0
- package/mcp_server/tools/automation.py +15 -2
- package/mcp_server/tools/devices.py +117 -6
- package/mcp_server/tools/notes.py +37 -4
- package/mcp_server/tools/planner.py +3 -0
- package/mcp_server/wonder_mode/diagnosis.py +5 -0
- package/mcp_server/wonder_mode/engine.py +144 -14
- package/mcp_server/wonder_mode/tools.py +33 -1
- package/package.json +14 -4
- package/remote_script/LivePilot/__init__.py +8 -1
- package/remote_script/LivePilot/arrangement.py +114 -0
- package/remote_script/LivePilot/browser.py +56 -1
- package/remote_script/LivePilot/devices.py +246 -6
- package/remote_script/LivePilot/mixing.py +8 -3
- package/remote_script/LivePilot/server.py +5 -1
- package/remote_script/LivePilot/transport.py +3 -0
- package/remote_script/LivePilot/version_detect.py +78 -0
package/README.md
CHANGED
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
<a href="https://github.com/dreamrec/LivePilot/actions"><img src="https://img.shields.io/github/actions/workflow/status/dreamrec/LivePilot/ci.yml?style=flat-square&label=CI" alt="CI"></a>
|
|
12
12
|
<a href="https://www.npmjs.com/package/livepilot"><img src="https://img.shields.io/npm/v/livepilot?style=flat-square&color=blue" alt="npm version"></a>
|
|
13
13
|
<a href="https://www.npmjs.com/package/livepilot"><img src="https://img.shields.io/npm/dm/livepilot?style=flat-square" alt="npm downloads"></a>
|
|
14
|
-
<a href="https://github.com/dreamrec/LivePilot/blob/main/LICENSE"><img src="https://img.shields.io/
|
|
14
|
+
<a href="https://github.com/dreamrec/LivePilot/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-BSL--1.1-blue?style=flat-square" alt="License"></a>
|
|
15
15
|
<a href="https://github.com/dreamrec/LivePilot/releases"><img src="https://img.shields.io/github/v/release/dreamrec/LivePilot?style=flat-square&label=release" alt="Latest Release"></a>
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
19
|
An agentic production system for Ableton Live 12.<br>
|
|
20
|
-
|
|
20
|
+
317 tools. 43 domains. Device atlas. Splice integration. Auto-composition. Spectral perception. Technique memory.
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<br>
|
|
@@ -29,49 +29,90 @@
|
|
|
29
29
|
|
|
30
30
|
<br>
|
|
31
31
|
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## What LivePilot Does
|
|
35
|
+
|
|
36
|
+
Most MCP servers are tool collections — they execute commands. LivePilot is an **agentic production system**. It has six layers that work together:
|
|
37
|
+
|
|
38
|
+
| Layer | What it provides |
|
|
39
|
+
|-------|-----------------|
|
|
40
|
+
| **Deterministic Tools** | Direct control: transport, tracks, clips, notes, devices, scenes, mixing, arrangement, browser, automation |
|
|
41
|
+
| **Device Atlas** | Knowledge of every device in Ableton's library — 1305 devices indexed by name, URI, category, tag, and genre. 81 enriched with sonic intelligence. 683 drum kits mapped |
|
|
42
|
+
| **Sample Engine** | Three-source sample intelligence — searches Ableton's browser, your filesystem, and Splice's catalog simultaneously. 6 fitness critics score every result. 29 processing techniques |
|
|
43
|
+
| **Spectral Perception** | Real-time ears via M4L — 8-band FFT, RMS/peak metering, Krumhansl-Schmuckler key detection, pitch tracking. Closes the feedback loop so the AI hears its own changes |
|
|
44
|
+
| **Technique Memory** | Persistent library of production decisions. Save a beat pattern, device chain, or mix template. Recall by mood, genre, or texture across sessions |
|
|
45
|
+
| **Creative Intelligence** | 12 engines that understand song identity, learn your taste, diagnose stuck sessions, generate creative options, and evaluate results before claiming success |
|
|
46
|
+
|
|
47
|
+
<br>
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
32
51
|
## Architecture
|
|
33
52
|
|
|
34
53
|
```
|
|
35
|
-
|
|
36
|
-
│
|
|
37
|
-
│
|
|
38
|
-
│
|
|
39
|
-
│
|
|
40
|
-
│
|
|
41
|
-
│
|
|
42
|
-
│
|
|
43
|
-
│
|
|
44
|
-
│
|
|
45
|
-
│
|
|
46
|
-
│
|
|
47
|
-
│
|
|
48
|
-
│
|
|
49
|
-
│
|
|
50
|
-
│
|
|
51
|
-
│
|
|
52
|
-
│
|
|
53
|
-
│
|
|
54
|
-
│
|
|
55
|
-
│
|
|
56
|
-
│
|
|
57
|
-
│
|
|
58
|
-
│
|
|
59
|
-
│
|
|
60
|
-
│
|
|
61
|
-
│
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
54
|
+
┌──────────────────────────────────────────────────────────────────────┐
|
|
55
|
+
│ │
|
|
56
|
+
│ KNOWLEDGE PERCEPTION MEMORY │
|
|
57
|
+
│ ────────────── ────────────── ────────────── │
|
|
58
|
+
│ │
|
|
59
|
+
│ Device Atlas 8-band FFT recall by mood, │
|
|
60
|
+
│ 1305 devices RMS / peak genre, texture │
|
|
61
|
+
│ 81 enriched pitch tracking 29 techniques │
|
|
62
|
+
│ 683 drum kits key detection replay into session │
|
|
63
|
+
│ │
|
|
64
|
+
│ Sample Engine Corpus Intelligence Taste Graph │
|
|
65
|
+
│ Splice (local SQLite) EmotionalRecipe move preferences │
|
|
66
|
+
│ Browser search GenreChain device affinities │
|
|
67
|
+
│ Filesystem scan PhysicalModelRecipe novelty tolerance │
|
|
68
|
+
│ 6 fitness critics AutomationGesture │
|
|
69
|
+
│ │
|
|
70
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
71
|
+
│ │ Device │ │ M4L │ │ Technique │ │
|
|
72
|
+
│ │ Atlas │──│ Analyzer │──│ Memory │ │
|
|
73
|
+
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
|
|
74
|
+
│ │ │ │ │
|
|
75
|
+
│ ┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐ │
|
|
76
|
+
│ │ Sample │ │ Corpus │ │ Composer │ │
|
|
77
|
+
│ │ Engine │ │ Intelligence│ │ Engine │ │
|
|
78
|
+
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
|
|
79
|
+
│ └─────────────────┼──────────────────┘ │
|
|
80
|
+
│ ▼ │
|
|
81
|
+
│ ┌─────────────────┐ │
|
|
82
|
+
│ │ 317 MCP Tools │ │
|
|
83
|
+
│ │ 43 domains │ │
|
|
84
|
+
│ └────────┬────────┘ │
|
|
85
|
+
│ │ │
|
|
86
|
+
│ Remote Script ──┤── TCP 9878 │
|
|
87
|
+
│ M4L Bridge ─────┤── UDP 9880 / OSC 9881 │
|
|
88
|
+
│ Splice (local) ─┤── SQLite (downloaded samples) │
|
|
89
|
+
│ │ │
|
|
90
|
+
│ ┌────────────────┐ │
|
|
91
|
+
│ │ Ableton Live │ │
|
|
92
|
+
│ │ 12 │ │
|
|
93
|
+
│ └────────────────┘ │
|
|
94
|
+
└──────────────────────────────────────────────────────────────────────┘
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### How the pieces connect
|
|
98
|
+
|
|
99
|
+
**Remote Script** (`remote_script/LivePilot/`) — A Python ControlSurface that runs inside Ableton's process. Listens on TCP 9878. All Live Object Model calls execute on Ableton's main thread via `schedule_message`. Detects Ableton version at startup and enables three capability tiers: Core (12.0+), Enhanced Arrangement (12.1.10+), Full Intelligence (12.3+).
|
|
100
|
+
|
|
101
|
+
**MCP Server** (`mcp_server/`) — Python FastMCP server. Validates inputs, routes commands to the Remote Script over TCP, manages the M4L bridge, runs the atlas, sample engine, composer, and all intelligence engines. This is what your AI client connects to.
|
|
102
|
+
|
|
103
|
+
**M4L Bridge** (`m4l_device/`) — Optional Max for Live Audio Effect on the master track. Provides deep LOM access through Max's LiveAPI that the ControlSurface API can't reach. UDP 9880 (M4L to server) carries spectral data and LiveAPI responses. OSC 9881 (server to M4L) sends commands. 30 bridge tools (backed by 28 bridge commands) for hidden parameters, Simpler internals, warp markers, and display values.
|
|
104
|
+
|
|
105
|
+
**Device Atlas** (`mcp_server/atlas/`) — In-memory indexed JSON database. 1305 devices with browser URIs, 81 enriched with YAML sonic intelligence profiles (mood, genre, texture, recommended chains). 6 indexes: by_id, by_name, by_uri, by_category, by_tag, by_genre. The AI never hallucinates a device name or preset — it always resolves against the atlas first.
|
|
106
|
+
|
|
107
|
+
**Sample Engine** (`mcp_server/sample_engine/`) — Searches three sources simultaneously: BrowserSource (Ableton's library), SpliceSource (local Splice catalog via SQLite), FilesystemSource (user directories). Every result passes through a 6-critic fitness battery (key, tempo, spectral, genre, mood, technical). 29 processing techniques (Surgeon precision vs. Alchemist experimentation). Builds complete sample processing plans with warp, slice, and effect recommendations.
|
|
108
|
+
|
|
109
|
+
**Splice Client** (`mcp_server/splice_client/`) — Reads Splice's local SQLite database (`sounds.db`) for searching downloaded samples with full metadata (key, BPM, genre, tags). A gRPC client for the Splice desktop API exists but is not yet wired into the server lifespan — currently all Splice integration is local-only via SQLite. No API key needed.
|
|
110
|
+
|
|
111
|
+
**Composer** (`mcp_server/composer/`) — Prompt-to-plan pipeline. Parses natural language ("dark minimal techno 128bpm with industrial textures") into a CompositionIntent (genre, mood, tempo, key). Plans layers using role templates (kick, bass, percussion, texture, lead, pad, fx). Compiles to a step-by-step plan of tool calls that the agent executes. Does not execute autonomously — returns the plan. 7 genre defaults (techno, house, ambient, hip-hop, dnb, dub, experimental).
|
|
112
|
+
|
|
113
|
+
**Corpus** (`mcp_server/corpus/`) — Parsed device-knowledge markdown converted to queryable Python structures: EmotionalRecipe, GenreChain, PhysicalModelRecipe, AutomationGesture. Feeds Wonder Mode, Sound Design critics, and the Composer with deep creative knowledge at runtime — not just LLM prompts, actual structured data.
|
|
114
|
+
|
|
115
|
+
**Execution Router** (`mcp_server/runtime/execution_router.py`) — Classifies each step in a multi-step plan as remote_command (TCP to Ableton), bridge_command (OSC to M4L), or mcp_tool (internal), then dispatches it through the correct channel.
|
|
75
116
|
|
|
76
117
|
<br>
|
|
77
118
|
|
|
@@ -79,70 +120,51 @@ All three feed into 293 deterministic tools that execute on Ableton's main threa
|
|
|
79
120
|
|
|
80
121
|
## The Intelligence Layer
|
|
81
122
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
This is the V2 intelligence layer: 12 engines that sit on top of the 293 tools and give the AI musical judgment, not just musical execution.
|
|
123
|
+
12 engines sit on top of the 317 tools. They give the AI musical judgment, not just musical execution.
|
|
85
124
|
|
|
86
125
|
### SongBrain — What the Song Is
|
|
87
126
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
It detects when the song's identity is drifting — when recent edits are pulling the track away from what made it work. When identity confidence is high, the system makes bolder suggestions. When it's fragile, it protects what's there.
|
|
127
|
+
Builds a real-time model of the session: identity core (what defines this track), sacred elements (what must not be casually damaged), section purposes (what each part is doing emotionally), energy arc (where the song is heading). Detects identity drift when edits pull the track away from what made it work.
|
|
91
128
|
|
|
92
129
|
### Taste Graph — What You Like
|
|
93
130
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
Every time you accept or reject a suggestion, the graph updates. Over time, it personalizes which creative options are offered and how they're ranked. Two producers using the same tools get different recommendations.
|
|
131
|
+
Learns your production preferences across sessions. Tracks which move families you keep vs. undo, which devices you gravitate toward, how experimental you want suggestions (novelty band), and which dimensions you avoid. Every accept/reject updates the graph. Two producers using the same tools get different recommendations.
|
|
97
132
|
|
|
98
133
|
### Semantic Moves — Musical Actions, Not Parameters
|
|
99
134
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
Moves carry risk levels, target dimensions, and protection thresholds. "Add a filter sweep build" targets energy and tension while protecting clarity. The AI doesn't just know what to do — it knows what it's risking.
|
|
135
|
+
26+ high-level intents ("add contrast," "tighten the low end," "build tension") that compile into tool sequences. Each move carries a risk level, target dimensions, and protection thresholds. The AI knows what it's risking with every action.
|
|
103
136
|
|
|
104
137
|
### Wonder Mode — Stuck-Rescue Workflow
|
|
105
138
|
|
|
106
|
-
When a session is stuck —
|
|
107
|
-
|
|
108
|
-
1. **Diagnose** — Why is the session stuck? Repeated undos? Overpolished loop? Missing contrast? Identity unclear? The stuckness detector analyzes the action history and classifies the problem.
|
|
109
|
-
|
|
110
|
-
2. **Generate** — Based on the diagnosis, Wonder searches for semantic moves that address the specific problem. It enforces real distinctness — each variant must differ by move family or execution approach. If only one real option exists, it says so honestly instead of relabeling the same idea three times.
|
|
139
|
+
When a session is stuck — repeated undos, overpolished loops, no structural progress — Wonder Mode activates:
|
|
111
140
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
141
|
+
1. **Diagnose** — classify the stuckness (loop trap? missing contrast? identity unclear?)
|
|
142
|
+
2. **Generate** — find semantic moves that address the diagnosis, enforcing real distinctness
|
|
143
|
+
3. **Preview** — apply each variant, capture, undo. Hear before committing
|
|
144
|
+
4. **Commit or Reject** — choice recorded into taste and session continuity
|
|
115
145
|
|
|
116
146
|
### Creative Engines
|
|
117
147
|
|
|
118
|
-
Six specialized engines handle different aspects of production intelligence:
|
|
119
|
-
|
|
120
148
|
| Engine | What it does |
|
|
121
149
|
|--------|-------------|
|
|
122
|
-
| **Mix Engine** | Critic-driven
|
|
123
|
-
| **Sound Design Engine** | Analyzes patches for static timbre, missing modulation, weak transients. Suggests parameter moves
|
|
124
|
-
| **Transition Engine** | Classifies transition types (drop, build, breakdown). Scores
|
|
125
|
-
| **Composition Engine** |
|
|
126
|
-
| **Performance Engine** | Safety-constrained suggestions for live
|
|
127
|
-
| **Reference Engine** | Distills principles from reference tracks. Maps
|
|
128
|
-
|
|
129
|
-
### Hook Hunter — Finding What Matters
|
|
130
|
-
|
|
131
|
-
The Hook Hunter identifies the most salient musical idea in a session — the element listeners would remember. It ranks candidates by rhythmic distinctiveness, melodic contour, and repetition. Then it tracks whether hooks are being developed, neglected, or undermined by arrangement choices.
|
|
150
|
+
| **Mix Engine** | Critic-driven analysis: masking, headroom, stereo, dynamics. Plans corrective moves with before/after evaluation |
|
|
151
|
+
| **Sound Design Engine** | Analyzes patches for static timbre, missing modulation, weak transients. Suggests parameter moves |
|
|
152
|
+
| **Transition Engine** | Classifies transition types (drop, build, breakdown). Scores quality, plans improvements from archetypes |
|
|
153
|
+
| **Composition Engine** | Section analysis, motif detection, emotional arcs. Plans structural moves |
|
|
154
|
+
| **Performance Engine** | Safety-constrained suggestions for live sets. Knows which moves risk audio dropouts |
|
|
155
|
+
| **Reference Engine** | Distills principles from reference tracks. Maps them to your session as concrete moves |
|
|
132
156
|
|
|
133
|
-
|
|
157
|
+
### Hook Hunter
|
|
134
158
|
|
|
135
|
-
|
|
159
|
+
Identifies the most salient musical idea — ranks by rhythmic distinctiveness, melodic contour, repetition. Tracks whether hooks are developed, neglected, or undermined. Flags when a transition fails to deliver expected payoff.
|
|
136
160
|
|
|
137
|
-
Session Continuity
|
|
161
|
+
### Session Continuity
|
|
138
162
|
|
|
139
|
-
|
|
163
|
+
Maintains creative threads ("the chorus needs more lift") and turn resolutions across the session. When you return to a project: *"Last time, you kept the filter sweep for the bridge. The chorus lift thread is still open."*
|
|
140
164
|
|
|
141
|
-
### Evaluation Loop
|
|
165
|
+
### Evaluation Loop
|
|
142
166
|
|
|
143
|
-
Every
|
|
144
|
-
|
|
145
|
-
This closes the gap between "the AI did something" and "the AI did something that actually helped."
|
|
167
|
+
Every engine follows: **measure before → act → measure after → compare**. If a change made things worse (more masking, lost headroom, identity drift), the system flags it before you move on.
|
|
146
168
|
|
|
147
169
|
<br>
|
|
148
170
|
|
|
@@ -150,11 +172,11 @@ This closes the gap between "the AI did something" and "the AI did something tha
|
|
|
150
172
|
|
|
151
173
|
## Tools
|
|
152
174
|
|
|
153
|
-
|
|
175
|
+
317 tools across 43 domains. Highlights below — [full catalog here](docs/manual/tool-catalog.md).
|
|
154
176
|
|
|
155
177
|
<br>
|
|
156
178
|
|
|
157
|
-
### Core
|
|
179
|
+
### Core (210 tools)
|
|
158
180
|
|
|
159
181
|
| Domain | # | What it covers |
|
|
160
182
|
|--------|:-:|----------------|
|
|
@@ -162,21 +184,27 @@ This closes the gap between "the AI did something" and "the AI did something tha
|
|
|
162
184
|
| Tracks | 17 | create MIDI/audio/return, delete, duplicate, arm, mute, solo, color, freeze, flatten |
|
|
163
185
|
| Clips | 11 | create, delete, duplicate, fire, stop, loop, launch mode, warp mode, quantize |
|
|
164
186
|
| Notes | 8 | add/get/remove/modify MIDI notes, transpose, duplicate, per-note probability |
|
|
165
|
-
| Devices |
|
|
187
|
+
| Devices | 19 | load by name or URI, insert native (12.3+), get/set parameters, batch edit, racks, chains, drum chain note assignment, presets, plugin deep control |
|
|
166
188
|
| Scenes | 12 | create, delete, duplicate, fire, name, color, tempo, scene matrix |
|
|
167
189
|
| Browser | 4 | search library, browse tree, load items, filter by category |
|
|
168
190
|
| Mixing | 11 | volume, pan, sends, routing, meters, return tracks, master, full mix snapshot |
|
|
169
|
-
| Arrangement |
|
|
191
|
+
| Arrangement | 21 | timeline clips, native arrangement clips (12.1.10+), arrangement notes, automation, recording, cue points |
|
|
192
|
+
| Automation | 8 | 16 curve types, 15 recipes (filter sweep, sidechain pump, dub throw...), spectral suggestions |
|
|
193
|
+
| Theory | 7 | Krumhansl-Schmuckler key detection, Roman numeral analysis, species counterpoint, SATB harmonization |
|
|
194
|
+
| Harmony | 4 | neo-Riemannian PRL transforms, Tonnetz navigation, voice leading paths, chromatic mediants |
|
|
195
|
+
| Generative | 5 | Euclidean rhythm (Bjorklund), tintinnabuli (Arvo Part), phase shift (Steve Reich), additive process (Philip Glass) |
|
|
196
|
+
| Memory | 8 | save, recall, replay, manage production techniques by mood/genre/texture |
|
|
197
|
+
| MIDI I/O | 4 | export/import .mid, offline analysis, piano roll extraction |
|
|
198
|
+
| Perception | 4 | offline loudness (integrated LUFS, LRA), spectral analysis, reference comparison |
|
|
170
199
|
|
|
171
200
|
<br>
|
|
172
201
|
|
|
173
|
-
###
|
|
202
|
+
### M4L Bridge — 30 tools `[optional]`
|
|
174
203
|
|
|
175
|
-
The M4L Analyzer sits on the master track. UDP 9880 carries spectral data
|
|
176
|
-
from Max to the server. OSC 9881 sends commands back.
|
|
204
|
+
The M4L Analyzer sits on the master track. UDP 9880 carries spectral data to the server. OSC 9881 sends commands back.
|
|
177
205
|
|
|
178
206
|
> [!TIP]
|
|
179
|
-
> All
|
|
207
|
+
> All 286 core tools work without the analyzer — it adds 30 bridge tools and closes the feedback loop.
|
|
180
208
|
|
|
181
209
|
```
|
|
182
210
|
SPECTRAL ─────── 8-band frequency decomposition (sub → air)
|
|
@@ -198,225 +226,141 @@ WARP ─────────── get / add / move / remove markers
|
|
|
198
226
|
|
|
199
227
|
<br>
|
|
200
228
|
|
|
201
|
-
###
|
|
202
|
-
|
|
203
|
-
<details>
|
|
204
|
-
<summary><strong>Theory — 7 tools</strong></summary>
|
|
229
|
+
### Device Atlas — 6 tools
|
|
205
230
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
Krumhansl-Schmuckler key detection with 7 mode profiles:
|
|
209
|
-
major, minor, dorian, phrygian, lydian, mixolydian, locrian.
|
|
210
|
-
|
|
211
|
-
Roman numeral analysis via scale-degree chord matching
|
|
212
|
-
on a 1/32 note quantization grid.
|
|
213
|
-
|
|
214
|
-
Voice leading checks — parallel fifths, parallel octaves,
|
|
215
|
-
voice crossing, unresolved dominants.
|
|
216
|
-
|
|
217
|
-
Species counterpoint generation (1st and 2nd species).
|
|
218
|
-
SATB harmonization with smooth voice leading.
|
|
219
|
-
Diatonic transposition that preserves scale relationships.
|
|
231
|
+
The atlas is an in-memory indexed database of Ableton's entire device library.
|
|
220
232
|
|
|
221
233
|
```
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
234
|
+
1305 devices total
|
|
235
|
+
81 enriched with sonic intelligence (mood, genre, texture, chains)
|
|
236
|
+
683 drum kits mapped with note assignments
|
|
237
|
+
6 indexes: by_id, by_name, by_uri, by_category, by_tag, by_genre
|
|
225
238
|
```
|
|
226
239
|
|
|
227
|
-
</details>
|
|
228
|
-
|
|
229
|
-
<details>
|
|
230
|
-
<summary><strong>Harmony — 4 tools</strong></summary>
|
|
231
|
-
|
|
232
|
-
<br>
|
|
233
|
-
|
|
234
|
-
Neo-Riemannian PRL transforms on the Tonnetz.
|
|
235
|
-
|
|
236
240
|
```
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
241
|
+
atlas_search Search devices by name, category, or tag
|
|
242
|
+
atlas_suggest Suggest devices for a musical intent (e.g., "warm pad")
|
|
243
|
+
atlas_chain Build a device chain from a genre or purpose
|
|
244
|
+
atlas_compare Compare two devices side-by-side
|
|
245
|
+
atlas_detail Get full enriched profile for a device
|
|
246
|
+
atlas_library_scan Scan what's actually installed on this machine
|
|
240
247
|
```
|
|
241
248
|
|
|
242
|
-
All three are involutions — apply twice, return to origin.
|
|
243
|
-
|
|
244
|
-
BFS through PRL space finds the shortest voice-leading path
|
|
245
|
-
between any two triads. Cm to E major? That's PLP — the hexatonic pole.
|
|
246
|
-
Three steps, each moving one voice by a semitone.
|
|
247
|
-
The Hitchcock chord change.
|
|
248
|
-
|
|
249
|
-
Chromatic mediants for film-score harmony: chords a major/minor third away
|
|
250
|
-
sharing 0-1 common tones. Maximum color shift, minimal voice movement.
|
|
251
|
-
|
|
252
|
-
```
|
|
253
|
-
navigate_tonnetz find_voice_leading_path
|
|
254
|
-
classify_progression suggest_chromatic_mediants
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
</details>
|
|
258
|
-
|
|
259
|
-
<details>
|
|
260
|
-
<summary><strong>Generative — 5 tools</strong></summary>
|
|
261
|
-
|
|
262
|
-
<br>
|
|
263
|
-
|
|
264
|
-
**Euclidean Rhythm** — Bjorklund distributes N pulses across M steps.
|
|
265
|
-
Bresenham's line algorithm applied to rhythm.
|
|
266
|
-
|
|
267
|
-
```
|
|
268
|
-
E(3,8) = tresillo ×··×··×·
|
|
269
|
-
E(5,8) = cinquillo ×·××·××·
|
|
270
|
-
E(7,16) = Brazilian necklace ×·×·×××·×·×·×××·
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
Layer multiple patterns at different pitches for polyrhythmic textures.
|
|
274
|
-
|
|
275
|
-
**Tintinnabuli** (Arvo Pärt) — for each melody note, find the nearest tone
|
|
276
|
-
of a specified triad. Two voices, one rule, infinite music.
|
|
277
|
-
|
|
278
|
-
**Phase Shifting** (Steve Reich) — identical voices with accumulating timing drift.
|
|
279
|
-
They start in unison, gradually separate, and eventually realign.
|
|
280
|
-
|
|
281
|
-
**Additive Process** (Philip Glass) — melody unfolds note by note.
|
|
282
|
-
The structure *is* the composition.
|
|
283
|
-
|
|
284
|
-
```
|
|
285
|
-
generate_euclidean_rhythm layer_euclidean_rhythms
|
|
286
|
-
generate_tintinnabuli generate_phase_shift
|
|
287
|
-
generate_additive_process
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
</details>
|
|
291
|
-
|
|
292
|
-
<details>
|
|
293
|
-
<summary><strong>Automation — 8 tools</strong></summary>
|
|
294
|
-
|
|
295
249
|
<br>
|
|
296
250
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
```
|
|
300
|
-
BASIC ──────────── linear · exponential · logarithmic · s_curve
|
|
301
|
-
sine · sawtooth · spike · square · steps
|
|
302
|
-
|
|
303
|
-
ORGANIC ─────────── perlin · brownian · spring
|
|
251
|
+
### Sample Engine — 6 tools
|
|
304
252
|
|
|
305
|
-
|
|
306
|
-
(bounce, elastic, back, quad, cubic,
|
|
307
|
-
quart, quint, expo)
|
|
253
|
+
Three-source sample intelligence with critic-driven fitness scoring.
|
|
308
254
|
|
|
309
|
-
GENERATIVE ─────── euclidean · stochastic
|
|
310
255
|
```
|
|
256
|
+
SOURCES ─────────── BrowserSource (Ableton's built-in library)
|
|
257
|
+
SpliceSource (local Splice catalog via SQLite)
|
|
258
|
+
FilesystemSource (user-specified directories)
|
|
311
259
|
|
|
312
|
-
|
|
260
|
+
CRITICS ─────────── key fitness · tempo fitness · spectral match
|
|
261
|
+
genre alignment · mood alignment · technical quality
|
|
313
262
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
fade_in fade_out tremolo
|
|
318
|
-
auto_pan stutter breathing
|
|
319
|
-
washout vinyl_crackle stereo_narrow
|
|
263
|
+
TECHNIQUES ─────── 29 processing recipes:
|
|
264
|
+
Surgeon (precise, transparent) vs.
|
|
265
|
+
Alchemist (experimental, transformative)
|
|
320
266
|
```
|
|
321
267
|
|
|
322
|
-
Perception-action loop: `analyze_for_automation` reads the spectrum
|
|
323
|
-
and device chain, suggests what to automate, and maps each suggestion
|
|
324
|
-
to a recipe.
|
|
325
|
-
|
|
326
268
|
```
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
269
|
+
analyze_sample Build a complete SampleProfile (material, key, BPM, spectral)
|
|
270
|
+
search_samples Multi-source search with critic scoring
|
|
271
|
+
suggest_sample_move Recommend processing technique for a sample
|
|
272
|
+
build_sample_plan Full processing pipeline: warp + slice + effects
|
|
273
|
+
list_sample_techniques Browse the 29-technique library
|
|
274
|
+
get_sample_technique Get detailed recipe for a specific technique
|
|
330
275
|
```
|
|
331
276
|
|
|
332
|
-
</details>
|
|
333
|
-
|
|
334
|
-
<details>
|
|
335
|
-
<summary><strong>Memory — 8 tools</strong></summary>
|
|
336
|
-
|
|
337
277
|
<br>
|
|
338
278
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
Five types: `beat_pattern` · `device_chain` · `mix_template` · `preference` · `browser_pin`
|
|
279
|
+
### Splice Integration
|
|
342
280
|
|
|
343
|
-
|
|
344
|
-
- **Identity** — name, tags, timestamps
|
|
345
|
-
- **Qualities** — mood, genre, texture, production notes
|
|
346
|
-
- **Payload** — raw MIDI, device params, tempo, URIs
|
|
281
|
+
LivePilot reads Splice's local SQLite database to search your downloaded samples with full metadata. No API key needed — it reads the database file directly.
|
|
347
282
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
memory_update memory_delete memory_favorite memory_replay
|
|
353
|
-
```
|
|
283
|
+
**What it does:**
|
|
284
|
+
- Searches your downloaded Splice samples with key, BPM, genre, and tag metadata
|
|
285
|
+
- Integrates as a third source alongside Ableton's browser and filesystem scanning
|
|
286
|
+
- Works without a Splice subscription — any previously downloaded samples are searchable
|
|
354
287
|
|
|
355
|
-
|
|
288
|
+
**How it works:** The Sample Engine's `SpliceSource` reads `~/Library/Application Support/com.splice.Splice/users/default/*/sounds.db` — Splice's local SQLite catalog of downloaded samples. Read-only, no network calls.
|
|
356
289
|
|
|
357
|
-
|
|
358
|
-
<summary><strong>MIDI I/O — 4 tools</strong></summary>
|
|
290
|
+
**Requirements:** Splice desktop app installed with some downloaded samples. A gRPC client for Splice's live API exists in `mcp_server/splice_client/` but is not yet wired into the server runtime.
|
|
359
291
|
|
|
360
292
|
<br>
|
|
361
293
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
294
|
+
### Composer — 3 tools
|
|
295
|
+
|
|
296
|
+
Prompt-to-plan auto-composition engine.
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
"dark minimal techno 128bpm with industrial textures and ghostly vocals"
|
|
300
|
+
│
|
|
301
|
+
▼
|
|
302
|
+
┌─────────────────┐
|
|
303
|
+
│ Prompt Parser │ → CompositionIntent (genre, mood, tempo, key)
|
|
304
|
+
└────────┬────────┘
|
|
305
|
+
▼
|
|
306
|
+
┌─────────────────┐
|
|
307
|
+
│ Layer Planner │ → role templates (kick, bass, perc, texture, lead, pad, fx)
|
|
308
|
+
└────────┬────────┘
|
|
309
|
+
▼
|
|
310
|
+
┌─────────────────┐
|
|
311
|
+
│ Plan Compiler │ → executable tool sequences
|
|
312
|
+
└────────┬────────┘
|
|
313
|
+
▼
|
|
314
|
+
┌─────────────────┐
|
|
315
|
+
│ Execution Router │ → dispatches: create tracks, search samples, load devices,
|
|
316
|
+
│ │ program notes, set volumes, build arrangement
|
|
317
|
+
└─────────────────┘
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
- 7 genre defaults: techno, house, ambient, hip-hop, dnb, dub, experimental
|
|
321
|
+
- Returns step-by-step plans — the agent executes each tool call in sequence
|
|
322
|
+
- `compose` — plan a multi-layer composition from text prompt
|
|
323
|
+
- `augment_with_samples` — plan sample-based layers for existing session
|
|
324
|
+
- `get_composition_plan` — dry-run preview (see the plan without credit checks)
|
|
380
325
|
|
|
381
326
|
<br>
|
|
382
327
|
|
|
383
|
-
|
|
328
|
+
### Device Forge — 3 tools
|
|
329
|
+
|
|
330
|
+
Generate M4L audio effect devices from `gen~` templates and install them into Ableton's browser.
|
|
384
331
|
|
|
385
332
|
```
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
read_audio_metadata Format, duration, sample rate, tags
|
|
333
|
+
forge_device Generate a device from a gen~ template
|
|
334
|
+
forge_list_templates Browse available gen~ templates
|
|
335
|
+
forge_install Install generated device to browser
|
|
390
336
|
```
|
|
391
337
|
|
|
392
|
-
</details>
|
|
393
|
-
|
|
394
338
|
<br>
|
|
395
339
|
|
|
396
|
-
### Agentic Intelligence —
|
|
340
|
+
### Agentic Intelligence — 79 tools
|
|
397
341
|
|
|
398
|
-
The V2 intelligence layer. These tools
|
|
342
|
+
The V2 intelligence layer. These tools analyze, diagnose, plan, evaluate, and learn.
|
|
399
343
|
|
|
400
344
|
| Domain | # | What it does |
|
|
401
345
|
|--------|:-:|-------------|
|
|
402
346
|
| Agent OS | 8 | session kernel, action ledger, capability state, routing, turn budget |
|
|
403
|
-
| Composition | 9 | section analysis, motif detection, emotional arc, form planning
|
|
347
|
+
| Composition | 9 | section analysis, motif detection, emotional arc, form planning |
|
|
404
348
|
| Evaluation | 1 | before/after evaluation with structured scoring |
|
|
405
|
-
| Mix Engine | 6 | critic-driven mix analysis,
|
|
406
|
-
| Sound Design |
|
|
349
|
+
| Mix Engine | 6 | critic-driven mix analysis, masking, headroom, stereo, dynamics |
|
|
350
|
+
| Sound Design | 4 | patch analysis, modulation planning, timbre scoring |
|
|
407
351
|
| Transition Engine | 5 | transition classification, scoring, archetype-based planning |
|
|
408
|
-
| Reference Engine | 5 | reference profiling, principle distillation, gap analysis
|
|
352
|
+
| Reference Engine | 5 | reference profiling, principle distillation, gap analysis |
|
|
409
353
|
| Translation Engine | 3 | cross-domain translation, issue detection |
|
|
410
|
-
| Performance Engine |
|
|
411
|
-
| Song Brain |
|
|
412
|
-
| Hook Hunter | 9 | hook detection, salience scoring,
|
|
413
|
-
| Stuckness Detector | 3 | momentum analysis, rescue classification,
|
|
414
|
-
| Wonder Mode | 3 | diagnosis-driven
|
|
415
|
-
| Session Continuity | 7 | creative threads, turn resolution,
|
|
416
|
-
| Creative Constraints | 5 | constraint activation, reference-inspired variants
|
|
417
|
-
| Preview Studio | 5 | variant creation, preview rendering, comparison, commit
|
|
354
|
+
| Performance Engine | 3 | safety-constrained suggestions, safe moves, scene handoff |
|
|
355
|
+
| Song Brain | 3 | identity inference, sacred elements, drift monitoring |
|
|
356
|
+
| Hook Hunter | 9 | hook detection, salience scoring, neglect detection, phrase impact |
|
|
357
|
+
| Stuckness Detector | 3 | momentum analysis, rescue classification, rescue workflows |
|
|
358
|
+
| Wonder Mode | 3 | diagnosis-driven variants, taste-aware ranking |
|
|
359
|
+
| Session Continuity | 7 | creative threads, turn resolution, session story |
|
|
360
|
+
| Creative Constraints | 5 | constraint activation, reference-inspired variants |
|
|
361
|
+
| Preview Studio | 5 | variant creation, preview rendering, comparison, commit |
|
|
418
362
|
|
|
419
|
-
> **[View all
|
|
363
|
+
> **[View all 317 tools →](docs/manual/tool-catalog.md)**
|
|
420
364
|
|
|
421
365
|
<br>
|
|
422
366
|
|
|
@@ -442,7 +386,7 @@ Claude Desktop installs everything automatically. Then:
|
|
|
442
386
|
npx livepilot --setup
|
|
443
387
|
```
|
|
444
388
|
|
|
445
|
-
|
|
389
|
+
Runs the full setup wizard: checks Python, installs the Remote Script, creates the Python environment, copies the M4L Analyzer, and tests the Ableton connection.
|
|
446
390
|
|
|
447
391
|
### Manual: Step by Step
|
|
448
392
|
|
|
@@ -466,6 +410,11 @@ claude mcp add LivePilot -- npx livepilot
|
|
|
466
410
|
claude plugin add github:dreamrec/LivePilot/plugin
|
|
467
411
|
```
|
|
468
412
|
|
|
413
|
+
**Codex App:**
|
|
414
|
+
```bash
|
|
415
|
+
npx livepilot --install-codex-plugin
|
|
416
|
+
```
|
|
417
|
+
|
|
469
418
|
**Claude Desktop (macOS)** — `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
470
419
|
```json
|
|
471
420
|
{
|
|
@@ -510,20 +459,27 @@ livepilot --install
|
|
|
510
459
|
</details>
|
|
511
460
|
|
|
512
461
|
<details>
|
|
513
|
-
<summary><strong>3. M4L Analyzer (optional)</strong></summary>
|
|
462
|
+
<summary><strong>3. M4L Analyzer (optional — adds 27 tools)</strong></summary>
|
|
514
463
|
|
|
515
464
|
Drag `LivePilot_Analyzer.amxd` onto the master track for real-time spectral analysis.
|
|
516
465
|
The `--setup` wizard and Desktop Extension do this automatically.
|
|
517
466
|
|
|
467
|
+
> **Important:** The Analyzer must be the LAST device on the master track — after all effects (EQ, Compressor, Utility) so it reads the final output signal.
|
|
468
|
+
|
|
518
469
|
</details>
|
|
519
470
|
|
|
520
|
-
|
|
521
|
-
|
|
471
|
+
<details>
|
|
472
|
+
<summary><strong>4. Splice (optional — adds sample catalog)</strong></summary>
|
|
473
|
+
|
|
474
|
+
If you have Splice installed with downloaded samples, the Sample Engine can search them with full metadata (key, BPM, genre, tags) via the local SQLite database.
|
|
475
|
+
|
|
476
|
+
No API key, no configuration — the Sample Engine reads Splice's `sounds.db` file directly.
|
|
522
477
|
|
|
523
|
-
|
|
524
|
-
|
|
478
|
+
Without Splice, the Sample Engine still searches Ableton's browser and your filesystem.
|
|
479
|
+
|
|
480
|
+
</details>
|
|
525
481
|
|
|
526
|
-
###
|
|
482
|
+
### Verify
|
|
527
483
|
|
|
528
484
|
```bash
|
|
529
485
|
npx livepilot --status
|
|
@@ -535,6 +491,14 @@ npx livepilot --status
|
|
|
535
491
|
|
|
536
492
|
## Plugin
|
|
537
493
|
|
|
494
|
+
**Codex App**
|
|
495
|
+
|
|
496
|
+
```bash
|
|
497
|
+
npx livepilot --install-codex-plugin
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
**Claude Code**
|
|
501
|
+
|
|
538
502
|
```bash
|
|
539
503
|
claude plugin add github:dreamrec/LivePilot/plugin
|
|
540
504
|
```
|
|
@@ -543,15 +507,19 @@ claude plugin add github:dreamrec/LivePilot/plugin
|
|
|
543
507
|
|---------|------|
|
|
544
508
|
| `/session` | Full session overview with diagnostics |
|
|
545
509
|
| `/beat` | Guided beat creation |
|
|
510
|
+
| `/arrange` | Guided arrangement and song structure |
|
|
546
511
|
| `/mix` | Mixing assistant |
|
|
547
512
|
| `/sounddesign` | Sound design workflow |
|
|
513
|
+
| `/perform` | Live performance mode with safety constraints |
|
|
514
|
+
| `/evaluate` | Before/after evaluation of recent changes |
|
|
548
515
|
| `/memory` | Technique library management |
|
|
549
516
|
|
|
550
517
|
**Producer Agent** — autonomous multi-step production.
|
|
551
518
|
Consults memory for style context, searches the atlas for instruments,
|
|
552
|
-
creates tracks, programs MIDI, chains effects,
|
|
519
|
+
searches samples, creates tracks, programs MIDI, chains effects,
|
|
520
|
+
reads the spectrum to verify, and arranges sections.
|
|
553
521
|
|
|
554
|
-
**Core Skill** — operational discipline connecting all
|
|
522
|
+
**Core Skill** — operational discipline connecting all layers.
|
|
555
523
|
Consult atlas before loading. Read analyzer after mixing.
|
|
556
524
|
Check memory before creative decisions. Verify every mutation.
|
|
557
525
|
|
|
@@ -563,8 +531,11 @@ Check memory before creative decisions. Verify every mutation.
|
|
|
563
531
|
|
|
564
532
|
```bash
|
|
565
533
|
npx livepilot # Start MCP server (stdio)
|
|
534
|
+
npx livepilot --setup # Full setup wizard
|
|
566
535
|
npx livepilot --install # Install Remote Script
|
|
567
536
|
npx livepilot --uninstall # Remove Remote Script
|
|
537
|
+
npx livepilot --install-codex-plugin # Install bundled Codex plugin
|
|
538
|
+
npx livepilot --uninstall-codex-plugin # Remove bundled Codex plugin
|
|
568
539
|
npx livepilot --status # Check Ableton connection
|
|
569
540
|
npx livepilot --doctor # Full diagnostic check
|
|
570
541
|
npx livepilot --version # Show version
|
|
@@ -576,10 +547,18 @@ npx livepilot --version # Show version
|
|
|
576
547
|
|
|
577
548
|
## Compatibility
|
|
578
549
|
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
550
|
+
| Requirement | Minimum |
|
|
551
|
+
|-------------|---------|
|
|
552
|
+
| Ableton Live | **12** (any edition). Suite required for Max for Live bridge and stock instruments |
|
|
553
|
+
| Python | 3.9+ |
|
|
554
|
+
| Node.js | 18+ |
|
|
555
|
+
| OS | macOS / Windows |
|
|
556
|
+
| Splice | Desktop app with downloaded samples (optional — enables SQLite metadata search) |
|
|
557
|
+
|
|
558
|
+
**Version tiers:**
|
|
559
|
+
- **Core (12.0+):** All session tools, mixing, devices, MIDI, theory, generative, memory
|
|
560
|
+
- **Enhanced Arrangement (12.1.10+):** Native arrangement clips, arrangement automation
|
|
561
|
+
- **Full Intelligence (12.3+):** `insert_device_native`, complete device insertion pipeline
|
|
583
562
|
|
|
584
563
|
<br>
|
|
585
564
|
|
|
@@ -600,6 +579,28 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details, code guidelines
|
|
|
600
579
|
|
|
601
580
|
---
|
|
602
581
|
|
|
582
|
+
## Documentation
|
|
583
|
+
|
|
584
|
+
| Document | What's inside |
|
|
585
|
+
|----------|---------------|
|
|
586
|
+
| [Manual](docs/manual/index.md) | Complete reference: architecture, all 317 tools, workflows |
|
|
587
|
+
| [Intelligence Layer](docs/manual/intelligence.md) | How the 12 engines connect — conductor, moves, preview, evaluation |
|
|
588
|
+
| [Device Atlas](docs/manual/device-atlas.md) | 1305 devices indexed — search, suggest, chain building |
|
|
589
|
+
| [Samples & Slicing](docs/manual/samples.md) | 3-source search, fitness critics, slice workflows |
|
|
590
|
+
| [Automation](docs/manual/automation.md) | 16 curve types, 15 recipes, spectral suggestions |
|
|
591
|
+
| [Composition](docs/manual/composition.md) | Composer, section analysis, arrangement planning |
|
|
592
|
+
| [Getting Started](docs/manual/getting-started.md) | Zero to sound in five minutes |
|
|
593
|
+
| [Workflows](docs/manual/workflows.md) | Beats, session setup, sound design, arrangement, mixing |
|
|
594
|
+
| [MIDI Guide](docs/manual/midi-guide.md) | Drum patterns, scales, chords, humanization |
|
|
595
|
+
| [Sound Design](docs/manual/sound-design.md) | Instruments, effects, parameter recipes |
|
|
596
|
+
| [Mixing](docs/manual/mixing.md) | Gain staging, EQ, compression, sends, stereo width |
|
|
597
|
+
| [M4L Bridge](docs/M4L_BRIDGE.md) | Technical reference for the Max for Live analyzer |
|
|
598
|
+
| [Troubleshooting](docs/manual/troubleshooting.md) | Connection issues, common errors, diagnostics |
|
|
599
|
+
|
|
600
|
+
<br>
|
|
601
|
+
|
|
602
|
+
---
|
|
603
|
+
|
|
603
604
|
## Community
|
|
604
605
|
|
|
605
606
|
- [Discussions](https://github.com/dreamrec/LivePilot/discussions) — questions, ideas, show & tell
|
|
@@ -612,8 +613,22 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details, code guidelines
|
|
|
612
613
|
|
|
613
614
|
---
|
|
614
615
|
|
|
616
|
+
## Support
|
|
617
|
+
|
|
618
|
+
LivePilot is source-available under the [Business Source License 1.1](LICENSE). If it saves you time in your sessions:
|
|
619
|
+
|
|
620
|
+
<p align="center">
|
|
621
|
+
<a href="https://github.com/sponsors/dreamrec"><strong>Sponsor on GitHub</strong></a>
|
|
622
|
+
</p>
|
|
623
|
+
|
|
624
|
+
Sponsors get early access to new features, premium skills, curated technique libraries, and direct support.
|
|
625
|
+
|
|
626
|
+
<br>
|
|
627
|
+
|
|
628
|
+
---
|
|
629
|
+
|
|
615
630
|
<p align="center">
|
|
616
|
-
<a href="LICENSE">
|
|
631
|
+
<a href="LICENSE">BSL-1.1</a> — Pilot Studio
|
|
617
632
|
<br><br>
|
|
618
633
|
Sister projects: <a href="https://github.com/dreamrec/TDPilot">TDPilot</a> (TouchDesigner) · <a href="https://github.com/dreamrec/ComfyPilot">ComfyPilot</a> (ComfyUI)
|
|
619
634
|
</p>
|