livepilot 1.9.21 → 1.9.23

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 (110) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.mcpbignore +40 -0
  3. package/AGENTS.md +2 -2
  4. package/CHANGELOG.md +47 -0
  5. package/CONTRIBUTING.md +1 -1
  6. package/README.md +47 -72
  7. package/bin/livepilot.js +135 -0
  8. package/livepilot/.Codex-plugin/plugin.json +2 -2
  9. package/livepilot/.claude-plugin/plugin.json +2 -2
  10. package/livepilot/agents/livepilot-producer/AGENT.md +13 -0
  11. package/livepilot/commands/arrange.md +42 -14
  12. package/livepilot/commands/beat.md +68 -21
  13. package/livepilot/commands/evaluate.md +23 -13
  14. package/livepilot/commands/mix.md +35 -11
  15. package/livepilot/commands/perform.md +31 -19
  16. package/livepilot/commands/sounddesign.md +38 -17
  17. package/livepilot/skills/livepilot-arrangement/SKILL.md +2 -1
  18. package/livepilot/skills/livepilot-composition-engine/references/transition-archetypes.md +2 -2
  19. package/livepilot/skills/livepilot-core/SKILL.md +60 -4
  20. package/livepilot/skills/livepilot-core/references/device-atlas/distortion-and-character.md +11 -11
  21. package/livepilot/skills/livepilot-core/references/device-atlas/drums-and-percussion.md +25 -25
  22. package/livepilot/skills/livepilot-core/references/device-atlas/dynamics-and-punch.md +21 -21
  23. package/livepilot/skills/livepilot-core/references/device-atlas/eq-and-filtering.md +13 -13
  24. package/livepilot/skills/livepilot-core/references/device-atlas/midi-tools.md +13 -13
  25. package/livepilot/skills/livepilot-core/references/device-atlas/movement-and-modulation.md +5 -5
  26. package/livepilot/skills/livepilot-core/references/device-atlas/space-and-depth.md +16 -16
  27. package/livepilot/skills/livepilot-core/references/device-atlas/spectral-and-weird.md +40 -40
  28. package/livepilot/skills/livepilot-core/references/m4l-devices.md +3 -3
  29. package/livepilot/skills/livepilot-core/references/overview.md +4 -4
  30. package/livepilot/skills/livepilot-evaluation/SKILL.md +12 -8
  31. package/livepilot/skills/livepilot-evaluation/references/memory-promotion.md +2 -2
  32. package/livepilot/skills/livepilot-mix-engine/SKILL.md +1 -1
  33. package/livepilot/skills/livepilot-mix-engine/references/mix-moves.md +2 -2
  34. package/livepilot/skills/livepilot-mixing/SKILL.md +3 -1
  35. package/livepilot/skills/livepilot-notes/SKILL.md +2 -1
  36. package/livepilot/skills/livepilot-release/SKILL.md +15 -15
  37. package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +2 -2
  38. package/livepilot/skills/livepilot-wonder/SKILL.md +62 -0
  39. package/livepilot.mcpb +0 -0
  40. package/m4l_device/livepilot_bridge.js +1 -1
  41. package/manifest.json +91 -0
  42. package/mcp_server/__init__.py +1 -1
  43. package/mcp_server/creative_constraints/__init__.py +6 -0
  44. package/mcp_server/creative_constraints/engine.py +277 -0
  45. package/mcp_server/creative_constraints/models.py +75 -0
  46. package/mcp_server/creative_constraints/tools.py +341 -0
  47. package/mcp_server/experiment/__init__.py +6 -0
  48. package/mcp_server/experiment/engine.py +213 -0
  49. package/mcp_server/experiment/models.py +120 -0
  50. package/mcp_server/experiment/tools.py +263 -0
  51. package/mcp_server/hook_hunter/__init__.py +5 -0
  52. package/mcp_server/hook_hunter/analyzer.py +342 -0
  53. package/mcp_server/hook_hunter/models.py +57 -0
  54. package/mcp_server/hook_hunter/tools.py +586 -0
  55. package/mcp_server/memory/taste_graph.py +261 -0
  56. package/mcp_server/memory/tools.py +88 -0
  57. package/mcp_server/mix_engine/critics.py +2 -2
  58. package/mcp_server/mix_engine/models.py +1 -1
  59. package/mcp_server/mix_engine/state_builder.py +2 -2
  60. package/mcp_server/musical_intelligence/__init__.py +8 -0
  61. package/mcp_server/musical_intelligence/detectors.py +421 -0
  62. package/mcp_server/musical_intelligence/phrase_critic.py +163 -0
  63. package/mcp_server/musical_intelligence/tools.py +221 -0
  64. package/mcp_server/preview_studio/__init__.py +5 -0
  65. package/mcp_server/preview_studio/engine.py +280 -0
  66. package/mcp_server/preview_studio/models.py +73 -0
  67. package/mcp_server/preview_studio/tools.py +423 -0
  68. package/mcp_server/runtime/session_kernel.py +96 -0
  69. package/mcp_server/runtime/tools.py +90 -1
  70. package/mcp_server/semantic_moves/__init__.py +13 -0
  71. package/mcp_server/semantic_moves/compiler.py +116 -0
  72. package/mcp_server/semantic_moves/mix_compilers.py +291 -0
  73. package/mcp_server/semantic_moves/mix_moves.py +157 -0
  74. package/mcp_server/semantic_moves/models.py +46 -0
  75. package/mcp_server/semantic_moves/performance_compilers.py +208 -0
  76. package/mcp_server/semantic_moves/performance_moves.py +81 -0
  77. package/mcp_server/semantic_moves/registry.py +32 -0
  78. package/mcp_server/semantic_moves/resolvers.py +126 -0
  79. package/mcp_server/semantic_moves/sound_design_compilers.py +266 -0
  80. package/mcp_server/semantic_moves/sound_design_moves.py +78 -0
  81. package/mcp_server/semantic_moves/tools.py +204 -0
  82. package/mcp_server/semantic_moves/transition_compilers.py +222 -0
  83. package/mcp_server/semantic_moves/transition_moves.py +76 -0
  84. package/mcp_server/server.py +10 -0
  85. package/mcp_server/session_continuity/__init__.py +6 -0
  86. package/mcp_server/session_continuity/models.py +86 -0
  87. package/mcp_server/session_continuity/tools.py +230 -0
  88. package/mcp_server/session_continuity/tracker.py +235 -0
  89. package/mcp_server/song_brain/__init__.py +6 -0
  90. package/mcp_server/song_brain/builder.py +477 -0
  91. package/mcp_server/song_brain/models.py +132 -0
  92. package/mcp_server/song_brain/tools.py +294 -0
  93. package/mcp_server/stuckness_detector/__init__.py +5 -0
  94. package/mcp_server/stuckness_detector/detector.py +400 -0
  95. package/mcp_server/stuckness_detector/models.py +66 -0
  96. package/mcp_server/stuckness_detector/tools.py +195 -0
  97. package/mcp_server/tools/_conductor.py +104 -6
  98. package/mcp_server/tools/analyzer.py +1 -1
  99. package/mcp_server/tools/devices.py +34 -0
  100. package/mcp_server/wonder_mode/__init__.py +6 -0
  101. package/mcp_server/wonder_mode/diagnosis.py +84 -0
  102. package/mcp_server/wonder_mode/engine.py +493 -0
  103. package/mcp_server/wonder_mode/session.py +114 -0
  104. package/mcp_server/wonder_mode/tools.py +285 -0
  105. package/package.json +2 -2
  106. package/remote_script/LivePilot/__init__.py +1 -1
  107. package/remote_script/LivePilot/browser.py +4 -1
  108. package/remote_script/LivePilot/devices.py +29 -0
  109. package/remote_script/LivePilot/tracks.py +11 -4
  110. package/scripts/generate_tool_catalog.py +131 -0
@@ -5,26 +5,73 @@ description: Guided beat creation — create a beat from scratch with genre, tem
5
5
 
6
6
  Guide the user through creating a beat from scratch. Follow these steps:
7
7
 
8
- 1. **Ask about the vibe** genre, tempo range, mood, reference tracks
9
- 2. **Set up the session** — `set_tempo`, create tracks for drums/bass/harmony/melody with `create_midi_track`, name and color them
10
- 3. **Load instruments** use `find_and_load_device` for appropriate instruments per track
11
- 4. **Verify device health** — 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
- - Delete the dead plugin with `delete_device`
13
- - Replace with a native Ableton alternative (e.g., Saturator instead of tape plugins, Operator instead of failed FM synths)
14
- - Run `get_session_diagnostics` for any other issues (armed tracks, missing instruments)
15
- - Inform the user which plugin failed and what replacement was used
16
- 5. **Program drums first** — create a clip, add kick/snare/hat patterns with `add_notes`
17
- 6. **Add bass** — create clip, program a bassline that locks with the kick
18
- 7. **Add harmony** — chords or pads that set the mood
19
- 8. **Add melody** — top-line or lead element
20
- 9. **Mix** balance levels with `set_track_volume` and `set_track_pan`
21
- 10. **Pitch & tuning audit** — MANDATORY before firing. Run on every melodic track (skip drums):
22
- - `identify_scale` on each track — verify all tracks agree on the same tonal center
23
- - `analyze_harmony` on chordal tracks (pads, keys) — verify chord quality (no accidental augmented/diminished chords unless intentional)
24
- - `detect_theory_issues` with `strict=true` on each track check for out-of-key notes, parallel fifths, voice crossing
25
- - **Interpret results against the intended scale**, not just C major. The analyzer only knows 7 standard modes — exotic scales (Hijaz, Hungarian minor, whole tone, etc.) will produce false "out of key" warnings. Cross-reference flagged notes against the intended scale manually.
26
- - Report a clear tuning table to the user: which tracks are clean, which have issues, what the issues are
27
- - Fix wrong notes with `modify_notes` before proceeding
28
- 11. **Fire the scene** to listen, iterate based on feedback
8
+ ## Step 0: Session Prep (fresh projects only)
9
+
10
+ If the user asks for a **fresh start** (new track, clean slate, start from scratch):
11
+
12
+ 1. **Read the session** `get_session_info` to see what exists
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
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
+
18
+ If the user is adding to an **existing project**, skip step 0 just call `get_session_info` and work with what's there.
19
+
20
+ ## Step 1: Ask about the vibe
21
+ Genre, tempo range, mood, reference tracks.
22
+
23
+ ## Step 2: Set up the session
24
+ `set_tempo`, create tracks for drums/bass/harmony/melody with `create_midi_track`, name and color them.
25
+
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.
28
+
29
+ ## Step 4: Verify device health
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:
31
+ - Delete the dead plugin with `delete_device`
32
+ - Replace with a native Ableton alternative (e.g., Saturator instead of tape plugins, Operator instead of failed FM synths)
33
+ - Run `get_session_diagnostics` for any other issues (armed tracks, missing instruments)
34
+ - Inform the user which plugin failed and what replacement was used
35
+
36
+ ## Step 5: Program drums first
37
+ Create a clip, add kick/snare/hat patterns with `add_notes`.
38
+
39
+ ## Step 6: Add bass
40
+ Create clip, program a bassline that locks with the kick.
41
+
42
+ ## Step 7: Add harmony
43
+ Chords or pads that set the mood.
44
+
45
+ ## Step 8: Add melody
46
+ Top-line or lead element.
47
+
48
+ ## Step 9: Mix + VERIFY
49
+ Balance levels with `set_track_volume` and `set_track_pan`.
50
+
51
+ **MANDATORY after every parameter change:**
52
+ - Read `value_string` in the response to confirm the actual Hz/dB/% value makes sense
53
+ - Call `get_track_meters(include_stereo=true)` and verify each track has non-zero output
54
+ - If a track's stereo output drops to 0, the effect is killing the signal — check `get_device_parameters` for `value_string`, fix, re-verify
55
+ - Parameter ranges are NOT always 0-1. Always read `value_string`.
56
+
57
+ ## Step 10: Pitch & tuning audit
58
+ MANDATORY before firing. Run on every melodic track (skip drums):
59
+ - `identify_scale` on each track — verify all tracks agree on the same tonal center
60
+ - `analyze_harmony` on chordal tracks — verify chord quality
61
+ - `detect_theory_issues` with `strict=true` on each track — check for out-of-key notes, parallel fifths, voice crossing
62
+ - **Interpret results against the intended scale**, not just C major
63
+ - Report a clear tuning table to the user: which tracks are clean, which have issues
64
+ - Fix wrong notes with `modify_notes` before proceeding
65
+
66
+ ## Step 11: Perception check
67
+ If the M4L Analyzer is connected:
68
+ - `get_master_spectrum` — check spectral balance (sub should be present but not >60% for most genres)
69
+ - `get_master_rms` — check levels aren't clipping
70
+ - `get_detected_key` — verify the analyzer agrees with the intended key
71
+
72
+ If not connected, use `capture_audio` + `analyze_loudness` + `analyze_spectrum_offline` for offline analysis.
73
+
74
+ ## Step 12: Fire the scene
75
+ Fire to listen, iterate based on feedback.
29
76
 
30
77
  Use the livepilot-core skill for all tool calls. Verify after each step. Keep the user informed of what you're doing and why.
@@ -11,28 +11,38 @@ Run the universal evaluation loop on recent production changes.
11
11
  - `judgment_only` — no analyzer, parameter-level heuristics only
12
12
  - `read_only` — session disconnected
13
13
 
14
- 2. **Get the last move** — `get_last_move` to understand what was changed. If no recent move, `get_recent_actions` for history.
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")`
16
+ - Wait 2s, then `get_master_spectrum` to test the bridge
17
+ - If bridge disconnected: `reconnect_bridge`
18
+ - If still unavailable: proceed with `judgment_only` but tell the user
15
19
 
16
- 3. **Ask what the goal was** — what were they trying to achieve? More clarity? Wider stereo? Punchier drums?
20
+ 3. **Get the last move** — `get_last_move` to understand what was changed. If no recent move, `get_recent_actions` for history.
17
21
 
18
- 4. **Compile the goal** — `compile_goal_vector(goal_description, mode="improve")`
22
+ 4. **Ask what the goal was** — what were they trying to achieve? More clarity? Wider stereo? Punchier drums?
19
23
 
20
- 5. **Capture current state** — `get_master_spectrum` + `get_master_rms` + `get_mix_snapshot`
24
+ 5. **Compile the goal** — `compile_goal_vector(goal_description, mode="improve")`
21
25
 
22
- 6. **Undo the change** — `undo()` to restore the before state
26
+ 6. **Capture current state** — full perception snapshot:
27
+ - `get_master_spectrum` + `get_master_rms` (if analyzer available)
28
+ - `get_track_meters(include_stereo=true)` — verify all tracks producing audio
29
+ - `get_mix_snapshot` — full volume/pan/send state
30
+ - Optionally: `capture_audio` + `analyze_loudness` + `analyze_spectrum_offline` for ground truth
23
31
 
24
- 7. **Capture before state** — same reads as step 5
32
+ 7. **Undo the change** — `undo()` to restore the before state
25
33
 
26
- 8. **Redo the change** — `redo()` to restore the after state
34
+ 8. **Capture before state** — same reads as step 6
27
35
 
28
- 9. **Evaluate** — `evaluate_move(before_snapshot, after_snapshot, goal)` or use engine-specific:
29
- - Mix changes: `evaluate_mix_move`
30
- - Composition changes: `evaluate_composition_move`
31
- - Multi-dimensional: `evaluate_with_fabric`
36
+ 9. **Redo the change** — `redo()` to restore the after state
32
37
 
33
- 10. **Report results** — show: score (0-1), keep_change recommendation, goal_progress, collateral_damage, dimension changes
38
+ 10. **Evaluate** — `evaluate_move(before_snapshot, after_snapshot, goal)` or use engine-specific:
39
+ - Mix changes: `evaluate_mix_move`
40
+ - Composition changes: `evaluate_composition_move`
41
+ - Multi-dimensional: `evaluate_with_fabric`
34
42
 
35
- 11. **Act on recommendation:**
43
+ 11. **Report results** — show: score (0-1), keep_change recommendation, goal_progress, collateral_damage, dimension changes
44
+
45
+ 12. **Act on recommendation:**
36
46
  - If `keep_change=true` — keep, suggest `memory_learn` if score > 0.7
37
47
  - If `keep_change=false` — `undo()`, explain why (collateral damage, goal regression)
38
48
 
@@ -3,18 +3,42 @@ name: mix
3
3
  description: Mixing assistant — analyze and balance track levels, panning, and sends
4
4
  ---
5
5
 
6
- Help the user mix their session. Follow these steps:
6
+ Help the user mix their session using the V2 orchestration pipeline.
7
7
 
8
- 1. **Read the session** — `get_session_info` to see all tracks
9
- 2. **Analyze each track** — `get_track_info` for clip and device details, check current volume/pan
10
- 3. **Quick mix status** — `get_mix_summary` for a fast overview (track count, dynamics, stereo, issues)
11
- 4. **Run critics** — `get_mix_issues` to detect problems (masking, dynamics, stereo width, headroom)
12
- 5. **Suggest a mix** — propose volume levels, panning positions, and send amounts based on the track types, instruments, and detected issues
13
- 6. **Apply with confirmation** — only change levels after the user approves each suggestion
14
- 7. **Check return tracks** — `get_return_tracks` to see shared effects
15
- 8. **Master chain** — `get_master_track` to review the master
16
- 9. **Evaluate** — after changes, `evaluate_mix_move` with before/after snapshots to verify improvement
8
+ ## Orchestration Flow
17
9
 
18
- Present suggestions in a clear table format. Always explain the reasoning (e.g., "panning the hi-hats slightly right to create stereo width"). Use `undo` if the user doesn't like a change.
10
+ 1. **Session kernel** `get_session_kernel(request_text=<user's request>, mode="improve")` for the full turn snapshot
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`.
13
+
14
+ ## Analysis Phase
15
+
16
+ 4. **Quick status** — `get_mix_summary` for track count, dynamics, stereo, issues
17
+ 5. **Run critics** — `get_mix_issues` for problems. `get_masking_report` for frequency collisions.
18
+ 6. **Spectral check** — `get_master_spectrum` for 8-band balance. Genre targets:
19
+ - Hip-hop: sub dominant, centroid 400-800 Hz
20
+ - Electronic: balanced, centroid 800-1500 Hz
21
+ - Ambient: mid-focused, low sub, centroid 500-1000 Hz
22
+ 7. **Musical intelligence** — `detect_role_conflicts` to find tracks competing for the same space. `detect_repetition_fatigue` if arrangement feels stale.
23
+
24
+ ## Decision Phase
25
+
26
+ 8. **Propose semantic moves** — `propose_next_best_move(request_text=<user's request>)` for ranked suggestions (e.g., `make_punchier`, `widen_stereo`, `tighten_low_end`)
27
+ 9. **Preview chosen move** — `preview_semantic_move(move_id)` to see the full compile plan before executing
28
+ 10. **Rank by taste** — if user has history, `rank_moves_by_taste(move_specs)` to personalize ordering
29
+
30
+ ## Execution Phase
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?"
33
+ 12. **Verify after EVERY change** — read `value_string` in response, call `get_track_meters(include_stereo=true)`, check no track went silent
34
+ 13. **Capture + analyze** — `capture_audio` then `analyze_loudness` for LUFS/LRA, `analyze_spectrum_offline` for centroid/balance
35
+ 14. **Evaluate** — `evaluate_mix_move` with before/after snapshots. If `keep_change` is false, `undo` immediately.
36
+
37
+ ## Summary
38
+
39
+ 15. **Report** — "What I did / what improved / what I protected / what remains"
40
+ 16. **Session memory** — `add_session_memory` for notable decisions
41
+ 17. **Taste update** — successful moves update the TasteGraph automatically
19
42
 
20
43
  For deeper critic-driven iterative improvement, use the livepilot-mix-engine skill.
44
+ For exploratory mode (try multiple ideas), use `create_experiment` + `run_experiment` + `compare_experiments`.
@@ -3,28 +3,40 @@ name: perform
3
3
  description: Performance mode — enter a safety-constrained live performance context with energy tracking and safe moves
4
4
  ---
5
5
 
6
- Enter performance mode for live set support. All actions are constrained to safe and caution-level moves only.
6
+ Enter performance mode with safety constraints and energy tracking.
7
7
 
8
- 1. **Get performance state** — `get_performance_state` to see scene roles, energy levels, and current position
9
- 2. **Show the dashboard** — present: current scene, energy level, energy direction (up/down/hold), available safe moves
10
- 3. **Get safe moves** — `get_performance_safe_moves` for what can be done right now
11
- 4. **Check before acting** — `check_safety(move_type)` before every action. Only execute safe or caution moves. Caution moves require user confirmation.
8
+ ## Orchestration Flow
12
9
 
13
- **BLOCKED during performance** (never execute, warn if requested):
14
- - Creating or deleting tracks, clips, or scenes
15
- - Editing notes or arrangement
16
- - Adding or removing devices (device chain surgery)
10
+ 1. **Session kernel** — `get_session_kernel(request_text="live performance", mode="improve")`
11
+ 2. **Route** `route_request("live performance")` workflow_mode should be `performance_safe`
12
+ 3. **Performance state** `get_performance_state` for current scene, energy level, and safe moves
17
13
 
18
- **SAFE moves** (execute freely):
19
- - Scene launches, mute/unmute, volume nudges, send adjustments, macro tweaks, filter sweeps
14
+ ## Safety-First Rules
20
15
 
21
- **Scene transitions:**
22
- - `plan_scene_handoff(from_scene, to_scene)` generates an energy path and gesture sequence
23
- - Follow the energy path: if going up, suggest high-energy scenes; if going down, suggest breakdowns
16
+ - **NEVER** execute moves rated "high risk" during performance
17
+ - **ALWAYS** use `get_performance_safe_moves` before ANY change
18
+ - Only fire scenes, adjust volumes, and trigger safe effects
19
+ - No device loading, track creation, or destructive operations
24
20
 
25
- **Always show:**
26
- - Current energy level and direction
27
- - What moves are available
28
- - What moves are blocked and why
21
+ ## Performance Tools
29
22
 
30
- Use the livepilot-performance-engine skill for safety classification and move suggestions.
23
+ 4. **Safe moves** `get_performance_safe_moves` for available actions
24
+ 5. **Scene handoff** — `plan_scene_handoff` for safe transitions between scenes
25
+ 6. **Energy tracking** — monitor energy level across scene transitions
26
+ 7. **Semantic moves** — only performance-safe semantic moves:
27
+ - `smooth_scene_handoff` — safe transition between scenes
28
+ - Gesture templates: `pre_arrival_vacuum`, `re_entry_spotlight`
29
+
30
+ ## Live Dashboard
31
+
32
+ 8. **Monitor** — `get_track_meters(include_stereo=true)` for real-time levels
33
+ 9. **Spectrum** — `get_master_spectrum` for frequency balance during performance
34
+ 10. **Playing clips** — `get_playing_clips` to see what's active
35
+
36
+ ## Recovery
37
+
38
+ 11. **If something goes wrong** — `undo` immediately
39
+ 12. **Emergency** — `stop_all_clips` if audio goes haywire
40
+ 13. **Check safety** — `check_safety` to verify constraints are holding
41
+
42
+ Keep the user informed of what's happening. Never make surprise changes during a live set.
@@ -3,20 +3,41 @@ name: sounddesign
3
3
  description: Sound design workflow — load instruments and effects, shape parameters for a target sound
4
4
  ---
5
5
 
6
- Guide the user through designing a sound. Follow these steps:
7
-
8
- 1. **Ask about the target sound** — what character? (warm pad, aggressive bass, shimmering lead, atmospheric texture, etc.)
9
- 2. **Choose an instrument** — pick the right synth for the job, load it with `search_browser` → `load_browser_item`
10
- 3. **Verify device loaded** — `get_device_info` to confirm plugin initialized (AU/VST with `parameter_count` <= 1 = dead plugin — delete and replace with native alternative)
11
- 4. **Get parameters** — `get_device_parameters` to see what's available
12
- 5. **Shape the sound** — `set_device_parameter` or `batch_set_parameters` to dial in the character
13
- 6. **Run critics** — `analyze_sound_design(track_index)` to check for static timbre, missing modulation, spectral imbalance
14
- 7. **Address issues** — `plan_sound_design_move(track_index)` for suggested improvements
15
- 8. **Add effects** — load effects (reverb, delay, chorus, distortion, etc.) and tweak their parameters
16
- 9. **Create a test pattern** — `create_clip` + `add_notes` with a simple pattern to audition
17
- 10. **Fire the clip** to listen, iterate based on feedback
18
- 11. **Evaluate** — `evaluate_move(engine="sound_design")` with before/after to verify improvement
19
-
20
- Explain what each parameter does as you adjust it. Use `undo` liberally if something sounds wrong.
21
-
22
- For iterative critic-driven patch refinement, use the livepilot-sound-design-engine skill.
6
+ Guide the user through designing a sound using the V2 orchestration pipeline.
7
+
8
+ ## Orchestration Flow
9
+
10
+ 1. **Session kernel** — `get_session_kernel(request_text=<user's request>, mode="improve")`
11
+ 2. **Route** — `route_request(<user's request>)` for engine routes + semantic moves
12
+
13
+ ## Design Phase
14
+
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
17
+ 5. **Verify health** — `get_device_info` to confirm plugin initialized. Read `value_string` from `get_device_parameters` to understand actual units.
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
+ 7. **Verify after every change** — `get_track_meters(include_stereo=true)` — if stereo drops to 0, the effect killed the signal.
20
+
21
+ ## Critic Phase
22
+
23
+ 8. **Run critics** — `analyze_sound_design(track_index)` for static timbre, missing modulation, spectral imbalance
24
+ 9. **Plan improvements** — `plan_sound_design_move(track_index)` for suggested changes
25
+ 10. **Patch model** — `get_patch_model(track_index)` to see chain structure and controllable blocks
26
+
27
+ ## Effects & Automation
28
+
29
+ 11. **Add effects** — load with `find_and_load_device(track_index, device_name)`. Verify health.
30
+ 12. **Organic movement** — `apply_automation_shape(curve_type="perlin")` for filter/send drift
31
+ 13. **Automation recipes** — `apply_automation_recipe` for breathing, vinyl_crackle, auto_pan. Verify after applying.
32
+
33
+ ## Evaluation
34
+
35
+ 14. **Perception check** — `get_master_spectrum` or `capture_audio` + `analyze_spectrum_offline`
36
+ 15. **Evaluate** — `evaluate_move(goal_vector, before_snapshot, after_snapshot)` to score improvement
37
+
38
+ ## Summary
39
+
40
+ 16. **Report** — "What I changed / what improved / what I protected"
41
+ 17. **Memory** — if score > 0.7, suggest `memory_learn` to save the technique
42
+
43
+ For critic-driven iterative refinement, use the livepilot-sound-design-engine skill.
@@ -134,4 +134,5 @@ For deeper compositional analysis beyond basic arrangement:
134
134
 
135
135
  ## Reference
136
136
 
137
- Consult `references/ableton-workflow-patterns.md` in the livepilot-core skill for session/arrangement workflow patterns, song structures by genre, follow action configurations, clip launch modes, and export settings.
137
+ Supporting references live in the `livepilot-core` skill's `references/` directory:
138
+ - `livepilot-core/references/ableton-workflow-patterns.md` — session/arrangement workflows, song structures by genre, follow actions, clip launch modes, export settings
@@ -10,7 +10,7 @@ A filter or noise sweep that builds energy into the next section.
10
10
  - Duration: 2-8 bars
11
11
  - Implementation: ascending automation on filter cutoff (20% to 100%) plus optional white noise riser
12
12
  - Best for: verse-to-chorus, breakdown-to-drop
13
- - Tools: `set_clip_automation`, `apply_automation_shape(shape="exponential_rise")`
13
+ - Tools: `set_clip_automation`, `apply_automation_shape(track_index, clip_index, parameter_type="device", curve_type="exponential", start=0, end=1)`
14
14
 
15
15
  ### drum_build
16
16
  Progressive addition of percussion layers leading to the downbeat.
@@ -52,7 +52,7 @@ Low-pass filter sweep closing down to muffle the sound.
52
52
  - Duration: 2-4 bars
53
53
  - Implementation: descending automation on master or bus filter cutoff (100% to 20-30%)
54
54
  - Best for: section endings, transitions to breakdowns
55
- - Tools: `set_clip_automation`, `apply_automation_shape(shape="exponential_fall")`
55
+ - Tools: `set_clip_automation`, `apply_automation_shape(track_index, clip_index, parameter_type="device", curve_type="exponential", start=1, end=0)`
56
56
 
57
57
  ### reverb_wash
58
58
  Increase reverb wet level to blur the previous section into the next.
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: livepilot-core
3
- description: Core discipline for LivePilot — agentic production system for Ableton Live 12. 237 tools across 32 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. 293 tools across 39 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. 237 tools across 32 domains, three layers:
8
+ Agentic production system for Ableton Live 12. 293 tools across 39 domains, three layers:
9
9
 
10
10
  - **Device Atlas** — 280+ instruments, 139 drum kits, 350+ impulse responses. Consult `references/device-atlas/` before loading any device. Never guess a device name.
11
11
  - **M4L Analyzer** — Real-time audio analysis on the master bus (8-band spectrum, RMS/peak, key detection). Optional — all core tools work without it.
@@ -34,11 +34,12 @@ Agentic production system for Ableton Live 12. 237 tools across 32 domains, thre
34
34
  - If a track's stereo output drops to 0: the effect is killing the signal — check `get_device_parameters` for `value_string`, fix, re-verify
35
35
  - **Parameter ranges are NOT always 0-1.** Auto Filter Frequency is 20-135. Bit Depth is 1-16. Always read `value_string` to see actual units.
36
36
  16. **NEVER apply automation recipes without understanding the target parameter's range** — recipes generate 0-1 curves that get auto-scaled for device parameters, but always verify the result
37
+ 17. **LivePilot_Analyzer must be LAST on master chain** — always place after ALL effects (EQ, Compressor, Utility, etc.) so it measures the final post-processing output, not the raw signal. When loading effects on master, either load them before the analyzer or move the analyzer to end afterward
37
38
 
38
39
  ## Tool Speed Tiers
39
40
 
40
41
  ### Instant (<1s) — Use freely
41
- All 236 core tools plus M4L perception tools.
42
+ All 293 tools plus M4L perception tools.
42
43
 
43
44
  ### Fast (1-5s) — Use freely
44
45
  `analyze_loudness` · `analyze_mix` · `analyze_sound_design`
@@ -63,6 +64,7 @@ Report ALL errors to the user immediately. Common failure modes:
63
64
  - **Connection timeout** — Ableton unresponsive → check if session is heavy
64
65
  - **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
65
66
  - **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
67
+ - **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
66
68
 
67
69
  ## Technique Memory
68
70
 
@@ -71,6 +73,15 @@ Three modes:
71
73
  - **Fresh:** Skip memory when user wants something new ("ignore my history", "surprise me")
72
74
  - **Explicit recall:** `memory_recall` → `memory_get` → `memory_replay` when user references a saved technique
73
75
 
76
+ ## Wonder Mode — Stuck-Rescue Routing
77
+
78
+ - Use Wonder (`enter_wonder_mode`) for creative ambiguity and session rescue
79
+ - Do not fabricate three variants when only one real option exists
80
+ - Do not describe a branch as previewable unless it has a valid `compiled_plan`
81
+ - Prefer Wonder when `detect_stuckness` confidence > 0.5
82
+ - Prefer Wonder when the user's request is emotionally-shaped, not parametric
83
+ - Load `livepilot-wonder` skill for full workflow guidance
84
+
74
85
  ## Domain Skills
75
86
 
76
87
  For domain-specific workflows, load the appropriate skill:
@@ -100,7 +111,7 @@ Deep production knowledge in `references/`:
100
111
 
101
112
  | File | Content |
102
113
  |------|---------|
103
- | `references/overview.md` | All 237 tools with params and ranges |
114
+ | `references/overview.md` | All 293 tools with params and ranges |
104
115
  | `references/device-atlas/` | 280+ device corpus with URIs and presets |
105
116
  | `references/midi-recipes.md` | Drum patterns, chord voicings, humanization |
106
117
  | `references/sound-design.md` | Synth recipes, device chain patterns |
@@ -109,3 +120,48 @@ Deep production knowledge in `references/`:
109
120
  | `references/ableton-workflow-patterns.md` | Session/arrangement workflows |
110
121
  | `references/memory-guide.md` | Technique memory usage and quality templates |
111
122
  | `references/m4l-devices.md` | M4L bridge command reference |
123
+
124
+ ## V2 Orchestration Layer
125
+
126
+ For complex requests, use the V2 orchestration flow instead of ad-hoc tool calls:
127
+
128
+ ### Standard V2 Flow
129
+ 1. **`route_request`** — classify the request, get recommended engines and workflow mode
130
+ 2. **`get_session_kernel`** — build the unified turn snapshot (session, capabilities, taste, memory)
131
+ 3. **`propose_next_best_move`** — get ranked semantic move suggestions (taste-aware)
132
+ 4. **`preview_semantic_move`** — see what a move will do before committing
133
+ 5. **`apply_semantic_move`** — compile and execute the move (mode-dependent)
134
+ 6. **Evaluate** — use the appropriate evaluator to check the result
135
+
136
+ ### Semantic Moves
137
+ High-level musical intents that compile to deterministic tool sequences. 5 families:
138
+ - **mix** — `tighten_low_end`, `widen_stereo`, `make_punchier`, `darken_without_losing_width`, `reduce_repetition_fatigue`, `make_kick_bass_lock`, `reduce_foreground_competition`
139
+ - **arrangement** — `create_buildup_tension`, `smooth_scene_handoff`, `increase_contrast_before_payoff`, `refresh_repeated_section`
140
+ - **transition** — `increase_forward_motion`, `open_chorus`, `create_breakdown`, `bridge_sections`
141
+ - **sound_design** — `add_warmth`, `add_texture`, `shape_transients`, `add_space`
142
+ - **performance** — `recover_energy`, `decompress_tension`, `safe_spotlight`, `emergency_simplify`
143
+
144
+ Use `list_semantic_moves(domain="mix")` to discover available moves.
145
+
146
+ ### Experiment Branching
147
+ For creative exploration, use experiment branching to compare multiple approaches:
148
+ 1. `create_experiment(request_text="make it punchier")` — auto-proposes branches
149
+ 2. `run_experiment(experiment_id)` — trials each branch (apply → capture → undo)
150
+ 3. `compare_experiments(experiment_id)` — rank branches by score
151
+ 4. `commit_experiment(experiment_id, branch_id)` — apply winner permanently
152
+
153
+ ### Taste-Aware Ranking
154
+ The system learns user preferences from kept/undone moves:
155
+ - `get_taste_graph()` — current taste model
156
+ - `explain_taste_inference()` — human-readable explanation
157
+ - `rank_moves_by_taste(move_specs)` — sort options by preference fit
158
+ - `propose_next_best_move` automatically applies taste ranking when evidence exists
159
+
160
+ ### Musical Intelligence
161
+ Song-level analysis beyond parameters:
162
+ - `detect_repetition_fatigue()` — clip overuse, section staleness
163
+ - `detect_role_conflicts()` — tracks fighting for the same space
164
+ - `infer_section_purposes()` — label sections as setup/tension/payoff/contrast/release
165
+ - `score_emotional_arc()` — does the song have a satisfying build→climax→resolve?
166
+ - `analyze_phrase_arc()` — capture and evaluate musical phrases
167
+ - `compare_phrase_renders()` — compare phrase variants side by side
@@ -11,7 +11,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
11
11
  ### Saturator
12
12
 
13
13
  - **Type:** Native (all editions)
14
- - **Load via:** `find_and_load_device("Saturator")`
14
+ - **Load via:** `find_and_load_device(track_index, "Saturator")`
15
15
  - **What it does:** General-purpose waveshaping distortion. Pushes audio through a transfer curve that reshapes the waveform, adding harmonics. Ranges from imperceptible warmth to aggressive folding distortion depending on curve and drive. The most versatile single distortion device in Live.
16
16
 
17
17
  - **Signal flow:** Input -> Drive (gain stage) -> Waveshaper (selected curve) -> Color section (2-band post-EQ) -> Soft Clip (optional) -> Output gain -> Dry/Wet mix
@@ -50,7 +50,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
50
50
  ### Overdrive
51
51
 
52
52
  - **Type:** Native (all editions)
53
- - **Load via:** `find_and_load_device("Overdrive")`
53
+ - **Load via:** `find_and_load_device(track_index, "Overdrive")`
54
54
  - **What it does:** Warm overdrive effect with a built-in bandpass filter that shapes the frequency range being distorted. Models the behavior of a guitar overdrive pedal: the bandpass focuses the distortion on the mids, preventing fizzy highs and muddy lows. Less versatile than Saturator but more immediately musical on guitars, bass, and keys.
55
55
 
56
56
  - **Signal flow:** Input -> Bandpass Filter (pre-distortion frequency focus) -> Distortion stage -> Tone control (post-distortion brightness) -> Dynamics control -> Output -> Dry/Wet
@@ -79,7 +79,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
79
79
  ### Erosion
80
80
 
81
81
  - **Type:** Native (all editions)
82
- - **Load via:** `find_and_load_device("Erosion")`
82
+ - **Load via:** `find_and_load_device(track_index, "Erosion")`
83
83
  - **What it does:** Digital degradation effect. Modulates the audio signal with noise or a sine wave to create aliasing, digital artifacts, and high-frequency grit. Unlike analog-modeled distortion, Erosion sounds intentionally digital and broken. It creates artifacts that don't exist in the analog domain -- frequency-shifted noise clouds, aliasing products, digital "fuzz."
84
84
 
85
85
  - **Signal flow:** Input signal is ring-modulated/multiplied with a noise source or sine oscillator, creating sum-and-difference frequencies (aliasing artifacts). The result is mixed with the dry signal.
@@ -107,7 +107,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
107
107
  ### Redux
108
108
 
109
109
  - **Type:** Native (all editions, updated in Live 12)
110
- - **Load via:** `find_and_load_device("Redux")`
110
+ - **Load via:** `find_and_load_device(track_index, "Redux")`
111
111
  - **What it does:** Bit crusher and sample rate reducer. Reduces the bit depth (fewer amplitude steps = quantization noise) and/or sample rate (fewer samples per second = aliasing) of the audio signal. The Live 12 update added new filter modes, jitter controls, and a modernized interface that makes it significantly more musical than the old version.
112
112
 
113
113
  - **Signal flow:** Input -> Downsample (sample rate reduction with selectable filter/interpolation) -> Bit Reduction (bit depth quantization) -> Output
@@ -138,7 +138,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
138
138
  ### Pedal
139
139
 
140
140
  - **Type:** Native (Standard/Suite, or as add-on)
141
- - **Load via:** `find_and_load_device("Pedal")`
141
+ - **Load via:** `find_and_load_device(track_index, "Pedal")`
142
142
  - **What it does:** Guitar pedal emulation with three distinct distortion voicings. Designed to feel like stepping on a real stompbox. Each mode models a different class of guitar pedal circuit. More aggressive than Overdrive, more focused than Saturator, with a musical 3-band EQ.
143
143
 
144
144
  - **Signal flow:** Input -> Sub switch (optional low shelf boost) -> Gain stage (mode-dependent clipping circuit) -> 3-band EQ (Bass/Mid/Treble) -> Output gain -> Dry/Wet
@@ -172,7 +172,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
172
172
  ### Amp
173
173
 
174
174
  - **Type:** Native (Standard/Suite, or as add-on, developed with Softube)
175
- - **Load via:** `find_and_load_device("Amp")`
175
+ - **Load via:** `find_and_load_device(track_index, "Amp")`
176
176
  - **What it does:** Physical modeling of seven classic guitar amplifier circuits. Each model captures the nonlinear behavior, EQ voicing, and breakup character of a real amp. Unlike Pedal (which is a pre-amp stompbox), Amp models the full amplifier including preamp gain stage, tone stack, and power amp saturation.
177
177
 
178
178
  - **Signal flow:** Input -> Gain (preamp drive) -> Tone Stack (Bass/Middle/Treble - interactive like real amps) -> Power Amp (Volume - controls power amp saturation) -> Presence (post-power-amp HF control) -> Output -> Dry/Wet
@@ -210,7 +210,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
210
210
  ### Cabinet
211
211
 
212
212
  - **Type:** Native (Standard/Suite, or as add-on, developed with Softube)
213
- - **Load via:** `find_and_load_device("Cabinet")`
213
+ - **Load via:** `find_and_load_device(track_index, "Cabinet")`
214
214
  - **What it does:** Convolution-based speaker cabinet emulation. Models the frequency response and resonance of classic guitar/bass speaker cabinets with selectable virtual microphones and mic positions. Transforms the raw, harsh output of Amp into a natural, speaker-shaped tone. Essential companion to Amp.
215
215
 
216
216
  - **Signal flow:** Input -> Cabinet impulse response (convolution) -> Microphone model -> Mic Position -> Output -> Dry/Wet
@@ -241,7 +241,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
241
241
  ### Dynamic Tube
242
242
 
243
243
  - **Type:** Native (Standard/Suite)
244
- - **Load via:** `find_and_load_device("Dynamic Tube")`
244
+ - **Load via:** `find_and_load_device(track_index, "Dynamic Tube")`
245
245
  - **What it does:** Tube saturation with an input-following envelope. The distortion amount responds dynamically to the signal level -- louder passages get more saturation, quiet passages stay cleaner. This mimics how real tube circuits behave: they saturate progressively as the signal increases. Three tube models offer different saturation colors.
246
246
 
247
247
  - **Signal flow:** Input -> Envelope Follower (detects input level) -> Tube saturation stage (model-dependent, amount modulated by envelope) -> Tone control -> Output -> Dry/Wet
@@ -274,7 +274,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
274
274
  ### Vinyl Distortion
275
275
 
276
276
  - **Type:** Native (Standard/Suite)
277
- - **Load via:** `find_and_load_device("Vinyl Distortion")`
277
+ - **Load via:** `find_and_load_device(track_index, "Vinyl Distortion")`
278
278
  - **What it does:** Emulates the physical artifacts of vinyl record playback. Two independent distortion models (Tracing and Pinch) simulate different aspects of needle-on-groove behavior, plus a Crackle generator for surface noise. Creates that "sampled from vinyl" character heard in lo-fi hip-hop, downtempo, and sample-based production.
279
279
 
280
280
  - **Signal flow:** Input -> Tracing Model (simulates needle tracking distortion) + Pinch Effect (simulates pinch distortion) -> Crackle generator (added noise) -> Output -> Dry/Wet
@@ -306,7 +306,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
306
306
  ### Roar
307
307
 
308
308
  - **Type:** Native (Live 12 add-on, EUR 99)
309
- - **Load via:** `find_and_load_device("Roar")`
309
+ - **Load via:** `find_and_load_device(track_index, "Roar")`
310
310
  - **What it does:** Live 12's flagship distortion -- a multi-stage distortion synthesizer with flexible routing, feedback loops, modulation, and compression. Three independent gain stages (each with its own shaper and filter), six routing topologies, four modulation sources, and a feedback section with delay. Roar can do everything from subtle tape warming to screaming feedback distortion to multi-band destruction. It is a distortion design environment, not just an effect.
311
311
 
312
312
  - **Signal flow:** Input -> Drive/Tone (global input shaping) -> Routing topology (distributes signal to gain stages) -> Gain Stage(s) (each: shaper + pre/post filter) -> Feedback section (delay with compressor) -> Global Compressor -> Output -> Dry/Wet
@@ -376,7 +376,7 @@ Complete sonic atlas for every distortion, saturation, and coloration device ava
376
376
  ### Drum Buss (Distortion Aspect)
377
377
 
378
378
  - **Type:** Native (Standard/Suite)
379
- - **Load via:** `find_and_load_device("Drum Buss")`
379
+ - **Load via:** `find_and_load_device(track_index, "Drum Buss")`
380
380
  - **What it does:** All-in-one drum processing combining drive/distortion, transient shaping, bass enhancement, and damping. The distortion section specifically adds harmonic density and aggression to drum buses. While it's a multi-function device, the Drive section alone makes it worth including here.
381
381
 
382
382
  - **Signal flow:** Input -> Trim -> Drive section (distortion with 3 types) -> Crunch (compressive distortion) -> Transients -> Boom (resonant bass boost) -> Damping (HF control) -> Output -> Dry/Wet