livepilot 1.10.7 → 1.10.8

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 (122) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/README.md +11 -9
  3. package/bin/livepilot.js +146 -28
  4. package/installer/install.js +117 -11
  5. package/m4l_device/LivePilot_Analyzer.amxd +0 -0
  6. package/m4l_device/livepilot_bridge.js +1 -1
  7. package/mcp_server/__init__.py +1 -1
  8. package/mcp_server/atlas/__init__.py +39 -7
  9. package/mcp_server/atlas/tools.py +56 -15
  10. package/mcp_server/composer/layer_planner.py +27 -0
  11. package/mcp_server/composer/prompt_parser.py +15 -6
  12. package/mcp_server/connection.py +11 -3
  13. package/mcp_server/corpus/__init__.py +14 -4
  14. package/mcp_server/m4l_bridge.py +48 -7
  15. package/mcp_server/runtime/execution_router.py +16 -2
  16. package/mcp_server/runtime/remote_commands.py +6 -0
  17. package/mcp_server/sample_engine/models.py +22 -3
  18. package/mcp_server/semantic_moves/__init__.py +1 -0
  19. package/mcp_server/semantic_moves/compiler.py +9 -1
  20. package/mcp_server/semantic_moves/device_creation_compilers.py +47 -0
  21. package/mcp_server/semantic_moves/mix_compilers.py +170 -0
  22. package/mcp_server/semantic_moves/mix_moves.py +1 -1
  23. package/mcp_server/semantic_moves/models.py +5 -0
  24. package/mcp_server/semantic_moves/tools.py +15 -4
  25. package/mcp_server/server.py +7 -3
  26. package/mcp_server/services/singletons.py +68 -0
  27. package/mcp_server/splice_client/client.py +29 -8
  28. package/mcp_server/tools/analyzer.py +7 -6
  29. package/mcp_server/tools/clips.py +1 -1
  30. package/mcp_server/tools/midi_io.py +10 -0
  31. package/mcp_server/tools/tracks.py +1 -1
  32. package/mcp_server/tools/transport.py +1 -1
  33. package/mcp_server/translation_engine/tools.py +8 -4
  34. package/package.json +25 -3
  35. package/remote_script/LivePilot/__init__.py +29 -9
  36. package/remote_script/LivePilot/arrangement.py +12 -2
  37. package/remote_script/LivePilot/browser.py +16 -6
  38. package/remote_script/LivePilot/devices.py +10 -5
  39. package/remote_script/LivePilot/notes.py +13 -2
  40. package/remote_script/LivePilot/server.py +51 -13
  41. package/remote_script/LivePilot/version_detect.py +7 -4
  42. package/server.json +20 -0
  43. package/.claude-plugin/marketplace.json +0 -21
  44. package/.mcp.json.disabled +0 -9
  45. package/.mcpbignore +0 -60
  46. package/AGENTS.md +0 -46
  47. package/BUGS.md +0 -1570
  48. package/CODE_OF_CONDUCT.md +0 -27
  49. package/CONTRIBUTING.md +0 -131
  50. package/SECURITY.md +0 -48
  51. package/livepilot/.Codex-plugin/plugin.json +0 -8
  52. package/livepilot/.claude-plugin/plugin.json +0 -8
  53. package/livepilot/agents/livepilot-producer/AGENT.md +0 -313
  54. package/livepilot/commands/arrange.md +0 -47
  55. package/livepilot/commands/beat.md +0 -77
  56. package/livepilot/commands/evaluate.md +0 -49
  57. package/livepilot/commands/memory.md +0 -22
  58. package/livepilot/commands/mix.md +0 -44
  59. package/livepilot/commands/perform.md +0 -42
  60. package/livepilot/commands/session.md +0 -13
  61. package/livepilot/commands/sounddesign.md +0 -43
  62. package/livepilot/skills/livepilot-arrangement/SKILL.md +0 -155
  63. package/livepilot/skills/livepilot-composition-engine/SKILL.md +0 -107
  64. package/livepilot/skills/livepilot-composition-engine/references/form-patterns.md +0 -97
  65. package/livepilot/skills/livepilot-composition-engine/references/transition-archetypes.md +0 -102
  66. package/livepilot/skills/livepilot-core/SKILL.md +0 -184
  67. package/livepilot/skills/livepilot-core/references/ableton-workflow-patterns.md +0 -831
  68. package/livepilot/skills/livepilot-core/references/automation-atlas.md +0 -272
  69. package/livepilot/skills/livepilot-core/references/device-atlas/00-index.md +0 -110
  70. package/livepilot/skills/livepilot-core/references/device-atlas/distortion-and-character.md +0 -687
  71. package/livepilot/skills/livepilot-core/references/device-atlas/drums-and-percussion.md +0 -753
  72. package/livepilot/skills/livepilot-core/references/device-atlas/dynamics-and-punch.md +0 -525
  73. package/livepilot/skills/livepilot-core/references/device-atlas/eq-and-filtering.md +0 -402
  74. package/livepilot/skills/livepilot-core/references/device-atlas/midi-tools.md +0 -963
  75. package/livepilot/skills/livepilot-core/references/device-atlas/movement-and-modulation.md +0 -874
  76. package/livepilot/skills/livepilot-core/references/device-atlas/space-and-depth.md +0 -571
  77. package/livepilot/skills/livepilot-core/references/device-atlas/spectral-and-weird.md +0 -714
  78. package/livepilot/skills/livepilot-core/references/device-atlas/synths-native.md +0 -953
  79. package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +0 -34
  80. package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +0 -204
  81. package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +0 -173
  82. package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +0 -211
  83. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +0 -188
  84. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +0 -162
  85. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +0 -229
  86. package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +0 -243
  87. package/livepilot/skills/livepilot-core/references/m4l-devices.md +0 -352
  88. package/livepilot/skills/livepilot-core/references/memory-guide.md +0 -107
  89. package/livepilot/skills/livepilot-core/references/midi-recipes.md +0 -402
  90. package/livepilot/skills/livepilot-core/references/mixing-patterns.md +0 -578
  91. package/livepilot/skills/livepilot-core/references/overview.md +0 -290
  92. package/livepilot/skills/livepilot-core/references/sample-manipulation.md +0 -724
  93. package/livepilot/skills/livepilot-core/references/sound-design-deep.md +0 -140
  94. package/livepilot/skills/livepilot-core/references/sound-design.md +0 -393
  95. package/livepilot/skills/livepilot-devices/SKILL.md +0 -169
  96. package/livepilot/skills/livepilot-evaluation/SKILL.md +0 -156
  97. package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +0 -118
  98. package/livepilot/skills/livepilot-evaluation/references/evaluation-contracts.md +0 -121
  99. package/livepilot/skills/livepilot-evaluation/references/memory-promotion.md +0 -110
  100. package/livepilot/skills/livepilot-mix-engine/SKILL.md +0 -123
  101. package/livepilot/skills/livepilot-mix-engine/references/mix-critics.md +0 -143
  102. package/livepilot/skills/livepilot-mix-engine/references/mix-moves.md +0 -105
  103. package/livepilot/skills/livepilot-mixing/SKILL.md +0 -157
  104. package/livepilot/skills/livepilot-notes/SKILL.md +0 -130
  105. package/livepilot/skills/livepilot-performance-engine/SKILL.md +0 -122
  106. package/livepilot/skills/livepilot-performance-engine/references/performance-safety.md +0 -98
  107. package/livepilot/skills/livepilot-release/SKILL.md +0 -130
  108. package/livepilot/skills/livepilot-sample-engine/SKILL.md +0 -105
  109. package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +0 -87
  110. package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +0 -51
  111. package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +0 -131
  112. package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +0 -168
  113. package/livepilot/skills/livepilot-sound-design-engine/references/patch-model.md +0 -119
  114. package/livepilot/skills/livepilot-sound-design-engine/references/sound-design-critics.md +0 -118
  115. package/livepilot/skills/livepilot-wonder/SKILL.md +0 -79
  116. package/m4l_device/LivePilot_Analyzer.amxd.pre-presentation-backup +0 -0
  117. package/m4l_device/LivePilot_Analyzer.maxpat +0 -2705
  118. package/m4l_device/LivePilot_Analyzer.maxproj +0 -53
  119. package/manifest.json +0 -91
  120. package/mcp_server/splice_client/protos/app_pb2.pyi +0 -1153
  121. package/scripts/generate_tool_catalog.py +0 -106
  122. package/scripts/sync_metadata.py +0 -349
@@ -1,131 +0,0 @@
1
- # Sample Technique Catalog — 29 Recipes
2
-
3
- ## Category 1: Rhythmic Sampling
4
-
5
- ### slice_and_sequence (Surgeon)
6
- Classic MPC workflow: load loop, slice on transients, sequence with MIDI.
7
- **Material:** drum_loop, full_mix | **Steps:** load -> slice -> get slices -> create clip -> add notes
8
-
9
- ### vocal_chop_rhythm (Alchemist)
10
- Chop vocal into syllable-length slices, trigger as staccato rhythm. Burial-inspired.
11
- **Material:** vocal | **Steps:** load -> slice by region -> MIDI staccato -> Auto Filter
12
-
13
- ### micro_chop (Alchemist)
14
- 1/32 slices, varied velocity, slight timing offsets. J Dilla micro-timing.
15
- **Material:** any loop | **Steps:** load -> manual slice -> dense 1/32 MIDI
16
-
17
- ### stab_isolation (Surgeon)
18
- Isolate single chord stab, crop, retrigger rhythmically. DJ Premier style.
19
- **Material:** full_mix, instrument_loop | **Steps:** load -> classic mode -> crop -> MIDI
20
-
21
- ### euclidean_slice_trigger (Alchemist)
22
- Map Simpler slices to Euclidean rhythm for polyrhythmic texture.
23
- **Material:** drum_loop, vocal, instrument_loop | **Steps:** load -> slice -> Euclidean pattern
24
-
25
- ## Category 2: Textural Transformation
26
-
27
- ### extreme_stretch (Alchemist)
28
- Paulstretch-style: Texture warp at 10-50x, reverb wash. Stars of the Lid territory.
29
- **Material:** any | **Steps:** load -> warp 64 beats -> Reverb 60-80% wet
30
-
31
- ### drum_to_pad (Alchemist)
32
- Reverse + extreme stretch + reverb = drum hit becomes ambient pad.
33
- **Material:** drum_loop, one_shot | **Steps:** load -> reverse -> stretch -> Reverb
34
-
35
- ### reverse_layer (Alchemist)
36
- Reversed sample as pre-echo swell or ghostly texture.
37
- **Material:** vocal, instrument_loop, one_shot | **Steps:** load -> reverse -> Delay
38
-
39
- ### granular_scatter (Alchemist)
40
- Grain Delay as granular engine — scatter grains for cloud textures. Amon Tobin.
41
- **Material:** vocal, instrument_loop, texture | **Steps:** load -> Grain Delay -> Reverb
42
-
43
- ### spectral_freeze (Alchemist)
44
- Crop to tiny region (50-200ms), extreme stretch = spectral freeze drone.
45
- **Material:** vocal, instrument_loop, full_mix | **Steps:** load -> crop -> stretch 64 beats
46
-
47
- ### tail_harvest (Alchemist)
48
- Resample only the reverb/delay tail as independent texture.
49
- **Material:** any | **Steps:** load -> Reverb 100% wet -> level for subtle layer
50
-
51
- ## Category 3: Melodic/Harmonic
52
-
53
- ### key_matched_layer (Surgeon)
54
- Transpose to song key, EQ carve, blend behind existing elements.
55
- **Material:** instrument_loop | **Steps:** load -> transpose -> EQ -> volume -6 to -10dB
56
-
57
- ### vocal_harmony_stack (Surgeon)
58
- Pitch-shifted vocal layers — Bon Iver Prismizer approach.
59
- **Material:** vocal | **Steps:** load -> duplicate -> transpose +3/+5/+7 -> blend
60
-
61
- ### counterpoint_from_chops (Alchemist)
62
- Create countermelody from rearranged melodic fragments. Four Tet.
63
- **Material:** instrument_loop, vocal, full_mix | **Steps:** load -> slice by beat -> program melody
64
-
65
- ### chord_stab_extraction (Surgeon)
66
- Isolate chord from full mix, crop, retrigger. Classic house/disco.
67
- **Material:** full_mix, instrument_loop | **Steps:** load -> slice -> crop -> rhythmic pattern
68
-
69
- ## Category 4: Drum Enhancement
70
-
71
- ### break_layering (Surgeon)
72
- Layer drum break under programmed drums. High-pass to avoid kick clash.
73
- **Material:** drum_loop | **Steps:** load -> warp 16 beats -> EQ HP 200-400Hz -> volume -10 to -15dB
74
-
75
- ### ghost_note_texture (Alchemist)
76
- Heavy filter + low volume = barely audible ghost-note layer.
77
- **Material:** drum_loop | **Steps:** load -> Auto Filter BP 1-4kHz -> volume -18 to -24dB
78
-
79
- ### transient_replacement (Surgeon)
80
- Layer one-shot transient over existing drums for punch.
81
- **Material:** one_shot | **Steps:** load -> classic mode -> MIDI on kick/snare hits
82
-
83
- ### shuffle_extract (Alchemist)
84
- Extract groove timing from loop via slice positions, apply to MIDI.
85
- **Material:** drum_loop | **Steps:** load -> slice by transient -> read positions
86
-
87
- ## Category 5: Vocal Processing
88
-
89
- ### syllable_instrument (Alchemist)
90
- Each syllable = playable note. Vocal becomes a melodic instrument.
91
- **Material:** vocal | **Steps:** load -> slice by region -> program melody across slices
92
-
93
- ### formant_shift_character (Alchemist)
94
- Shift formants for alien/robotic character. Transpose +/-12st.
95
- **Material:** vocal | **Steps:** load -> transpose -> Corpus for resonant body
96
-
97
- ### vocal_freeze_drone (Alchemist)
98
- Sustain one vowel as ambient pad. Crop tiny region, extreme stretch.
99
- **Material:** vocal | **Steps:** load -> crop 100-300ms -> stretch 64 beats -> Chorus -> Reverb
100
-
101
- ### phone_recording_texture (Alchemist)
102
- Burial signature: pitch down, lo-pass, ghost-level volume.
103
- **Material:** vocal, foley | **Steps:** load -> pitch -5 to -12 -> LP 800Hz -> volume -20 to -30dB
104
-
105
- ## Category 6: Resampling Chains
106
-
107
- ### serial_resample (Alchemist)
108
- Multi-pass destruction: Saturator + Grain Delay + Reverb, freeze, flatten, repeat.
109
- **Material:** any | **Steps:** load -> Saturator -> Grain Delay -> Reverb -> freeze -> flatten
110
-
111
- ### parallel_resample (Alchemist)
112
- Duplicate, process one copy destructively, blend wet/dry.
113
- **Material:** any | **Steps:** load -> duplicate -> process duplicate -> blend -6 to -12dB
114
-
115
- ### freeze_flatten_rechop (Alchemist)
116
- Freeze processed material, flatten to audio, re-slice the result. Recursive.
117
- **Material:** any | **Steps:** freeze -> flatten -> re-load into Simpler -> slice again
118
-
119
- ## Category 7: Creative Constraints
120
-
121
- ### one_sample_challenge (Alchemist)
122
- Build entire beat from one sample: kick, snare, hat, bass, pad all from slices.
123
- **Material:** any | **Steps:** load -> slice -> program full beat across slice pitches
124
-
125
- ### found_sound_only (Alchemist)
126
- Non-musical field recordings as sole source material. Musique concrete.
127
- **Material:** foley | **Steps:** load -> slice -> EQ to isolate musical frequencies
128
-
129
- ### reverse_engineering (Both)
130
- Recreate a reference track's texture by sampling and transforming similar elements.
131
- **Material:** full_mix | **Steps:** load -> slice by beat -> analyze structure
@@ -1,168 +0,0 @@
1
- ---
2
- name: livepilot-sound-design-engine
3
- description: This skill should be used when the user asks to "design a sound", "analyze a patch", "fix a static sound", "add modulation", "check my timbre", "improve a synth patch", or wants critic-driven sound design feedback and iterative patch refinement.
4
- ---
5
-
6
- # Sound Design Engine — Critic-Driven Patch Refinement
7
-
8
- The sound design engine analyzes synth patches, identifies timbral weaknesses, and iteratively refines them through a measured critic loop. Every change is evaluated against the before state.
9
-
10
- ## The Sound Design Critic Loop
11
-
12
- ### Step 1 — Build Patch Model
13
-
14
- Call `get_patch_model(track_index)` to build a PatchModel for the target track. The PatchModel maps every device on the track into typed blocks (oscillator, filter, envelope, lfo, saturation, spatial, effect) and classifies each as `controllable` or `opaque`.
15
-
16
- Read the response carefully:
17
- - `blocks`: ordered list of processing blocks with types and parameter names
18
- - `controllable_params`: parameters you can modify via `set_device_parameter`
19
- - `opaque_blocks`: third-party plugins where parameters may not map cleanly
20
- - `modulation_sources`: detected LFOs, envelopes, and macro mappings
21
- - `signal_flow`: how blocks connect (serial, parallel, or rack chains)
22
-
23
- See `references/patch-model.md` for the full PatchModel structure and native device block map.
24
-
25
- ### Step 2 — Analyze
26
-
27
- Call `analyze_sound_design(track_index)` to run all sound design critics against the patch. The response contains an `issues` array with `critic`, `severity`, `block`, and `evidence`.
28
-
29
- Five critics run during analysis. See `references/sound-design-critics.md` for thresholds:
30
-
31
- - **static_timbre** — sound does not evolve over time, no movement
32
- - **no_modulation_sources** — no LFOs, envelopes, or automation detected
33
- - **modulation_flatness** — modulation exists but ranges are too narrow to hear
34
- - **missing_filter** — raw oscillator output with no spectral shaping
35
- - **spectral_imbalance** — too much energy in one frequency region, or gaps
36
-
37
- ### Step 3 — Plan
38
-
39
- Pick the highest-severity issue. Call `plan_sound_design_move(track_index)` with the issue. The planner returns a single intervention:
40
-
41
- - `move_type`: one of the move vocabulary entries
42
- - `target_device`: device index on the track
43
- - `target_parameter`: parameter name or index
44
- - `target_value`: the new value
45
- - `rationale`: why this move addresses the issue
46
-
47
- Move vocabulary:
48
- - **modulation_injection** — add or increase LFO/envelope depth on a parameter
49
- - **filter_shaping** — adjust cutoff, resonance, or filter type
50
- - **parameter_automation** — create clip automation for time-varying timbral change
51
- - **oscillator_tuning** — adjust pitch, detune, waveform, or unison settings
52
-
53
- ### Step 4 — Capture Before
54
-
55
- 1. Call `get_device_parameters(track_index, device_index)` — save current parameter state
56
- 2. Call `get_master_spectrum` — save spectral snapshot (if analyzer available)
57
-
58
- ### Step 5 — Execute
59
-
60
- Apply the planned move using the appropriate tool:
61
-
62
- - `set_device_parameter` for direct parameter changes (filter cutoff, LFO rate, oscillator shape)
63
- - `toggle_device` for enabling/disabling processing blocks
64
- - `batch_set_parameters` when the move requires coordinated changes (e.g., LFO depth + rate together)
65
- - `set_clip_automation` for parameter automation moves
66
- - `find_and_load_device` when the fix requires adding a new device (e.g., adding an Auto Filter)
67
-
68
- Execute one move at a time. Verify before continuing.
69
-
70
- ### Step 6 — Capture After
71
-
72
- Repeat the same measurements:
73
-
74
- 1. Call `get_device_parameters(track_index, device_index)` — confirm the change took effect
75
- 2. Call `get_master_spectrum` — save post-change spectral snapshot
76
-
77
- ### Step 7 — Evaluate
78
-
79
- Call `evaluate_move(goal_vector, before_snapshot, after_snapshot)` where `goal_vector` is the compiled goal from Step 1 and snapshots contain `{spectrum: {...}, rms: float, peak: float}`. Read:
80
-
81
- - `keep_change` (bool): whether the change improved the sound
82
- - `score` (0.0-1.0): quality improvement magnitude
83
- - `timbral_delta`: what changed spectrally
84
- - `explanation`: human-readable summary
85
-
86
- ### Step 8 — Keep or Undo
87
-
88
- If `keep_change` is `false`, call `undo()`. Explain what was tried and why it did not improve the sound.
89
-
90
- If `keep_change` is `true`, report the improvement. If score > 0.7, consider calling `memory_learn(name="...", type="device_chain", qualities={"summary": "..."}, payload={...})` to save the technique.
91
-
92
- ### Step 9 — Repeat
93
-
94
- Return to Step 2. Re-analyze after each kept change. The critic list updates as issues are resolved. Continue until the user is satisfied or no high-severity issues remain.
95
-
96
- ## Working with Opaque Plugins
97
-
98
- Third-party AU/VST plugins may report as `opaque` in the PatchModel:
99
-
100
- 1. Check `get_plugin_parameters(track_index, device_index)` — some plugins expose parameters through the host
101
- 2. If `parameter_count <= 1`, the plugin is dead or unresponsive. Call `delete_device` and suggest a native alternative
102
- 3. If parameters are available but unnamed (Parameter 1, Parameter 2...), try `map_plugin_parameter` to identify them by ear
103
- 4. Report opaque status to the user — sound design critics cannot fully analyze what they cannot inspect
104
-
105
- ## Quick Sound Design Checks
106
-
107
- - **"What's wrong with this sound?"** — Call `get_sound_design_issues(track_index)` for a diagnostic without executing fixes
108
- - **"Show me the patch"** — Call `get_patch_model(track_index)` then `walk_device_tree(track_index)` for full device chain visibility
109
- - **"What can I automate?"** — Read the `controllable_params` list from the PatchModel response
110
-
111
- ## Native Device Strengths
112
-
113
- When adding processing blocks, prefer native Ableton devices for controllability:
114
-
115
- - **Wavetable** — complex oscillator section with built-in modulation matrix
116
- - **Operator** — FM synthesis with per-operator envelopes and LFO
117
- - **Analog** — subtractive with two filters and two LFOs
118
- - **Auto Filter** — standalone filter with envelope follower and LFO
119
- - **Corpus** — resonant body modeling for physical character
120
- - **Erosion** — high-frequency noise and distortion artifacts
121
- - **Saturator** — waveshaping with multiple curve types
122
-
123
- Always `search_browser` before loading — never guess device names.
124
-
125
- ## Deep Sound Design Reference
126
-
127
- Consult `references/sound-design-deep.md` for advanced techniques when working on creative requests. Key principles:
128
-
129
- ### Making Sounds Breathe
130
- Every static sound can become alive with modulation below conscious perception:
131
- - **Filter breathing:** LFO at 0.1-0.5 Hz on filter cutoff, 5-15% depth
132
- - **Oscillator drift:** ±1-3 cent detune with very slow LFO (0.05-0.2 Hz)
133
- - **Amplitude micro-variation:** Perlin/brownian noise on volume, ±1-3 dB
134
- - **Rule:** If the listener can hear the modulation, it's too much. The best modulation is felt, not heard.
135
-
136
- ### Space as Composition
137
- Reverb and delay are not decorations — in dub/minimal they ARE the composition:
138
- - **Dub chord:** Short stab → long delay (70-80% feedback) + filter on the delay return
139
- - **Delay throws:** Momentary send spikes (0→70% for half a beat) — the echo IS the event
140
- - **Sidechain reverb:** Dry drums trigger sidechain compression on reverb returns — the room pulses
141
- - **Feedback modulation:** Delay feedback at 75-85% + modulate delay time ±5-10% for warped echoes
142
-
143
- ### Creative Sidechain (Beyond Pump)
144
- Sidechain compression is a modulation source, not just a mix tool:
145
- - **Sidechain filter:** Envelope follower from kick modulates pad filter cutoff — pad brightens between kicks
146
- - **Ghost sidechain:** Muted kick as sidechain source for textures — phantom groove on non-rhythmic elements
147
- - **Multiband sidechain:** Only duck sub frequencies from pad — shimmer stays, sub clears for kick
148
-
149
- ### Effects as Instruments
150
- - **Self-oscillating filter:** Push resonance until it rings, play notes by changing cutoff
151
- - **Feedback loops:** Route output back to input through effects + compressor to control
152
- - **Convolution as synthesis:** Load non-IR files (speech, drum break) into convolution reverb — imprints spectral character
153
- - **Granular reverb:** Very short reverb (0.1-0.3s) high diffusion on percussion — smears transient into tonal cloud
154
-
155
- ### The Frequency Dance
156
- At any moment, each frequency band should have one primary element. When one opens up, another pulls back:
157
- - Chord filter opens into highs → pull hi-hat back
158
- - Bass drops → kick shortens
159
- - Reverb tail fills → dry elements duck
160
- This is mix engineering as composition.
161
-
162
- ### When to Apply These
163
- - User says "make it breathe" or "it sounds static" → micro-modulation
164
- - User says "more space" or "deeper" → dub techniques (delay throws, reverb composition)
165
- - User says "more groove" or "make it pump" → creative sidechain
166
- - User says "more texture" or "more complex" → textural layering
167
- - User says "surprise me" or "WTF moment" → brief textural disruption (2-8 beats max)
168
- - User says "warmer" or "more analog" → oscillator drift + subtle saturation + filter breathing
@@ -1,119 +0,0 @@
1
- # Patch Model Reference
2
-
3
- The PatchModel is returned by `get_patch_model(track_index)` and represents the complete signal processing structure of a track's device chain.
4
-
5
- ## PatchModel Structure
6
-
7
- ```json
8
- {
9
- "track_index": 0,
10
- "track_name": "Lead Synth",
11
- "blocks": [
12
- {
13
- "device_index": 0,
14
- "device_name": "Wavetable",
15
- "block_type": "oscillator",
16
- "controllable": true,
17
- "parameters": ["Osc 1 Pos", "Osc 1 Gain", "Sub Gain", ...],
18
- "sub_blocks": [
19
- { "block_type": "filter", "parameters": ["Filter Freq", "Filter Res", ...] },
20
- { "block_type": "lfo", "parameters": ["LFO 1 Rate", "LFO 1 Amount", ...] },
21
- { "block_type": "envelope", "parameters": ["Amp Attack", "Amp Decay", ...] }
22
- ]
23
- },
24
- {
25
- "device_index": 1,
26
- "device_name": "Auto Filter",
27
- "block_type": "filter",
28
- "controllable": true,
29
- "parameters": ["Frequency", "Resonance", "Env. Modulation", ...]
30
- }
31
- ],
32
- "controllable_params": [...],
33
- "opaque_blocks": [],
34
- "modulation_sources": [
35
- { "type": "lfo", "device_index": 0, "rate": "0.5 Hz", "targets": ["Filter Freq"] }
36
- ],
37
- "signal_flow": "serial"
38
- }
39
- ```
40
-
41
- ## Block Types
42
-
43
- ### oscillator
44
- Sound source generators. Found in synth instruments (Wavetable, Operator, Analog, Drift, Simpler, Sampler).
45
-
46
- Key parameters: waveform/position, pitch/tune/detune, unison voices/spread, sub oscillator level, FM amount/ratio.
47
-
48
- ### filter
49
- Spectral shaping. Found as sub-blocks inside instruments or as standalone devices (Auto Filter, EQ Eight).
50
-
51
- Key parameters: cutoff frequency, resonance, filter type (LP/HP/BP/Notch), slope (12/24 dB), envelope modulation amount, drive.
52
-
53
- ### envelope
54
- Time-shaping contour generators. Usually ADSR controlling amplitude or filter cutoff.
55
-
56
- Key parameters: attack, decay, sustain, release. Some instruments offer additional envelopes with arbitrary targets.
57
-
58
- ### lfo
59
- Low-frequency oscillators for cyclic modulation.
60
-
61
- Key parameters: rate (Hz or synced), waveform (sine, triangle, square, saw, random), amount/depth, target parameter, phase, offset.
62
-
63
- ### saturation
64
- Waveshaping, distortion, and harmonic generation.
65
-
66
- Devices: Saturator, Overdrive, Pedal, Amp, Erosion, Dynamic Tube. Key parameters: drive, tone, type/curve, dry/wet.
67
-
68
- ### spatial
69
- Stereo field and space processing.
70
-
71
- Devices: Reverb, Delay, Chorus, Phaser, Flanger, Echo, Hybrid Reverb. Key parameters: decay/time, pre-delay, size, damping, dry/wet, feedback.
72
-
73
- ### effect
74
- Catch-all for utility and dynamics processing.
75
-
76
- Devices: Compressor, Glue Compressor, Limiter, Gate, Utility, Tuner, Spectrum. Key parameters vary by device.
77
-
78
- ## Controllable vs Opaque
79
-
80
- - **Controllable**: native Ableton devices and well-behaved plugins where `get_device_parameters` returns named, ranged parameters. All LivePilot set/get parameter tools work reliably.
81
- - **Opaque**: third-party AU/VST plugins where parameter inspection fails or returns generic names (Parameter 1, Parameter 2). The sound design engine can detect the block exists but cannot reason about individual parameters.
82
-
83
- Check `parameter_count` on opaque blocks. If <= 1, the plugin failed to load — delete it and replace with a native alternative.
84
-
85
- ## Native Device Block Map
86
-
87
- Quick reference for which block types each native device provides:
88
-
89
- | Device | Primary Block | Sub-blocks |
90
- |--------|--------------|------------|
91
- | Wavetable | oscillator | filter, lfo, envelope |
92
- | Operator | oscillator | filter, lfo, envelope |
93
- | Analog | oscillator | filter, lfo, envelope |
94
- | Drift | oscillator | filter, lfo, envelope |
95
- | Simpler | oscillator | filter, lfo, envelope |
96
- | Sampler | oscillator | filter, lfo, envelope |
97
- | Auto Filter | filter | lfo, envelope |
98
- | EQ Eight | filter | — |
99
- | Compressor | effect | envelope (sidechain) |
100
- | Glue Compressor | effect | — |
101
- | Saturator | saturation | — |
102
- | Overdrive | saturation | — |
103
- | Pedal | saturation | — |
104
- | Reverb | spatial | — |
105
- | Delay | spatial | filter |
106
- | Echo | spatial | filter, lfo |
107
- | Chorus-Ensemble | spatial | — |
108
- | Phaser-Flanger | spatial | lfo |
109
- | Hybrid Reverb | spatial | — |
110
- | Corpus | spatial | — |
111
- | Utility | effect | — |
112
-
113
- ## Rack Detection
114
-
115
- If a track contains an Instrument Rack or Audio Effect Rack, the PatchModel reports:
116
-
117
- - `signal_flow`: "parallel" (rack chains run in parallel)
118
- - Each chain appears as a nested block list
119
- - Use `get_rack_chains(track_index, device_index)` for per-chain detail
@@ -1,118 +0,0 @@
1
- # Sound Design Critics Reference
2
-
3
- Each critic runs during `analyze_sound_design(track_index)` and produces an issue object with `critic`, `severity` (0.0-1.0), `block`, and `evidence`.
4
-
5
- ## static_timbre
6
-
7
- Detects sounds that do not evolve over time. A static timbre lacks movement, making it sound flat and lifeless in a mix.
8
-
9
- **Thresholds:**
10
- - severity >= 0.7: No detectable spectral change over a 4-bar window. Crest factor of spectral flux < 0.5 dB
11
- - severity >= 0.4: Minimal change (spectral flux < 1.5 dB). Some subtle movement present
12
- - severity < 0.4: Adequate movement detected, likely intentional sustain character
13
-
14
- **Evidence format:**
15
- ```json
16
- {
17
- "spectral_flux_db": 0.3,
18
- "analysis_window_bars": 4,
19
- "brightest_moment_db": -8.2,
20
- "dullest_moment_db": -8.5
21
- }
22
- ```
23
-
24
- **Typical fix:** modulation_injection — add LFO to filter cutoff (rate 0.1-2 Hz, depth 20-40%).
25
-
26
- ## no_modulation_sources
27
-
28
- Detects patches with zero modulation sources: no LFOs, no envelopes beyond amp/filter ADSR, no automation, no macro mappings.
29
-
30
- **Thresholds:**
31
- - severity >= 0.7: Zero modulation sources on a melodic/pad/lead instrument
32
- - severity >= 0.4: No modulation on a bass or rhythmic element (some genres keep bass static intentionally)
33
- - severity < 0.4: Drum hits and one-shots (modulation not expected)
34
-
35
- **Evidence format:**
36
- ```json
37
- {
38
- "lfo_count": 0,
39
- "envelope_count": 1,
40
- "automation_lanes": 0,
41
- "macro_mappings": 0,
42
- "instrument_type": "pad"
43
- }
44
- ```
45
-
46
- **Typical fix:** modulation_injection — enable device LFO if available, or add Auto Filter with LFO. For pads, map LFO to filter cutoff and/or oscillator pitch (subtle detune).
47
-
48
- ## modulation_flatness
49
-
50
- Detects modulation sources that exist but operate with such narrow ranges they produce no audible effect.
51
-
52
- **Thresholds:**
53
- - severity >= 0.7: Modulation depth < 5% of parameter range on all targets
54
- - severity >= 0.4: Modulation depth 5-15% — present but barely perceptible
55
- - severity < 0.4: Depth > 15%, audible modulation
56
-
57
- **Evidence format:**
58
- ```json
59
- {
60
- "modulation_source": "LFO 1",
61
- "target_parameter": "Filter Cutoff",
62
- "depth_percent": 3.2,
63
- "parameter_range": [20, 20000],
64
- "effective_range": [850, 920]
65
- }
66
- ```
67
-
68
- **Typical fix:** Increase modulation depth to 20-40% for filter targets, 5-15% for pitch targets, 10-30% for amplitude targets.
69
-
70
- ## missing_filter
71
-
72
- Detects raw oscillator output with no filter or spectral shaping in the signal path. Unfiltered signals often sound harsh and sit poorly in a mix.
73
-
74
- **Thresholds:**
75
- - severity >= 0.7: No filter device in the signal chain, and the source is a harmonically rich waveform (saw, square, FM)
76
- - severity >= 0.4: Filter present but fully open (cutoff at maximum, no resonance)
77
- - severity < 0.4: Filter active and shaping the spectrum
78
-
79
- **Evidence format:**
80
- ```json
81
- {
82
- "has_filter": false,
83
- "source_waveform": "sawtooth",
84
- "harmonic_content": "rich",
85
- "device_chain": ["Wavetable"]
86
- }
87
- ```
88
-
89
- **Typical fix:** filter_shaping — add Auto Filter (low-pass, cutoff around 2-5 kHz, resonance 20-40%) or enable the instrument's built-in filter.
90
-
91
- ## spectral_imbalance
92
-
93
- Detects patches with too much energy concentrated in one frequency region, or significant spectral gaps.
94
-
95
- **Thresholds:**
96
- - severity >= 0.7: Single band > 12 dB above the mean, or a gap > 12 dB below
97
- - severity >= 0.4: Imbalance 6-12 dB in one or more regions
98
- - severity < 0.4: Balanced spectrum appropriate for the instrument role
99
-
100
- **Evidence format:**
101
- ```json
102
- {
103
- "peak_band": "high_mid",
104
- "peak_deviation_db": 14.2,
105
- "gap_band": "low_mid",
106
- "gap_deviation_db": -8.5,
107
- "band_levels_db": {
108
- "sub": -22.0,
109
- "low": -14.5,
110
- "low_mid": -20.1,
111
- "mid": -11.6,
112
- "high_mid": -2.4,
113
- "high": -8.9
114
- }
115
- }
116
- ```
117
-
118
- **Typical fix:** filter_shaping to tame the peak (EQ cut or filter sweep), or oscillator_tuning to fill the gap (add sub oscillator, adjust waveform).
@@ -1,79 +0,0 @@
1
- ---
2
- name: livepilot-wonder
3
- description: >
4
- This skill should be used when the user asks to "surprise me",
5
- "make it magical", "I'm stuck", "give me options", "take it somewhere",
6
- or when stuckness confidence is high. Provides the Wonder Mode
7
- stuck-rescue workflow with honest variant labeling and preview-first UX.
8
- ---
9
-
10
- # Wonder Mode — Stuck-Rescue Workflow
11
-
12
- Wonder Mode is a **preview-first stuck-rescue workflow**. It diagnoses
13
- why a session is stuck, generates genuinely distinct executable options,
14
- and lets the user preview, compare, and commit.
15
-
16
- ## When to Trigger
17
-
18
- - User says "I'm stuck", "surprise me", "make it magical", "give me options"
19
- - `detect_stuckness` confidence > 0.5
20
- - 3+ consecutive undos in action ledger
21
- - Multiple plausible next moves with no clear winner
22
-
23
- ## When NOT to Trigger
24
-
25
- - Exact operational requests ("set track 3 volume to -6dB")
26
- - Narrow deterministic edits ("quantize this clip")
27
- - Performance-safe-only context (unless explicitly requested)
28
-
29
- ## The Workflow
30
-
31
- 1. `enter_wonder_mode` — get diagnosis + 1-3 variants
32
- 2. Explain the diagnosis in **musical language**, not tool language
33
- 3. Present variants honestly:
34
- - Executable variants: can be previewed and committed
35
- - Analytical variants (`analytical_only: true`): directional ideas only
36
- 4. `create_preview_set` with `wonder_session_id` for executable variants
37
- 5. `render_preview_variant` for each executable variant
38
- 6. `compare_preview_variants` — present recommendation with reasons
39
- 7. User chooses:
40
- - `commit_preview_variant` — applies the variant, records outcome
41
- - `discard_wonder_session` — rejects all, keeps creative thread open
42
-
43
- ## Honesty Rules
44
-
45
- - **Never describe an analytical variant as previewable**
46
- - **Never fabricate distinctness** by relabeling the same move
47
- - **Fewer than 3 variants is correct** when fewer distinct moves exist
48
- - 1 executable + 2 analytical is an honest, useful result
49
- - The `variant_count_actual` field tells you how many are real
50
-
51
- ## Presenting Results
52
-
53
- For each variant, explain:
54
- - What it changes (in musical terms)
55
- - What it preserves (sacred elements)
56
- - Why it matters for this specific session
57
- - Whether it's executable or analytical-only
58
-
59
- For the recommendation, explain:
60
- - Why this one over the others
61
- - What risk it introduces
62
- - What sacred elements it preserves
63
-
64
- ## Creative Intelligence (consult before generating variants)
65
-
66
- Wonder Mode should produce musically interesting results, not just technically correct ones. Before generating or applying any variant:
67
-
68
- 1. Read `references/device-knowledge/automation-as-music.md` for automation shapes and macro gestures
69
- 2. Read `references/device-knowledge/creative-thinking.md` for emotional-to-technical mapping
70
- 3. Read `references/device-knowledge/chains-genre.md` if the session has a genre identity
71
-
72
- When reviewing Wonder variants, aim for musical depth:
73
- - **Filter arcs** — evolving filter across sections adds movement
74
- - **Space arcs** — reverb/delay sends breathing with density
75
- - **Micro-modulation** — subtle LFOs on sustained sounds
76
- - **Macro gestures** — coordinated multi-parameter moves at transitions
77
-
78
- Note: these are agent-level guidelines, not enforced by the Wonder engine.
79
- The engine generates variants from semantic moves; the agent adds musical polish.