livepilot 1.26.1 → 1.27.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.
Files changed (44) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +9 -8
  3. package/livepilot/.Codex-plugin/plugin.json +2 -2
  4. package/livepilot/.claude-plugin/plugin.json +2 -2
  5. package/livepilot/agents/livepilot-producer/AGENT.md +2 -2
  6. package/livepilot/commands/beat.md +3 -3
  7. package/livepilot/commands/evaluate.md +3 -1
  8. package/livepilot/commands/mix.md +2 -2
  9. package/livepilot/commands/sounddesign.md +2 -2
  10. package/livepilot/skills/livepilot-core/SKILL.md +10 -10
  11. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +2 -1
  12. package/livepilot/skills/livepilot-core/references/overview.md +5 -3
  13. package/livepilot/skills/livepilot-core/references/sound-design.md +5 -2
  14. package/livepilot/skills/livepilot-creative-director/SKILL.md +43 -0
  15. package/livepilot/skills/livepilot-creative-director/references/move-family-diversity-rule.md +1 -1
  16. package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +15 -9
  17. package/livepilot/skills/livepilot-mix-engine/SKILL.md +9 -1
  18. package/livepilot/skills/livepilot-mixing/SKILL.md +12 -5
  19. package/livepilot/skills/livepilot-release/SKILL.md +9 -7
  20. package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +25 -3
  21. package/m4l_device/LivePilot_Analyzer.amxd +0 -0
  22. package/m4l_device/livepilot_bridge.js +1 -1
  23. package/mcp_server/__init__.py +1 -1
  24. package/mcp_server/composer/full/brief_builder.py +9 -0
  25. package/mcp_server/evaluation/feature_extractors.py +152 -8
  26. package/mcp_server/mix_engine/state_builder.py +19 -2
  27. package/mcp_server/mix_engine/tools.py +22 -0
  28. package/mcp_server/runtime/capability_probe.py +1 -1
  29. package/mcp_server/runtime/capability_state.py +66 -9
  30. package/mcp_server/runtime/live_version.py +18 -0
  31. package/mcp_server/runtime/session_kernel.py +7 -0
  32. package/mcp_server/runtime/tools.py +324 -22
  33. package/mcp_server/sound_design/tools.py +33 -0
  34. package/mcp_server/tools/_agent_os_engine/evaluation.py +7 -44
  35. package/mcp_server/tools/_agent_os_engine/models.py +2 -1
  36. package/mcp_server/tools/_conductor.py +5 -2
  37. package/mcp_server/tools/_evaluation_contracts.py +1 -1
  38. package/mcp_server/tools/_snapshot_normalizer.py +32 -3
  39. package/mcp_server/tools/analyzer.py +38 -1
  40. package/package.json +2 -2
  41. package/remote_script/LivePilot/__init__.py +1 -1
  42. package/remote_script/LivePilot/version_detect.py +3 -0
  43. package/requirements.txt +3 -3
  44. package/server.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,66 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.27.0 — 2026-06-16
4
+
5
+ Probe-first Live 12.4 capability release.
6
+
7
+ ### Added
8
+
9
+ - Added read-only `probe_link_audio()` and `probe_stem_workflow()` runtime tools. They report observed capability modes and reasons without invoking UI scripting, menu automation, or destructive stem operations.
10
+ - Added `link_audio` and `stem_workflow` capability domains to `get_capability_state()` and `get_session_kernel()`. Both default to `manual_only` unless a real probe supplies routable/callable evidence.
11
+ - Added Live 12.4 version flags for Link Audio, selected-time stem separation, and merge-selected-stems while keeping workflow support probe-gated.
12
+ - Added `operation_profile` to the session kernel with `studio_deep` as the legacy default and profile names for `safe_live`, `arrangement_build`, `sound_design_deep`, and `release_audit`.
13
+
14
+ ### Changed
15
+
16
+ - `replace_simpler_sample()` and `load_sample_to_simpler()` now report `native_attempted`, `bridge_attempted`, and `fallback_reason` so native-vs-bridge behavior is observable during Live 12.4 sample workflows.
17
+ - Creative Director guidance now includes a Producer Decision Center: library hunt before loading, inspect enriched atlas hits, avoid Analog/Poli/Drift filler unless explicitly requested, and require instrument/source-level programming before effects-only polish.
18
+ - Capability-mode docs now describe the new Link Audio and stem workflow probe domains instead of treating them as undocumented future work.
19
+
20
+ ### Tests
21
+
22
+ - Added coverage for Live 12.4 version flags, Link/stem capability domains and probe tools, session-kernel operation profiles, sample fallback reporting, and Producer Decision Center contract text.
23
+
24
+ ## v1.26.3 — 2026-06-16
25
+
26
+ Truth/knowledge patch for Live 12.4.2, local Codex plugin sync, and runtime capability reporting.
27
+
28
+ ### Fixed
29
+
30
+ - Runtime FluCoMa capability probing now checks the Max/FluCoMa package and live M4L streams instead of a nonexistent Python `flucoma` module, so installed-but-bridge-blocked systems report `flucoma_bridge_unavailable` or `flucoma_no_streams` instead of the misleading `flucoma_not_installed`.
31
+ - Metadata drift checks now cover `AGENTS.md` bridge-command claims and the runtime capability probe's analyzer-tool unavailable message.
32
+ - README compatibility docs now advertise all four Live 12 capability tiers, including the Live 12.4+ Collaborative tier for native Simpler sample replacement.
33
+ - M4L bridge docs and operating contracts now distinguish the M4L `replace_sample` empty-Simpler limitation from the Live 12.4+ native `replace_sample_native` route.
34
+
35
+ ### Added
36
+
37
+ - Added `scripts/verify_codex_plugin_sync.py` to verify the local Codex plugin active dir, versioned cache dir, mirrored manifests, `.mcp.json`, payload directories, and Local Plugins marketplace entry.
38
+
39
+ ### Changed
40
+
41
+ - Refreshed Live 12.4.2 knowledge notes for Link Audio, stem-selection workflows, Erosion, Chorus-Ensemble, Delay LFOs, Max 9.1.4, and `SimplerDevice.replace_sample`, while keeping unprobed Link Audio/stem workflows marked as future LivePilot work.
42
+
43
+ ### Tests
44
+
45
+ - Added drift guards for AGENTS bridge-command claims, analyzer-tool capability probe text, README Live tier docs, and Codex plugin sync verification.
46
+
47
+ ## v1.26.2 — 2026-05-27
48
+
49
+ Patch release for Claude/Codex plugin instruction correctness and local install reliability.
50
+
51
+ ### Fixed
52
+
53
+ - Claude/Codex plugin commands now use `ensure_analyzer_on_master` instead of direct master-track analyzer loading, preserving the invariant that `LivePilot_Analyzer` measures the final post-master-chain signal.
54
+ - `/beat` now builds the master processing chain before ensuring the analyzer, preventing pre-effect spectral/RMS reads in fresh sessions.
55
+ - V2 semantic-move guidance now matches runtime behavior: `apply_semantic_move(mode="improve")` compiles an approval-ready plan and does not execute until the returned steps are run.
56
+ - Plugin device-loading guidance now routes through the Device Atlas first, then exact browser URI loading, with `find_and_load_device` reserved for simple built-in effects.
57
+ - Release checklist stale claims were corrected: removed the obsolete non-analyzer subtotal and updated the domain-list reminder from 45 to 56 domains.
58
+ - Producer-agent capability guidance now distinguishes stale/intermittent analyzer data (`measured_degraded`) from analyzer absence (`judgment_only`).
59
+
60
+ ### Tests
61
+
62
+ - Added `tests/test_plugin_instruction_contracts.py` to prevent regressions in analyzer preflight guidance, semantic-move approval semantics, release-count claims, and core-skill enriched-device metadata coverage.
63
+
3
64
  ## v1.26.1 — 2026-05-24
4
65
 
5
66
  Patch release for installer/release hygiene and live execution correctness.
package/README.md CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  <p align="center">
19
19
  An agentic production system for Ableton Live 12.<br>
20
- 465 tools. 56 domains. Device atlas. Plan-aware Splice integration. Auto-composition. Spectral perception. Technique memory. Drum-rack pad builder. Live dead-device detection.
20
+ 467 tools. 56 domains. Device atlas. Plan-aware Splice integration. Auto-composition. Spectral perception. Technique memory. Drum-rack pad builder. Live dead-device detection.
21
21
  </p>
22
22
 
23
23
  <br>
@@ -59,7 +59,7 @@ Most MCP servers are tool collections — they execute commands. LivePilot is an
59
59
 
60
60
  ## Two Ways to Talk to LivePilot
61
61
 
62
- Pick whichever is faster for the idea in your head — both reach the same 465-tool surface.
62
+ Pick whichever is faster for the idea in your head — both reach the same 467-tool surface.
63
63
 
64
64
  ### Route A — Artist / aesthetic shorthand
65
65
 
@@ -112,7 +112,7 @@ Most sessions do both. Lead with shorthand to anchor the aesthetic, then refine
112
112
  │ └─────────────────┼──────────────────┘ │
113
113
  │ ▼ │
114
114
  │ ┌─────────────────┐ │
115
- │ │ 465 MCP Tools │ │
115
+ │ │ 467 MCP Tools │ │
116
116
  │ │ 56 domains │ │
117
117
  │ └────────┬────────┘ │
118
118
  │ │ │
@@ -129,7 +129,7 @@ Most sessions do both. Lead with shorthand to anchor the aesthetic, then refine
129
129
 
130
130
  ### How the pieces connect
131
131
 
132
- **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+).
132
+ **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 four capability tiers: Core (12.0+), Enhanced Arrangement (12.1.10+), Full Intelligence (12.3+), Collaborative (12.4+).
133
133
 
134
134
  **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.
135
135
 
@@ -153,7 +153,7 @@ Most sessions do both. Lead with shorthand to anchor the aesthetic, then refine
153
153
 
154
154
  ## The Intelligence Layer
155
155
 
156
- 12 engines sit on top of the 465 tools. They give the AI musical judgment, not just musical execution.
156
+ 12 engines sit on top of the 467 tools. They give the AI musical judgment, not just musical execution.
157
157
 
158
158
  ### SongBrain — What the Song Is
159
159
 
@@ -205,7 +205,7 @@ Every engine follows: **measure before → act → measure after → compare**.
205
205
 
206
206
  ## Tools
207
207
 
208
- 465 tools across 56 domains. Highlights below — [full catalog here](docs/manual/tool-catalog.md).
208
+ 467 tools across 56 domains. Highlights below — [full catalog here](docs/manual/tool-catalog.md).
209
209
 
210
210
  <br>
211
211
 
@@ -540,7 +540,7 @@ The V2 intelligence layer. These tools analyze, diagnose, plan, evaluate, and le
540
540
  | Creative Constraints | 5 | constraint activation, reference-inspired variants |
541
541
  | Preview Studio | 5 | variant creation, preview rendering, comparison, commit |
542
542
 
543
- > **[View all 465 tools →](docs/manual/tool-catalog.md)**
543
+ > **[View all 467 tools →](docs/manual/tool-catalog.md)**
544
544
 
545
545
  <br>
546
546
 
@@ -741,6 +741,7 @@ npx livepilot --version # Show version
741
741
  - **Core (12.0+):** All session tools, mixing, devices, MIDI, theory, generative, memory
742
742
  - **Enhanced Arrangement (12.1.10+):** Native arrangement clips, arrangement automation
743
743
  - **Full Intelligence (12.3+):** `insert_device_native`, complete device insertion pipeline
744
+ - **Collaborative (12.4+):** `replace_sample_native` and newer sample-editing routes that bypass the M4L fallback when Live exposes a native LOM path
744
745
 
745
746
  <br>
746
747
 
@@ -767,7 +768,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details, code guidelines
767
768
 
768
769
  | Document | What's inside |
769
770
  |----------|---------------|
770
- | [Manual](docs/manual/index.md) | Complete reference: architecture, all 465 tools, workflows |
771
+ | [Manual](docs/manual/index.md) | Complete reference: architecture, all 467 tools, workflows |
771
772
  | [Intelligence Layer](docs/manual/intelligence.md) | How the 12 engines connect — conductor, moves, preview, evaluation |
772
773
  | [Device Atlas](docs/manual/device-atlas.md) | 5264 devices indexed — search, suggest, chain building |
773
774
  | [Samples & Slicing](docs/manual/samples.md) | 3-source search, fitness critics, slice workflows |
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "livepilot",
3
- "version": "1.26.1",
4
- "description": "Agentic production system for Ableton Live 12 \u2014 465 tools, 56 domains, 44 semantic moves, device atlas (5264 devices, 120 enriched, 7 indexes), Splice intelligence (gRPC + GraphQL describe-a-sound + preview + collections + presets), 9-band spectral perception auto-loaded via ensure_analyzer_on_master, Creative Director skill, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
3
+ "version": "1.27.0",
4
+ "description": "Agentic production system for Ableton Live 12 \u2014 467 tools, 56 domains, 44 semantic moves, device atlas (5264 devices, 120 enriched, 7 indexes), Splice intelligence (gRPC + GraphQL describe-a-sound + preview + collections + presets), 9-band spectral perception auto-loaded via ensure_analyzer_on_master, Creative Director skill, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
5
5
  "author": {
6
6
  "name": "Pilot Studio"
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "livepilot",
3
- "version": "1.26.1",
4
- "description": "Agentic production system for Ableton Live 12 \u2014 465 tools, 56 domains, 44 semantic moves, device atlas (5264 devices, 120 enriched, 7 indexes), Splice intelligence (gRPC + GraphQL describe-a-sound + preview + collections + presets), 9-band spectral perception auto-loaded via ensure_analyzer_on_master, Creative Director skill, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
3
+ "version": "1.27.0",
4
+ "description": "Agentic production system for Ableton Live 12 \u2014 467 tools, 56 domains, 44 semantic moves, device atlas (5264 devices, 120 enriched, 7 indexes), Splice intelligence (gRPC + GraphQL describe-a-sound + preview + collections + presets), 9-band spectral perception auto-loaded via ensure_analyzer_on_master, Creative Director skill, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
5
5
  "author": {
6
6
  "name": "Pilot Studio"
7
7
  }
@@ -206,7 +206,7 @@ After loading any instrument:
206
206
  ### Critical device loading rules:
207
207
 
208
208
  - **NEVER load bare "Drum Rack"** — it's empty. Load a **kit preset**: `search_browser` path="Drums" name_filter="Kit" → `load_browser_item`
209
- - **For synths, use `search_browser` → `load_browser_item`** with exact URI
209
+ - **For synths, consult `atlas_search` or `atlas_suggest` first, then use `search_browser` → `load_browser_item`** with exact URI
210
210
  - **After loading any effect**, set key parameters to non-default values
211
211
 
212
212
  ## V2 Engine Intelligence
@@ -241,7 +241,7 @@ This replaces ad-hoc `get_session_info` + `get_track_info` calls for complex tas
241
241
 
242
242
  Call `get_capability_state` to know what's trustworthy right now:
243
243
  - `normal`: full analyzer + evaluation loop available
244
- - `measured_degraded`: no analyzer — defer to musical judgment for keep/undo
244
+ - `measured_degraded`: analyzer data is stale or intermittent refresh playback/cache before trusting spectral comparisons
245
245
  - `judgment_only`: minimal evidence — be conservative
246
246
  - `read_only`: can inspect but not mutate
247
247
 
@@ -11,8 +11,8 @@ If the user asks for a **fresh start** (new track, clean slate, start from scrat
11
11
 
12
12
  1. **Read the session** — `get_session_info` to see what exists
13
13
  2. **Delete all existing tracks** — loop through all tracks with `delete_track`, starting from the highest index down to 0 (deleting from the top prevents index shifts)
14
- 3. **Load the M4L Analyzer on master** — `find_and_load_device(track_index=-1000, device_name="LivePilot_Analyzer")`. This enables real-time spectral analysis, RMS metering, and key detection for the entire session. If it fails, try `search_browser(path="max_for_live", name_filter="LivePilot")` to find the URI and load manually.
15
- 4. **Set up master chain** — load Glue Compressor + EQ Eight + Utility on master for bus processing
14
+ 3. **Set up master chain** — load Glue Compressor + EQ Eight + Utility on master for bus processing
15
+ 4. **Ensure analyzer last** — call `ensure_analyzer_on_master`. This enables real-time spectral analysis, RMS metering, and key detection, and prevents the analyzer from measuring pre-master-chain audio. If it returns `install_required`, call `install_m4l_device(source_path="<repo>/m4l_device/LivePilot_Analyzer.amxd")` and retry. If it warns that the analyzer is not last on master, tell the user and do not trust spectral reads until it is moved after all effects.
16
16
  5. **Verify analyzer** — wait 2 seconds, then call `get_master_spectrum`. If it returns data, the bridge is connected. If it errors with "UDP bridge not connected", call `reconnect_bridge` to rebind.
17
17
 
18
18
  If the user is adding to an **existing project**, skip step 0 — just call `get_session_info` and work with what's there.
@@ -24,7 +24,7 @@ Genre, tempo range, mood, reference tracks.
24
24
  `set_tempo`, create tracks for drums/bass/harmony/melody with `create_midi_track`, name and color them.
25
25
 
26
26
  ## Step 3: Load instruments
27
- Use `search_browser` to find devices by name, `load_browser_item` or `find_and_load_device` to load them.
27
+ Consult `atlas_search` or `atlas_suggest` first, then use `search_browser` to resolve the exact URI and `load_browser_item` to load it. Use `find_and_load_device` only for simple built-in effects named in the livepilot-core exception list.
28
28
 
29
29
  ## Step 4: Verify device health
30
30
  After loading, run `get_device_info` on each loaded device. A `parameter_count` of 0 or 1 on AU/VST plugins means the plugin failed to initialize (dead plugin). If detected:
@@ -12,7 +12,9 @@ Run the universal evaluation loop on recent production changes.
12
12
  - `read_only` — session disconnected
13
13
 
14
14
  2. **Ensure analyzer** — if mode is `judgment_only`, try to get full perception:
15
- - `find_and_load_device(track_index=-1000, device_name="LivePilot_Analyzer")`
15
+ - `ensure_analyzer_on_master`
16
+ - If it returns `install_required`, call `install_m4l_device(source_path="<repo>/m4l_device/LivePilot_Analyzer.amxd")` and retry
17
+ - If it warns that the analyzer is not last on master, report that spectral evidence is untrusted until repaired
16
18
  - Wait 2s, then `get_master_spectrum` to test the bridge
17
19
  - If bridge disconnected: `reconnect_bridge`
18
20
  - If still unavailable: proceed with `judgment_only` but tell the user
@@ -9,7 +9,7 @@ Help the user mix their session using the V2 orchestration pipeline.
9
9
 
10
10
  1. **Session kernel** — `get_session_kernel(request_text=<user's request>, mode="improve")` for the full turn snapshot
11
11
  2. **Route** — `route_request(<user's request>)` to get engine routes + semantic move recommendations
12
- 3. **Ensure analyzer** — if `get_master_spectrum` errors, load it: `find_and_load_device(track_index=-1000, device_name="LivePilot_Analyzer")`. If bridge disconnected, try `reconnect_bridge`.
12
+ 3. **Ensure analyzer** — call `ensure_analyzer_on_master` before trusting spectral reads. If it returns `install_required`, call `install_m4l_device(source_path="<repo>/m4l_device/LivePilot_Analyzer.amxd")` and retry. If it warns that the analyzer is not last on master, tell the user and treat spectral data as untrusted until it is repaired. If the bridge is disconnected, try `reconnect_bridge`.
13
13
 
14
14
  ## Analysis Phase
15
15
 
@@ -29,7 +29,7 @@ Help the user mix their session using the V2 orchestration pipeline.
29
29
 
30
30
  ## Execution Phase
31
31
 
32
- 11. **Apply with approval** — `apply_semantic_move(move_id, mode="improve")` returns the compiled plan. Present it to the user: "I'd suggest: push Drums to 0.75, pull Pad to 0.25. Shall I do it?"
32
+ 11. **Compile for approval** — `apply_semantic_move(move_id, mode="improve")` returns the compiled plan without executing it. Present the concrete steps to the user. After approval, execute the returned steps individually and verify each write.
33
33
  12. **Verify after EVERY change** — read `value_string` in response, call `get_track_meters(include_stereo=true)`, check no track went silent
34
34
  13. **Capture + analyze** — `capture_audio` then `analyze_loudness` for LUFS/LRA, `analyze_spectrum_offline` for centroid/balance
35
35
  14. **Evaluate** — `evaluate_mix_move` with before/after snapshots. If `keep_change` is false, `undo` immediately.
@@ -13,7 +13,7 @@ Guide the user through designing a sound using the V2 orchestration pipeline.
13
13
  ## Design Phase
14
14
 
15
15
  3. **Ask about target** — what character? (warm pad, aggressive bass, shimmering lead, etc.)
16
- 4. **Choose instrument** — `search_browser` to find devices, `load_browser_item` to load
16
+ 4. **Choose instrument** — consult `atlas_search` or `atlas_suggest` for candidate devices, then use `search_browser` to resolve the exact URI and `load_browser_item` to load
17
17
  5. **Verify health** — `get_device_info` to confirm plugin initialized. Read `value_string` from `get_device_parameters` to understand actual units.
18
18
  6. **Shape sound** — `set_device_parameter` or `batch_set_parameters`. **ALWAYS read `value_string` in response** to confirm Hz/dB/% values make sense.
19
19
  7. **Verify after every change** — `get_track_meters(include_stereo=true)` — if stereo drops to 0, the effect killed the signal.
@@ -26,7 +26,7 @@ Guide the user through designing a sound using the V2 orchestration pipeline.
26
26
 
27
27
  ## Effects & Automation
28
28
 
29
- 11. **Add effects** — load with `find_and_load_device(track_index, device_name)`. Verify health.
29
+ 11. **Add effects** — consult the atlas or relevant device-knowledge reference first. Load exact browser URIs with `load_browser_item`, or use `find_and_load_device` only for simple built-in effects named in the livepilot-core exception list. Verify health.
30
30
  12. **Organic movement** — `apply_automation_shape(curve_type="perlin")` for filter/send drift
31
31
  13. **Automation recipes** — `apply_automation_recipe` for breathing, vinyl_crackle, auto_pan. Verify after applying.
32
32
 
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: livepilot-core
3
- description: Core discipline for LivePilot — agentic production system for Ableton Live 12. 465 tools across 56 domains. This skill should be used whenever working with Ableton Live through MCP tools. Provides golden rules, tool speed tiers, error handling protocol, and pointers to domain and engine skills.
3
+ description: Core discipline for LivePilot — agentic production system for Ableton Live 12. 467 tools across 56 domains. This skill should be used whenever working with Ableton Live through MCP tools. Provides golden rules, tool speed tiers, error handling protocol, and pointers to domain and engine skills.
4
4
  ---
5
5
 
6
6
  # LivePilot Core — Ableton Live 12
7
7
 
8
- Agentic production system for Ableton Live 12. 465 tools across 56 domains, three layers:
8
+ Agentic production system for Ableton Live 12. 467 tools across 56 domains, three layers:
9
9
 
10
- - **Device Atlas** — 5264 devices indexed (135 enriched with sonic intelligence, 683 drum kits). Consult `atlas_search` or `atlas_suggest` before loading any device. Never guess a device name.
10
+ - **Device Atlas** — 5264 devices indexed (120 enriched with sonic intelligence, 683 drum kits). Consult `atlas_search` or `atlas_suggest` before loading any device. Never guess a device name.
11
11
  - **M4L Analyzer** — Real-time audio analysis on the master bus (9-band spectrum sub_low → air, RMS/peak, key detection). Optional — all core tools work without it.
12
12
  - **Technique Memory** — Persistent storage for production decisions. Consult `memory_recall` before creative tasks to understand user taste.
13
13
 
@@ -18,7 +18,7 @@ Agentic production system for Ableton Live 12. 465 tools across 56 domains, thre
18
18
  3. **Use `undo` liberally** — mention it to users when doing destructive ops
19
19
  4. **One operation at a time** — verify between steps
20
20
  5. **Track indices are 0-based** — negative for return tracks (-1=A, -2=B), -1000 for master
21
- 6. **NEVER invent device/preset names** — always `search_browser` first, use exact `uri` from results. Exception: `find_and_load_device` for built-in effects only ("Reverb", "Delay", "Compressor", "EQ Eight", "Saturator", "Utility")
21
+ 6. **NEVER invent device/preset names** — consult `atlas_search` or `atlas_suggest` first, then use `search_browser` and load the exact `uri` from results. Exception: `find_and_load_device` for built-in effects only ("Reverb", "Delay", "Compressor", "EQ Eight", "Saturator", "Utility")
22
22
  7. **Color indices 0-69** — Ableton's fixed palette
23
23
  8. **Volume 0.0-1.0, pan -1.0 to 1.0** — normalized, not dB
24
24
  9. **Tempo range 20-999 BPM**
@@ -52,7 +52,7 @@ Agentic production system for Ableton Live 12. 465 tools across 56 domains, thre
52
52
  ## Tool Speed Tiers
53
53
 
54
54
  ### Instant (<1s) — Use freely
55
- All 465 tools plus M4L perception tools.
55
+ All 467 tools plus M4L perception tools.
56
56
 
57
57
  ### Fast (1-5s) — Use freely
58
58
  `analyze_loudness` · `analyze_mix` · `analyze_sound_design`
@@ -76,7 +76,7 @@ Report ALL errors to the user immediately. Common failure modes:
76
76
  - **M4L bridge timeout** — device may be busy or removed → retry or skip analyzer features
77
77
  - **Connection timeout** — Ableton unresponsive → check if session is heavy
78
78
  - **Volume reset on scene fire** — Ableton restores mixer state when firing scenes. Always re-apply `set_track_volume`/`set_track_pan` after `fire_scene` if your mix settings differ from what was stored in the clips
79
- - **M4L Analyzer not connected** — if `get_master_spectrum` errors with "Analyzer not detected", auto-load it: `find_and_load_device(track_index=-1000, device_name="LivePilot_Analyzer")`. If it errors with "UDP bridge not connected", try `reconnect_bridge` first
79
+ - **M4L Analyzer not connected** — if `get_master_spectrum` errors with "Analyzer not detected", call `ensure_analyzer_on_master`. If it returns `install_required`, call `install_m4l_device(source_path="<repo>/m4l_device/LivePilot_Analyzer.amxd")` and retry. If it errors with "UDP bridge not connected", try `reconnect_bridge` first
80
80
  - **Another client connected** — Remote Script only accepts one TCP client on port 9878. If you see this error, the MCP server is already connected. Use MCP tools instead of raw TCP
81
81
 
82
82
  ## Technique Memory
@@ -142,7 +142,7 @@ Deep production knowledge in `references/`:
142
142
 
143
143
  | File | Content |
144
144
  |------|---------|
145
- | `references/overview.md` | All 465 tools with params and ranges |
145
+ | `references/overview.md` | All 467 tools with params and ranges |
146
146
  | `references/device-atlas/` | 280+ device corpus with URIs and presets |
147
147
  | `references/device-knowledge/` | Per-device parameter + technique knowledge |
148
148
  | `references/pack-knowledge.md` | All 44 installed packs scored for aesthetic fit (Tier S / A / B / C), with Top / Use-when guidance |
@@ -176,8 +176,8 @@ Use when the user has a concrete, specific request ("tighten the low end", "make
176
176
  2. **`get_session_kernel`** — build the unified turn snapshot
177
177
  3. **`propose_next_best_move`** — get ranked semantic move suggestions (taste-aware)
178
178
  4. **`preview_semantic_move`** — see what a move will do before committing
179
- 5. **`apply_semantic_move`** — compile and execute the move
180
- 6. **Evaluate** — use the appropriate evaluator to check the result
179
+ 5. **`apply_semantic_move(mode="improve")`** — compile the move and return the concrete plan for approval; after approval, execute the returned steps individually
180
+ 6. **Evaluate** — use the appropriate evaluator after the approved steps actually run
181
181
 
182
182
  ### Flow B — Exploratory (branch-native, for creative search)
183
183
  Use when the user wants options, variants, or is stuck ("surprise me", "try some things", "I don't know what I want", "make it more like X"). **Flow B is also correct when `route_request` returns `workflow_mode="creative_search"`.**
@@ -198,7 +198,7 @@ Use when the user wants options, variants, or is stuck ("surprise me", "try some
198
198
  **Rule of thumb**: if the user asked for a specific fix, Flow A. If they asked "what would you do?" or mentioned feel/vibe without parameters, Flow B.
199
199
 
200
200
  ### Semantic Moves
201
- High-level musical intents that compile to deterministic tool sequences. 7 families (44 moves as of v1.26.1):
201
+ High-level musical intents that compile to deterministic tool sequences. 7 families (44 moves as of v1.27.0):
202
202
  - **mix** — `tighten_low_end`, `widen_stereo`, `make_punchier`, `darken_without_losing_width`, `reduce_repetition_fatigue`, `make_kick_bass_lock`, `reduce_foreground_competition`
203
203
  - **arrangement** — `refresh_repeated_section`, plus structural moves defined alongside mix
204
204
  - **transition** — `create_buildup_tension`, `smooth_scene_handoff`, `increase_contrast_before_payoff`, `bridge_sections`, `increase_forward_motion`, `open_chorus`, `create_breakdown`
@@ -63,7 +63,7 @@ Combines convolution (early reflections from real spaces) with algorithmic (cust
63
63
 
64
64
  ## Delay
65
65
 
66
- Updated in 12.4 with new LFO modes. The most creative delay in Live.
66
+ Updated in Live 12.4 with a deeper LFO section: rate can be set in Hz, ms, or tempo-synced divisions, with seven waveforms and Morph shaping. The most creative delay in Live.
67
67
 
68
68
  ### Key Parameters
69
69
 
@@ -77,6 +77,7 @@ Updated in 12.4 with new LFO modes. The most creative delay in Live.
77
77
  **Mod Freq / Dly < Mod / Filter < Mod:** The modulation section.
78
78
  - **Dly < Mod:** Modulates delay time — creates pitch wobble on echoes. At 5-15%, subtle tape-like wow. At 20-40%, obvious pitch warping — dub character. At 50%+, extreme — pitch spirals.
79
79
  - **Filter < Mod:** Modulates the filter cutoff with the same LFO — echoes alternately brighten and darken. Combined with Dly < Mod, this creates echoes that are never the same twice.
80
+ - **Morph:** Live 12.4+ waveform shaping. Use small Morph values for stable repeat motion; push Morph when the delay tail should feel handmade, unstable, or visibly animated.
80
81
 
81
82
  **Filter Freq / Width:** Bandpass filter in the feedback loop. This shapes how each echo changes:
82
83
  - Freq 500-1000 Hz, Width 4-6: Dark, telephone-like echoes that thin out over time (classic dub)
@@ -1,6 +1,6 @@
1
- # LivePilot v1.26.1 — Architecture & Tool Reference
1
+ # LivePilot v1.27.0 — Architecture & Tool Reference
2
2
 
3
- Agentic production system for Ableton Live 12. 465 tools across 56 domains. Device atlas (5264 devices, 120 enriched, 47 with aesthetic-tagged `signature_techniques`), spectral perception (M4L analyzer with 9-band FFT — sub_low / sub / low / low_mid / mid / high_mid / high / presence / air), 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, **LIVE Splice describe-a-sound + variations via captured GraphQL endpoints (v1.17)**, drum-rack pad-by-pad construction, live dead-device detection via meter sampling, role-aware Simpler defaults, session-record arrangement-automation workaround.
3
+ Agentic production system for Ableton Live 12. 467 tools across 56 domains. Device atlas (5264 devices, 120 enriched, 47 with aesthetic-tagged `signature_techniques`), spectral perception (M4L analyzer with 9-band FFT — sub_low / sub / low / low_mid / mid / high_mid / high / presence / air), 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, **LIVE Splice describe-a-sound + variations via captured GraphQL endpoints (v1.17)**, drum-rack pad-by-pad construction, live dead-device detection via meter sampling, role-aware Simpler defaults, session-record arrangement-automation workaround.
4
4
 
5
5
  **Concept surface (v1.17):** `artist-vocabularies.md` and `genre-vocabularies.md` in `references/` provide structured translation from the LLM's training (producers like Villalobos, Hawtin, Basic Channel, Gas, Basinski, Hecker, Aphex, Dilla, Burial, Henke; genres like microhouse, dub_techno, ambient, idm) into LivePilot's device surface. New MCP tools `atlas_describe_chain` (free-text → chain proposal) and `atlas_techniques_for_device` (reverse-lookup: 146 technique cross-references across 58 devices).
6
6
 
@@ -12,6 +12,8 @@ Agentic production system for Ableton Live 12. 465 tools across 56 domains. Devi
12
12
 
13
13
  **Compose framework rebuild (v1.25.0):** three modes share a shared Applier substrate (bridge handshake retry + monitoring=Auto postflight + back_to_arranger). `compose_fast_apply` — quick loop in session view, curated-.adg-first hunt order, drum-role pitch repair. `compose_full_apply` — full song form (intro/verse/hook/breakdown/outro), per-section MIDI variants, native arrangement clips via `create_native_arrangement_clip`, zombie-track cleanup. `develop_apply` — extends an existing 8-bar seed, introspects tracks by name+content, pulls references from prompt. `KnowledgePack` scaffolding: `event_lexicon` (42 events), `genre_context` (15 genres), `artist_context` (~25 producers). Known gap: `atlas_candidates_per_role` is an empty stub in v1.25.0 — device lookup still falls back to `search_browser` filename matching. Resolved in v1.25 (BUG-FULL-MODE-24).
14
14
 
15
+ **Live 12.4.2 knowledge refresh (2026-06-16):** Ableton's current stable line is Live 12.4.2 (June 11, 2026). The 12.4 baseline added Link Audio, selected-time stem separation and stem merge, updated Erosion, refined Chorus mode in Chorus-Ensemble, expanded Delay LFO modulation, Max 9.1.4, and `SimplerDevice.replace_sample` in the Live API. LivePilot exploits the native Simpler replacement path on Live 12.4+ and ships read-only `probe_link_audio()` / `probe_stem_workflow()` checks; Link Audio routing and stem write workflows remain unavailable unless a real probe proves a stable non-UI-scripted API path.
16
+
15
17
  ## Architecture
16
18
 
17
19
  ```
@@ -42,7 +44,7 @@ A flat tool list lets the AI press buttons. LivePilot's three layers give it con
42
44
 
43
45
  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."
44
46
 
45
- ## The 465 Tools — What Each One Does
47
+ ## The 467 Tools — What Each One Does
46
48
 
47
49
  ### Transport (12) — Playback, tempo, global state, diagnostics
48
50
 
@@ -165,6 +165,7 @@ Simple 3-band EQ for quick tonal shaping.
165
165
  - `Filter` — LP/HP on feedback path
166
166
  - `Dry/Wet` — Mix
167
167
  - `Ping Pong` — Alternates between L/R
168
+ - **Live 12.4+ LFO** — Rate can be Hz, ms, or tempo-synced; seven LFO shapes plus Morph make Delay a stronger movement source before reaching for Echo.
168
169
  - **Common sync values**: 1/4, 1/8, 3/16 (dotted eighth), 1/4T (triplet)
169
170
 
170
171
  **Echo** (combines delay + reverb + modulation)
@@ -191,8 +192,9 @@ Simple 3-band EQ for quick tonal shaping.
191
192
  - **Use for**: Guitar-amp style warmth, bass grit
192
193
 
193
194
  **Erosion**
194
- - Adds digital artifacts: noise, sine wave modulation
195
- - `Amount`, `Frequency`, `Width`
195
+ - Adds digital artifacts: noise/sine modulation, edge, air, bitcrush-like abrasion
196
+ - `Amount`, `Frequency`, `Noise Blend`, `Stereo Width`
197
+ - **Live 12.4+** — refreshed Erosion blends sine/noise continuously, scales stereo modulation precisely, and has lower algorithmic latency. Older Sets load as Erosion Legacy.
196
198
  - **Use for**: Lo-fi, bitcrushed textures, digital degradation
197
199
 
198
200
  **Redux**
@@ -206,6 +208,7 @@ Simple 3-band EQ for quick tonal shaping.
206
208
  - `Rate 1/2` — LFO speeds
207
209
  - `Amount 1/2` — Modulation depths
208
210
  - `Feedback` — Flanging intensity
211
+ - `Time` / `Taps` — Live 12.4+ Chorus mode controls for fixed delay-line times and one- vs two-tap chorus textures
209
212
  - `Dry/Wet` — Mix
210
213
  - **Use for**: Thickening, stereo width, classic chorus
211
214
 
@@ -107,6 +107,48 @@ this skill. No → divergence path.
107
107
 
108
108
  When triggered, these phases are REQUIRED in order. Skip none.
109
109
 
110
+ ## Character-First Bias
111
+
112
+ For open-ended quality requests, treat timbre and spectral character as the main creative surface. Do not let the `mix` family win just because words like punch, clean, warm, dark, bright, or wide could be solved by volume/pan/send changes. Prefer `sound_design`, `device_creation`, `sample`, `arrangement`, or `transition` when analyzer evidence suggests a source, instrument, parameter, modulation, envelope, or structural decision would create more musical value.
113
+
114
+ The `mix` family is dominant only when the user asks for balance, loudness, headroom, masking, stereo translation, send levels, or an explicit mix pass. Otherwise use mix analysis as safety/evidence and keep it out of the main creative slot.
115
+
116
+ ## Producer Decision Center
117
+
118
+ Before choosing any instrument, preset, sample, or dominant move, run a
119
+ producer decision center pass. This pass exists to prevent generic AI synth
120
+ choices and effects-only "sound design".
121
+
122
+ **Library hunt order:**
123
+
124
+ 1. `search_browser(path="sounds", name_filter="<role or sonic target>")`
125
+ for curated Ableton `.adg` chains.
126
+ 2. `atlas_search(query="<sonic description>", category="instruments")`
127
+ for scored character matches.
128
+ 3. If `atlas_search` returns `enriched: true`, read the surfaced fields and
129
+ call `atlas_device_info(device_id)` when the device is borderline or the
130
+ plan depends on gotchas, self-contained status, or signature techniques.
131
+ 4. `search_browser(path="instruments", name_filter="<specific candidate>")`
132
+ only after the curated/preset search has been exhausted.
133
+
134
+ **Generic-default guardrail:** do not reach for Analog/Poli/Drift as a
135
+ default bass, pad, or lead unless the user explicitly asked for analog
136
+ subtractive synthesis or that exact instrument. Those defaults read as a
137
+ generic AI synth in this project. If one of them is still the right choice,
138
+ state the reason and program the source immediately.
139
+
140
+ **Instrument/source-level first:** real sound design changes what the sound
141
+ is before effects-only polish. For every melodic, harmonic, bass, drum, or
142
+ texture layer, plan at least one instrument/source-level move before adding
143
+ effects: envelopes, LFO routing, filter envelope, oscillator/wavetable/FM
144
+ position, pitch modulation, sample start, slice selection, velocity mapping,
145
+ spread, detune, or sampler playback mode.
146
+
147
+ **Layer precision gate:** before declaring a plan or execution complete,
148
+ each active layer needs a role and an evidence path: timbre/spectrum,
149
+ sequence feel, stereo placement, movement/automation, and parameter
150
+ programming. Low-volume buried layers do not count as solved layers.
151
+
110
152
  ### Phase 1 — Ground
111
153
 
112
154
  Read in parallel (all are fast). All of these are REQUIRED, not
@@ -119,6 +161,7 @@ advisory — skipping them is how pattern-repetition survives:
119
161
  - `get_action_ledger_summary(limit=10)` — recent committed moves (repeat detection, see `references/anti-repetition-rules.md` for the recency threshold table). **v1.20 correction**: previous docs pointed at `memory_list`, which actually reads the persistent technique library (opt-in `memory_learn` writes) — a DIFFERENT store. The action ledger is the authoritative source; `apply_semantic_move` in explore mode populates it automatically.
120
162
  - `get_last_move` — the single most recent committed move; populate the brief's `last_move_target` field so Phase 3 cannot repeat it
121
163
  - `get_project_brain_summary` (or `build_project_brain` if absent) — track identity, accepted novelty band
164
+ - Analyzer character read when available: `get_master_spectrum`, `get_spectral_shape`, `get_onsets`, `get_novelty`, and `get_momentary_loudness` for evidence about brightness, flatness, motion, transient shape, and loudness safety. Use these to bias Phase 3 toward instrument/device/parameter decisions, not low-value level tweaks.
122
165
  - `explain_song_identity` when the project has one
123
166
  - `detect_stuckness` — cheap; its confidence drives escalation decisions (see §Anti-Repetition Protocol below)
124
167
  - **Concept packet load (HARD filter when present):** if the user named an artist or genre, or if `project_brain` has a genre identity, retrieve the structured YAML packet from `livepilot-core/references/concepts/artists/<slug>.yaml` or `livepilot-core/references/concepts/genres/<slug>.yaml`. Fall back to the narrative .md entry only if no matching YAML exists. The packet's `avoid` list is a HARD filter on Phase 3 candidates. The packet's `reach_for` lists seed the candidate device pool. The packet's `key_techniques` list resolves to atlas `signature_techniques` or `sample-techniques.md` / `sound-design-deep.md` entries. If NO reference is named and `project_brain` has no genre identity, skip packet loading — do not infer. See `livepilot-core/references/concepts/_schema.md` for the full packet structure and loading rules.
@@ -44,7 +44,7 @@ Never invent an eighth family at the director level.
44
44
 
45
45
  **Discovery:** always call `list_semantic_moves(domain=<family>)` at
46
46
  runtime to enumerate — do not hardcode move IDs. Families are stable;
47
- the move catalog grows. As of v1.26.1 the runtime returns 44 moves
47
+ the move catalog grows. As of v1.26.3 the runtime returns 44 moves
48
48
  across all 7 domains.
49
49
 
50
50
  **Why the director never invents an eighth `rhythmic` family:** the
@@ -111,7 +111,9 @@ Call `get_capability_state` at the start of any evaluation session. The response
111
111
  "memory": {"name": "memory", "available": true, "confidence": 1.0, "mode": "available", "reasons": []},
112
112
  "web": {"name": "web", "available": true, "confidence": 0.7, "mode": "available", "reasons": []},
113
113
  "research": {"name": "research", "available": true, "confidence": 0.9, "mode": "available", "reasons": []},
114
- "flucoma": {"name": "flucoma", "available": false, "confidence": 0.0, "mode": "unavailable", "reasons": ["flucoma_not_installed"]}
114
+ "flucoma": {"name": "flucoma", "available": false, "confidence": 0.2, "mode": "unavailable", "reasons": ["flucoma_bridge_unavailable"], "device_loaded": true},
115
+ "link_audio": {"name": "link_audio", "available": false, "confidence": 0.2, "mode": "manual_only", "reasons": ["link_audio_unprobed"]},
116
+ "stem_workflow": {"name": "stem_workflow", "available": false, "confidence": 0.2, "mode": "manual_only", "reasons": ["stem_workflow_unprobed"]}
115
117
  }
116
118
  }
117
119
  }
@@ -127,11 +129,11 @@ Call `get_capability_state` at the start of any evaluation session. The response
127
129
 
128
130
  Every entry in `domains` has the same shape:
129
131
 
130
- - `name`: the domain key (`"session_access"`, `"analyzer"`, `"memory"`, `"web"`, `"research"`, `"flucoma"`).
132
+ - `name`: the domain key (`"session_access"`, `"analyzer"`, `"memory"`, `"web"`, `"research"`, `"flucoma"`, `"link_audio"`, `"stem_workflow"`).
131
133
  - `available`: boolean — is this capability ready to use right now?
132
134
  - `confidence`: 0.0–1.0 — how much to trust the `available` flag (e.g. stale analyzer data lowers confidence).
133
135
  - `mode`: short human label specific to the domain (`"healthy"`, `"available"`, `"measured"`, `"stale"`, `"targeted_only"`, `"full"`, `"unavailable"`).
134
- - `reasons`: list of short machine-readable tokens explaining why the domain is in its current state (`"analyzer_offline"`, `"web_unavailable"`, `"flucoma_not_installed"`, …). Empty when healthy.
136
+ - `reasons`: list of short machine-readable tokens explaining why the domain is in its current state (`"analyzer_offline"`, `"web_unavailable"`, `"flucoma_bridge_unavailable"`, `"flucoma_no_streams"`, `"flucoma_not_installed"`, …). Empty when healthy.
135
137
  - `freshness_ms`: optional — milliseconds since the domain last received fresh data (currently only the analyzer domain populates this).
136
138
 
137
139
  ### Domain definitions
@@ -141,7 +143,9 @@ Every entry in `domains` has the same shape:
141
143
  - **memory** — the local technique-store / taste memory. `available=true` means the persistent stores can be read and written.
142
144
  - **web** — server-side outbound HTTP capability. True when the MCP host can reach an arbitrary public URL (probed by a 500 ms HEAD request to `https://api.github.com`). Does NOT imply curated research corpora are installed — see the `research` domain for that.
143
145
  - **research** — composite over `session_access`, `memory`, and `web`. `mode="full"` when all three are available; `"targeted_only"` when at least one source is up; `"unavailable"` when nothing is reachable.
144
- - **flucoma** — whether the optional `flucoma` Python package is importable (probed via `importlib.util.find_spec`). FluCoMa-backed tools (`check_flucoma`, `extract_timbre_fingerprint`, etc.) degrade gracefully when this domain is unavailable.
146
+ - **flucoma** — Max/FluCoMa real-time stream readiness. `device_loaded=true` means the FluidCorpusManipulation Max package is installed, or active streams prove a frozen analyzer is working. `available=true` requires at least one FluCoMa stream (`spectral_shape`, `mel_bands`, `chroma`, `onset`, `novelty`, or `loudness`) to have reached the M4L spectral cache. FluCoMa-backed tools (`check_flucoma`, `extract_timbre_fingerprint`, etc.) degrade gracefully when this domain is unavailable.
147
+ - **link_audio** — Live 12.4 Link Audio capability. `probe_link_audio` is read-only and reports `mode="manual_only"` until peer/input/routing evidence proves the surface is readable or routable. Version number alone never makes this domain available.
148
+ - **stem_workflow** — Live 12.4 selected-time stem separation / merge capability. `probe_stem_workflow` is read-only and reports `mode="manual_only"` until a stable callable path is observed. Stem tools must not run on full tracks/clips by default.
145
149
 
146
150
  ## Collaborative Mode (Live 12.4+)
147
151
 
@@ -169,8 +173,10 @@ Live 12.4 introduces a new capability tier that unlocks native LOM access for sa
169
173
  **Tool signatures:** unchanged. Callers do not need to detect the tier —
170
174
  routing is transparent.
171
175
 
172
- **Follow-up plans (not yet shipped):**
173
- - Link Audio (tempo-sync sharing between Live sets) — tracked as a
174
- future Collaborative-tier feature.
175
- - Stem Separation v2 tracked as a future Collaborative-tier feature.
176
- Neither is available in the 1.26.1 release — still pending.
176
+ **Probe-first 12.4 surfaces in v1.27.0:**
177
+ - `probe_link_audio()` reports observed peer/input/routing visibility and
178
+ returns `manual_only`, `readable`, `routable`, or `unavailable`.
179
+ - `probe_stem_workflow()` reports observed callable paths and returns
180
+ `manual_only`, `callable`, or `unavailable`.
181
+ - Write workflows are intentionally absent unless a real Live probe proves
182
+ a stable non-UI-scripted route.
@@ -7,6 +7,14 @@ description: This skill should be used when the user asks to "analyze my mix", "
7
7
 
8
8
  The mix engine runs an iterative critic loop: analyze, plan, execute, measure, evaluate, keep or undo. Every mix change is measured before and after. Nothing stays unless it scores better than the original.
9
9
 
10
+ ## Character-First Default
11
+
12
+ Do not treat the full loop as the default for vague requests like "make it better", "more character", "more alive", "punchier", "warmer", or "more interesting". Those are usually sound-design or creative-direction requests. Start from analyzer character (`sonic_character`, `get_spectral_shape`, `get_novelty`, `get_onsets`, `get_mel_spectrum`) and prefer source, instrument, device-chain, envelope, filter, saturation, modulation, and transient-shape decisions before generic level changes.
13
+
14
+ Use `set_track_volume`, `set_track_pan`, and broad send-level balancing only when the user explicitly asks for balance/level/pan/send work, or when analyzer evidence shows a safety/translation problem such as clipping, headroom collapse, mono collapse, or a severe masking issue. Producers can adjust simple loudness by ear quickly; LivePilot's value is in hearing spectral character and choosing a smarter musical intervention.
15
+
16
+ For normal work, cap mix-engine action to one high-value move plus a short verdict. Enter the repeated full loop only for explicit requests like "deep mix pass", "mastering prep", "fix all mix issues", or an exact target such as LUFS/headroom/mono compatibility.
17
+
10
18
  ## The Mix Critic Loop
11
19
 
12
20
  Follow these steps in order. Do not skip the evaluation step.
@@ -81,7 +89,7 @@ If the move scored above 0.7 and the user confirms satisfaction, call `memory_le
81
89
 
82
90
  ### Step 9 — Repeat
83
91
 
84
- Return to Step 1 and re-analyze. The critic list updates after each change. Continue until no high-severity issues remain or the user says to stop.
92
+ Return to Step 1 and re-analyze only when the user requested a deep/full mix pass. Otherwise stop after the first measured high-value intervention and report the remaining optional issues as suggestions. Avoid spending a turn on small volume-balancing loops unless they are the requested task.
85
93
 
86
94
  ## Quick Mix Checks
87
95
 
@@ -7,6 +7,12 @@ description: This skill should be used when the user asks to "mix", "balance lev
7
7
 
8
8
  Balance track levels, configure routing, apply mix effects, and analyze frequency content in Ableton Live.
9
9
 
10
+ ## Default Value Filter
11
+
12
+ For broad musical requests, do not spend the turn on manual-feeling volume balancing. Levels, pan, and sends are useful when the user asks for them, when clipping/headroom/translation is objectively unsafe, or when a routing architecture is part of the style. Otherwise, treat meters as context and use analyzer character to make higher-value choices: source selection, filter/envelope shape, saturation, modulation, transient design, or a better device/preset.
13
+
14
+ When a request says "more punch", "more warmth", "more character", "less flat", "more alive", or similar, route through sound-design/creative-director first and use mix tools only as safety checks.
15
+
10
16
  ## Read Before Write
11
17
 
12
18
  Always understand the current state before changing anything:
@@ -121,7 +127,7 @@ When the LivePilot Analyzer M4L device is on the master track:
121
127
  - `get_master_rms` — true RMS and peak levels for loudness assessment
122
128
  - `get_detected_key` — detect musical key from audio content
123
129
 
124
- Use spectrum data to make informed EQ decisions. If the low_mid band is 6 dB hotter than everything else, there is mud to clean up. If the air band is absent, the mix may sound dull.
130
+ Use spectrum data to make informed EQ decisions. If the low_mid band is 6 dB hotter than everything else, there is mud to clean up. If the air band is absent, the mix may sound dull. When FluCoMa streams are active, prefer `get_spectral_shape`, `get_mel_spectrum`, `get_onsets`, and `get_novelty` for character decisions; those descriptors tell you whether the sound is bright/dark, flat/peaked, static/moving, or transient/soft in a way simple level meters cannot.
125
131
 
126
132
  ## Mix Engine — Critic-Driven Analysis
127
133
 
@@ -144,11 +150,12 @@ Use the mix engine when the user wants a critical evaluation of their mix, not j
144
150
 
145
151
  Follow this progression — start fast, go deeper only when needed:
146
152
 
147
- 1. **Instant:** `get_master_spectrum` + `get_track_meters` — frequency balance + levels. Answers 80% of mix questions.
148
- 2. **Fast (1-5s):** `analyze_loudness` + `analyze_mix` — LUFS, true peak, and full mix analysis. For mastering prep.
149
- 3. **Slow (5-15s):** `compare_to_reference` + `analyze_spectrum_offline` — reference matching, offline spectral analysis. Ask the user first.
153
+ 1. **Instant:** `get_master_spectrum` + `get_track_meters` — frequency balance + safety context.
154
+ 2. **Fast character:** `get_spectral_shape` + `get_novelty` + `get_onsets` when available decide whether the next move belongs to sound design, arrangement, or mix.
155
+ 3. **Fast mix (1-5s):** `analyze_loudness` + `analyze_mix` — LUFS, true peak, and full mix analysis. For mastering prep or explicit mix critique.
156
+ 4. **Slow (5-15s):** `compare_to_reference` + `analyze_spectrum_offline` — reference matching, offline spectral analysis. Ask the user first.
150
157
 
151
- Never skip levels. Start at the lowest appropriate level and offer to go deeper.
158
+ Never skip safety context. Do not let safety context become a long volume-tweaking session unless the user asked for that.
152
159
 
153
160
  ## Reference
154
161