livepilot 1.9.23 → 1.10.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 (191) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/AGENTS.md +3 -3
  3. package/CHANGELOG.md +119 -0
  4. package/CONTRIBUTING.md +1 -1
  5. package/README.md +144 -13
  6. package/bin/livepilot.js +87 -0
  7. package/installer/codex.js +147 -0
  8. package/livepilot/.Codex-plugin/plugin.json +2 -2
  9. package/livepilot/.claude-plugin/plugin.json +2 -2
  10. package/livepilot/skills/livepilot-core/SKILL.md +21 -4
  11. package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +34 -0
  12. package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +204 -0
  13. package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +173 -0
  14. package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +211 -0
  15. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +188 -0
  16. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +162 -0
  17. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +229 -0
  18. package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +243 -0
  19. package/livepilot/skills/livepilot-core/references/overview.md +13 -9
  20. package/livepilot/skills/livepilot-core/references/sample-manipulation.md +724 -0
  21. package/livepilot/skills/livepilot-core/references/sound-design-deep.md +140 -0
  22. package/livepilot/skills/livepilot-devices/SKILL.md +16 -2
  23. package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +1 -1
  24. package/livepilot/skills/livepilot-release/SKILL.md +19 -5
  25. package/livepilot/skills/livepilot-sample-engine/SKILL.md +104 -0
  26. package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +87 -0
  27. package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +51 -0
  28. package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +131 -0
  29. package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +45 -0
  30. package/livepilot/skills/livepilot-wonder/SKILL.md +15 -0
  31. package/livepilot.mcpb +0 -0
  32. package/m4l_device/livepilot_bridge.js +1 -1
  33. package/manifest.json +2 -2
  34. package/mcp_server/__init__.py +1 -1
  35. package/mcp_server/atlas/__init__.py +357 -0
  36. package/mcp_server/atlas/device_atlas.json +44067 -0
  37. package/mcp_server/atlas/enrichments/__init__.py +111 -0
  38. package/mcp_server/atlas/enrichments/audio_effects/auto_filter.yaml +162 -0
  39. package/mcp_server/atlas/enrichments/audio_effects/beat_repeat.yaml +183 -0
  40. package/mcp_server/atlas/enrichments/audio_effects/channel_eq.yaml +126 -0
  41. package/mcp_server/atlas/enrichments/audio_effects/chorus_ensemble.yaml +149 -0
  42. package/mcp_server/atlas/enrichments/audio_effects/color_limiter.yaml +109 -0
  43. package/mcp_server/atlas/enrichments/audio_effects/compressor.yaml +159 -0
  44. package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb.yaml +143 -0
  45. package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb_pro.yaml +178 -0
  46. package/mcp_server/atlas/enrichments/audio_effects/delay.yaml +151 -0
  47. package/mcp_server/atlas/enrichments/audio_effects/drum_buss.yaml +142 -0
  48. package/mcp_server/atlas/enrichments/audio_effects/dynamic_tube.yaml +147 -0
  49. package/mcp_server/atlas/enrichments/audio_effects/echo.yaml +167 -0
  50. package/mcp_server/atlas/enrichments/audio_effects/eq_eight.yaml +148 -0
  51. package/mcp_server/atlas/enrichments/audio_effects/eq_three.yaml +121 -0
  52. package/mcp_server/atlas/enrichments/audio_effects/erosion.yaml +103 -0
  53. package/mcp_server/atlas/enrichments/audio_effects/filter_delay.yaml +173 -0
  54. package/mcp_server/atlas/enrichments/audio_effects/gate.yaml +130 -0
  55. package/mcp_server/atlas/enrichments/audio_effects/gated_delay.yaml +133 -0
  56. package/mcp_server/atlas/enrichments/audio_effects/glue_compressor.yaml +142 -0
  57. package/mcp_server/atlas/enrichments/audio_effects/grain_delay.yaml +141 -0
  58. package/mcp_server/atlas/enrichments/audio_effects/hybrid_reverb.yaml +160 -0
  59. package/mcp_server/atlas/enrichments/audio_effects/limiter.yaml +97 -0
  60. package/mcp_server/atlas/enrichments/audio_effects/multiband_dynamics.yaml +174 -0
  61. package/mcp_server/atlas/enrichments/audio_effects/overdrive.yaml +119 -0
  62. package/mcp_server/atlas/enrichments/audio_effects/pedal.yaml +145 -0
  63. package/mcp_server/atlas/enrichments/audio_effects/phaser_flanger.yaml +161 -0
  64. package/mcp_server/atlas/enrichments/audio_effects/redux.yaml +114 -0
  65. package/mcp_server/atlas/enrichments/audio_effects/reverb.yaml +190 -0
  66. package/mcp_server/atlas/enrichments/audio_effects/roar.yaml +159 -0
  67. package/mcp_server/atlas/enrichments/audio_effects/saturator.yaml +146 -0
  68. package/mcp_server/atlas/enrichments/audio_effects/shifter.yaml +154 -0
  69. package/mcp_server/atlas/enrichments/audio_effects/spectral_resonator.yaml +141 -0
  70. package/mcp_server/atlas/enrichments/audio_effects/spectral_time.yaml +164 -0
  71. package/mcp_server/atlas/enrichments/audio_effects/vector_delay.yaml +140 -0
  72. package/mcp_server/atlas/enrichments/audio_effects/vinyl_distortion.yaml +141 -0
  73. package/mcp_server/atlas/enrichments/instruments/analog.yaml +222 -0
  74. package/mcp_server/atlas/enrichments/instruments/bass.yaml +202 -0
  75. package/mcp_server/atlas/enrichments/instruments/collision.yaml +150 -0
  76. package/mcp_server/atlas/enrichments/instruments/drift.yaml +167 -0
  77. package/mcp_server/atlas/enrichments/instruments/electric.yaml +137 -0
  78. package/mcp_server/atlas/enrichments/instruments/emit.yaml +163 -0
  79. package/mcp_server/atlas/enrichments/instruments/meld.yaml +164 -0
  80. package/mcp_server/atlas/enrichments/instruments/operator.yaml +197 -0
  81. package/mcp_server/atlas/enrichments/instruments/poli.yaml +192 -0
  82. package/mcp_server/atlas/enrichments/instruments/sampler.yaml +218 -0
  83. package/mcp_server/atlas/enrichments/instruments/simpler.yaml +217 -0
  84. package/mcp_server/atlas/enrichments/instruments/tension.yaml +156 -0
  85. package/mcp_server/atlas/enrichments/instruments/tree_tone.yaml +162 -0
  86. package/mcp_server/atlas/enrichments/instruments/vector_fm.yaml +165 -0
  87. package/mcp_server/atlas/enrichments/instruments/vector_grain.yaml +166 -0
  88. package/mcp_server/atlas/enrichments/instruments/wavetable.yaml +162 -0
  89. package/mcp_server/atlas/enrichments/midi_effects/arpeggiator.yaml +156 -0
  90. package/mcp_server/atlas/enrichments/midi_effects/bouncy_notes.yaml +93 -0
  91. package/mcp_server/atlas/enrichments/midi_effects/chord.yaml +147 -0
  92. package/mcp_server/atlas/enrichments/midi_effects/melodic_steps.yaml +97 -0
  93. package/mcp_server/atlas/enrichments/midi_effects/note_echo.yaml +108 -0
  94. package/mcp_server/atlas/enrichments/midi_effects/note_length.yaml +97 -0
  95. package/mcp_server/atlas/enrichments/midi_effects/pitch.yaml +76 -0
  96. package/mcp_server/atlas/enrichments/midi_effects/random.yaml +117 -0
  97. package/mcp_server/atlas/enrichments/midi_effects/rhythmic_steps.yaml +103 -0
  98. package/mcp_server/atlas/enrichments/midi_effects/scale.yaml +83 -0
  99. package/mcp_server/atlas/enrichments/midi_effects/step_arp.yaml +112 -0
  100. package/mcp_server/atlas/enrichments/midi_effects/velocity.yaml +119 -0
  101. package/mcp_server/atlas/enrichments/utility/amp.yaml +159 -0
  102. package/mcp_server/atlas/enrichments/utility/cabinet.yaml +109 -0
  103. package/mcp_server/atlas/enrichments/utility/corpus.yaml +150 -0
  104. package/mcp_server/atlas/enrichments/utility/resonators.yaml +131 -0
  105. package/mcp_server/atlas/enrichments/utility/spectrum.yaml +63 -0
  106. package/mcp_server/atlas/enrichments/utility/tuner.yaml +51 -0
  107. package/mcp_server/atlas/enrichments/utility/utility.yaml +136 -0
  108. package/mcp_server/atlas/enrichments/utility/vocoder.yaml +160 -0
  109. package/mcp_server/atlas/scanner.py +236 -0
  110. package/mcp_server/atlas/tools.py +224 -0
  111. package/mcp_server/composer/__init__.py +1 -0
  112. package/mcp_server/composer/engine.py +452 -0
  113. package/mcp_server/composer/layer_planner.py +427 -0
  114. package/mcp_server/composer/prompt_parser.py +329 -0
  115. package/mcp_server/composer/tools.py +201 -0
  116. package/mcp_server/connection.py +53 -8
  117. package/mcp_server/corpus/__init__.py +377 -0
  118. package/mcp_server/device_forge/__init__.py +1 -0
  119. package/mcp_server/device_forge/builder.py +377 -0
  120. package/mcp_server/device_forge/models.py +142 -0
  121. package/mcp_server/device_forge/templates.py +483 -0
  122. package/mcp_server/device_forge/tools.py +162 -0
  123. package/mcp_server/hook_hunter/analyzer.py +23 -0
  124. package/mcp_server/hook_hunter/models.py +1 -0
  125. package/mcp_server/hook_hunter/tools.py +4 -2
  126. package/mcp_server/m4l_bridge.py +1 -0
  127. package/mcp_server/memory/taste_graph.py +68 -1
  128. package/mcp_server/memory/tools.py +15 -4
  129. package/mcp_server/musical_intelligence/detectors.py +14 -1
  130. package/mcp_server/musical_intelligence/tools.py +11 -8
  131. package/mcp_server/persistence/__init__.py +1 -0
  132. package/mcp_server/persistence/base_store.py +82 -0
  133. package/mcp_server/persistence/project_store.py +106 -0
  134. package/mcp_server/persistence/taste_store.py +122 -0
  135. package/mcp_server/preview_studio/models.py +1 -0
  136. package/mcp_server/preview_studio/tools.py +56 -13
  137. package/mcp_server/runtime/capability.py +66 -0
  138. package/mcp_server/runtime/capability_probe.py +137 -0
  139. package/mcp_server/runtime/execution_router.py +143 -0
  140. package/mcp_server/runtime/live_version.py +102 -0
  141. package/mcp_server/runtime/remote_commands.py +87 -0
  142. package/mcp_server/runtime/tools.py +18 -4
  143. package/mcp_server/sample_engine/__init__.py +1 -0
  144. package/mcp_server/sample_engine/analyzer.py +216 -0
  145. package/mcp_server/sample_engine/critics.py +390 -0
  146. package/mcp_server/sample_engine/models.py +193 -0
  147. package/mcp_server/sample_engine/moves.py +127 -0
  148. package/mcp_server/sample_engine/planner.py +186 -0
  149. package/mcp_server/sample_engine/sources.py +540 -0
  150. package/mcp_server/sample_engine/techniques.py +908 -0
  151. package/mcp_server/sample_engine/tools.py +442 -0
  152. package/mcp_server/semantic_moves/__init__.py +3 -0
  153. package/mcp_server/semantic_moves/device_creation_moves.py +237 -0
  154. package/mcp_server/semantic_moves/mix_moves.py +41 -41
  155. package/mcp_server/semantic_moves/performance_moves.py +13 -13
  156. package/mcp_server/semantic_moves/sample_compilers.py +372 -0
  157. package/mcp_server/semantic_moves/sound_design_moves.py +15 -15
  158. package/mcp_server/semantic_moves/tools.py +18 -17
  159. package/mcp_server/semantic_moves/transition_moves.py +16 -16
  160. package/mcp_server/server.py +51 -0
  161. package/mcp_server/services/__init__.py +1 -0
  162. package/mcp_server/services/motif_service.py +67 -0
  163. package/mcp_server/session_continuity/tracker.py +29 -1
  164. package/mcp_server/song_brain/builder.py +28 -1
  165. package/mcp_server/song_brain/models.py +4 -0
  166. package/mcp_server/song_brain/tools.py +20 -2
  167. package/mcp_server/sound_design/critics.py +89 -1
  168. package/mcp_server/splice_client/__init__.py +1 -0
  169. package/mcp_server/splice_client/client.py +347 -0
  170. package/mcp_server/splice_client/models.py +96 -0
  171. package/mcp_server/splice_client/protos/__init__.py +1 -0
  172. package/mcp_server/splice_client/protos/app_pb2.py +319 -0
  173. package/mcp_server/splice_client/protos/app_pb2.pyi +1153 -0
  174. package/mcp_server/splice_client/protos/app_pb2_grpc.py +1946 -0
  175. package/mcp_server/tools/arrangement.py +69 -0
  176. package/mcp_server/tools/automation.py +15 -2
  177. package/mcp_server/tools/devices.py +117 -6
  178. package/mcp_server/tools/notes.py +37 -4
  179. package/mcp_server/wonder_mode/diagnosis.py +5 -0
  180. package/mcp_server/wonder_mode/engine.py +85 -1
  181. package/mcp_server/wonder_mode/tools.py +6 -1
  182. package/package.json +12 -2
  183. package/remote_script/LivePilot/__init__.py +8 -1
  184. package/remote_script/LivePilot/arrangement.py +114 -0
  185. package/remote_script/LivePilot/browser.py +56 -1
  186. package/remote_script/LivePilot/devices.py +236 -6
  187. package/remote_script/LivePilot/mixing.py +8 -3
  188. package/remote_script/LivePilot/server.py +5 -1
  189. package/remote_script/LivePilot/transport.py +3 -0
  190. package/remote_script/LivePilot/version_detect.py +78 -0
  191. package/scripts/sync_metadata.py +132 -0
@@ -0,0 +1,140 @@
1
+ # Deep Sound Design — Techniques from the Masters
2
+
3
+ This is a reference for creative sound design thinking, not a recipe book. These are principles and techniques drawn from deep minimal, dub techno, and experimental electronic production. Use them as inspiration — adapt, combine, subvert.
4
+
5
+ ## Philosophy: Sound Design IS Composition
6
+
7
+ In minimal and experimental electronic music, sound design and composition are the same thing. A filter sweep IS the melody. A reverb tail IS the harmony. Modulation IS the arrangement. The producer's job is not to write notes — it's to sculpt evolving textures.
8
+
9
+ **Villalobos principle:** A single sound source, properly modulated, IS a complete piece. The trick is making one thing do the work of ten.
10
+
11
+ **Basic Channel principle:** Space is an instrument. Delay and reverb are not effects — they are the composition itself.
12
+
13
+ **Richie Hawtin principle:** Subtraction is more powerful than addition. Remove one thing and the remaining elements become louder without touching a fader.
14
+
15
+ ---
16
+
17
+ ## Technique Library
18
+
19
+ ### 1. Micro-Modulation (Making Things Breathe)
20
+
21
+ The difference between "sounds like a computer" and "sounds alive" is modulation that operates below conscious perception.
22
+
23
+ **Filter breathing:** Assign an LFO at 0.1-0.5 Hz to a lowpass filter cutoff with a depth of 5-15%. The filter opens and closes like breathing. The listener doesn't hear "filter modulation" — they feel "organic movement."
24
+
25
+ **Oscillator drift:** Detune oscillators by 1-3 cents with slow LFO modulation (0.05-0.2 Hz). This creates the warmth of analog — tiny pitch instabilities that prevent digital sterility.
26
+
27
+ **Amplitude micro-variation:** Automate track volume with perlin/brownian noise at very low depth (±1-3 dB). Every bar sounds slightly different even with identical notes.
28
+
29
+ **Key insight:** If the listener can consciously hear the modulation, it's too much. The best modulation is felt, not heard.
30
+
31
+ ### 2. Space as Composition (Dub Techniques)
32
+
33
+ In dub techno, reverb and delay are not decorations — they generate the harmonic and melodic content.
34
+
35
+ **The dub chord:** A short, dry chord stab fed into long delay (70-80% feedback) with a filter on the delay return. The delay tail becomes the pad. The filter on the return shapes the "melody" — slowly opening the filter on the delay return makes the chord brighten over time while the source stays dark.
36
+
37
+ **Reverb as harmony:** A single note hit fed into a reverb with 5-10s decay. The reverb tail becomes a drone that carries harmonic information. Modulating the reverb's pre-delay and diffusion creates the impression of harmonic movement.
38
+
39
+ **Delay throws:** Normally sends are set to a fixed level. A "throw" is a momentary spike — send level goes from 0 to 60-80% for half a beat, then back to 0. The element echoes into space and the echo fills the gap. Use this on snare, hats, vocal fragments. The throw IS the composition — it creates rhythmic space events.
40
+
41
+ **Feedback modulation:** Set delay feedback to 75-85% (near self-oscillation). Then modulate the delay time by ±5-10%. The pitch shifts create eerie, warped echoes — the signature Basic Channel sound.
42
+
43
+ ### 3. Creative Sidechain (Beyond Pump)
44
+
45
+ Sidechain compression is not just for the kick-bass pump. It's a modulation source.
46
+
47
+ **Sidechain reverb from drums:** Route the dry drum signal to trigger sidechain compression on the reverb return. When drums hit, the reverb ducks. When drums are silent, the reverb fills the space. This creates rhythmic breathing in the entire reverb field — the room "pulses" with the groove.
48
+
49
+ **Sidechain everything from a ghost kick:** Create a muted kick track (no audio output). Use it as a sidechain source for pads, textures, atmospheres. This creates rhythmic ducking on elements that have no rhythmic content — they pulse with a phantom groove.
50
+
51
+ **Sidechain filter instead of volume:** Instead of ducking volume, use an envelope follower (from the kick) to modulate a filter cutoff on the pad. When the kick hits, the pad filter closes. When the kick releases, the pad opens. Subtler than volume ducking — the pad "brightens" between kicks instead of getting quieter.
52
+
53
+ **Multiband sidechain:** Only duck the low frequencies of a pad from the kick. The high frequencies stay constant — shimmer remains while the sub clears for the kick. Use Multiband Dynamics or an EQ before the compressor.
54
+
55
+ ### 4. Textural Layering (Villalobos Method)
56
+
57
+ Villalobos builds textures by layering tiny, filtered, processed fragments — each one barely audible alone, together they create a living fabric.
58
+
59
+ **Grain technique:** Take a single percussion hit. Duplicate it 3-4 times. Process each copy differently — one through bit reduction, one through heavy reverb, one through a bandpass filter, one pitch-shifted. Pan them across the stereo field. Mix each at 15-25% of the original. The result: one "hit" that has depth, width, and organic irregularity.
60
+
61
+ **Noise sculpting:** White noise through a tight bandpass filter with slow LFO on the center frequency creates a "breathing" texture. Add this at -20dB under your main elements. It's the "air" in the room. Modulate the filter Q for moments of focus.
62
+
63
+ **Sample mangling:** Take a melodic sample. Time-stretch it to 200-400% length. This reveals the granular structure — artifacts become texture. Filter the result aggressively. Use what remains as an atmospheric layer.
64
+
65
+ ### 5. Frequency Domain Thinking
66
+
67
+ Don't think about tracks — think about frequency bands. Each band is a voice in the mix.
68
+
69
+ **Sub (20-60 Hz):** One element only. Kick or bass, never both at the same time. Sidechain or frequency split to ensure they alternate.
70
+
71
+ **Low (60-200 Hz):** Bass body and kick impact. Keep this mono. This is where groove lives.
72
+
73
+ **Low-mid (200-500 Hz):** The "warmth" zone but also the "mud" zone. Be selective — only one or two elements should occupy this space at any time.
74
+
75
+ **Mid (500-2kHz):** Where most melodic/harmonic content sits. Filter pads to stay below 2kHz for depth. Bright melodic elements (leads) sit above 1kHz.
76
+
77
+ **High-mid (2-6kHz):** Presence and attack. Hi-hats, percussion transients, vocal presence. This is what makes things "cut through."
78
+
79
+ **High/Air (6-20kHz):** Shimmer and sparkle. Reverb tails, noise textures, cymbal sustain. Subtle modulation here creates "life."
80
+
81
+ **The frequency dance:** At any given moment, each frequency band should have one primary element. When the chord opens its filter into the highs, pull the hi-hat back. When the bass drops, the kick shortens. This is mix engineering as composition.
82
+
83
+ ### 6. Organic Automation Shapes
84
+
85
+ Real producers don't draw straight lines or perfect curves. Their automation reflects human movement.
86
+
87
+ **Perlin noise:** Smooth, natural-looking randomness. Perfect for filter cutoff drift, send level breathing, oscillator detune. Sounds like "a hand on a knob."
88
+
89
+ **Brownian motion:** Random walk — each value is close to the previous one. Good for very slow parameter drift over 16-32 bars. Creates the feeling of gradual transformation.
90
+
91
+ **Exponential curves:** For build-ups and filter sweeps. Energy accumulates slowly at first, then accelerates. This is how tension works in music — the last 4 bars contain more change than the first 12.
92
+
93
+ **Asymmetric envelopes:** Fast attack, slow release on send throws. The element stabs into the reverb quickly, but the tail fades slowly. This is more musical than symmetric curves.
94
+
95
+ **Anti-quantize:** After drawing automation, add tiny random offsets (±0.05 beats) to the breakpoints. This prevents the automation from sounding "gridded."
96
+
97
+ ### 7. The WTF Moment
98
+
99
+ Every great minimal track has 2-3 moments where something unexpected happens — a sound that doesn't belong, a brief disruption that breaks the hypnosis just enough to deepen it.
100
+
101
+ **Techniques:**
102
+ - Reverse a percussion hit for 1 bar before a section change
103
+ - Pitch-shift the entire master bus by ±2 semitones for 2 beats
104
+ - Suddenly remove ALL reverb for 4 beats — the room "dries up"
105
+ - Send one element to 100% delay feedback for 1 beat, creating a momentary pitch spiral
106
+ - Drop the tempo by 0.5 BPM for 16 bars, then return — subconscious tension
107
+ - Insert 1 bar of silence (mute master) — the most powerful "effect"
108
+
109
+ **Rules:**
110
+ - Maximum 3 WTF moments per 8-minute track
111
+ - Never repeat the same trick
112
+ - The WTF moment should last 2-8 beats — any longer and it becomes a section, not a moment
113
+ - After the WTF, return to exactly where you were — the contrast is what makes it powerful
114
+
115
+ ### 8. Effects as Instruments
116
+
117
+ In experimental electronic music, effects chains ARE instruments.
118
+
119
+ **Self-oscillating filter:** Push a filter's resonance to the point where it starts ringing. Play notes by changing the cutoff frequency. The filter becomes a sine oscillator with natural overtones.
120
+
121
+ **Feedback loop instrument:** Route a track's output back to its own input through effects. Add a compressor to prevent runaway feedback. What you get is a living, evolving texture that responds to its own output. Add a gate to control when it speaks.
122
+
123
+ **Granular reverb:** Very short reverb (0.1-0.3s) with high diffusion on percussive sounds. The reverb doesn't add "space" — it smears the transient into a tonal cloud. The pitch of the cloud is determined by the reverb size.
124
+
125
+ **Convolution as synthesis:** Load a non-impulse-response file into a convolution reverb — a speech recording, a drum break, a synth pad. The "reverb" imprints the spectral character of that source onto whatever passes through it. A kick drum through a vocal convolution gains speech-like formants.
126
+
127
+ ---
128
+
129
+ ## Application Principles
130
+
131
+ When working on any track, think about these layers:
132
+
133
+ 1. **Foundation:** What is the one element that defines this track? Protect it.
134
+ 2. **Modulation:** What is moving? If nothing is moving, the track is dead.
135
+ 3. **Space:** Where are things in the stereo field? What reverb/delay creates the "room"?
136
+ 4. **Frequency balance:** At any moment, is every frequency band occupied by exactly one primary element?
137
+ 5. **Surprise:** Where are the 2-3 WTF moments that break the hypnosis?
138
+ 6. **Evolution:** Over 8 minutes, what changes? Not clip changes — parameter changes. The filter that opened 5% in the first minute is at 70% by minute 6.
139
+
140
+ **The test:** Mute any single track. If the track sounds empty, that element is doing too much. If the track sounds the same, that element isn't doing enough. Each element should be missed when removed but not dominant when present.
@@ -7,9 +7,23 @@ description: This skill should be used when the user asks to "load a device", "a
7
7
 
8
8
  Load instruments, effects, and plugins into Ableton Live tracks. Every device operation follows one discipline: search first, verify after.
9
9
 
10
- ## Browser Workflow — The Safe Path
10
+ ## Primary Workflow — Atlas-Driven
11
11
 
12
- Always use the two-step browser workflow for loading devices:
12
+ The device atlas contains 1,305 devices with sonic descriptions, recipes, and recommendations. Always start here:
13
+
14
+ 1. **Discover:** `atlas_search(query)` — find devices by name, sound character, or genre
15
+ 2. **Learn:** `atlas_device_info(device_id)` — full parameters, recipes, gotchas, pairings
16
+ 3. **Suggest:** `atlas_suggest(intent, genre)` — "I need a warm pad" → ranked device+recipe combos
17
+ 4. **Chain:** `atlas_chain_suggest(role, genre)` — full device chain for a track role (instrument + effects)
18
+ 5. **Load:** Use the URI from atlas results → `load_browser_item(uri)` or `find_and_load_device(name)`
19
+ 6. **Recipe:** Apply starter recipe params → `batch_set_parameters(params)` from the atlas entry
20
+ 7. **Verify:** `get_device_info(track_index, device_index)` — check health flags
21
+
22
+ If the atlas doesn't have a device (newly installed plugin, user sample), fall back to the browser workflow below.
23
+
24
+ ## Browser Workflow — The Fallback Path
25
+
26
+ Use the browser workflow when the atlas doesn't have what you need:
13
27
 
14
28
  1. **Search:** `search_browser(path, name_filter)` — returns a list of matching items with exact URIs
15
29
  2. **Inspect:** Read the results. Confirm the item name, type, and path match what you need
@@ -104,7 +104,7 @@ Call `get_capability_state` at the start of any evaluation session. The response
104
104
  {
105
105
  "mode": "normal",
106
106
  "analyzer_connected": true,
107
- "bridge_version": "1.9.18",
107
+ "bridge_version": "1.10.0",
108
108
  "spectral_cache_age_ms": 1200,
109
109
  "flucoma_available": false,
110
110
  "session_connected": true
@@ -28,8 +28,8 @@ Run this checklist EVERY time the user says "update everything", "push", "releas
28
28
 
29
29
  ## 2. Tool Count (must ALL match)
30
30
 
31
- Current: **293 tools across 39 domains**.
32
- Core (no M4L): **149**. Analyzer (M4L): **29**. Perception (offline): **4**. V2 engines: **86+**.
31
+ Current: **316 tools across 43 domains**.
32
+ Core (no M4L): **289**. Bridge (M4L): **27**. V2 engines: **106+**.
33
33
 
34
34
  Verify: `grep -rc "@mcp.tool" mcp_server/tools/ | grep -v ":0" | awk -F: '{sum+=$2} END{print sum}'`
35
35
 
@@ -56,10 +56,10 @@ Files that reference tool count:
56
56
 
57
57
  ## 3. Domain Count
58
58
 
59
- Current: **39 domains**: transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement, memory, analyzer, automation, theory, generative, harmony, midi_io, perception, agent_os, composition, motif, research, planner, project_brain, runtime, evaluation, mix_engine, sound_design, transition_engine, reference_engine, translation_engine, performance_engine, song_brain, preview_studio, hook_hunter, stuckness_detector, wonder_mode, session_continuity, creative_constraints.
59
+ Current: **43 domains**: transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement, memory, analyzer, automation, theory, generative, harmony, midi_io, perception, agent_os, composition, motif, research, planner, project_brain, runtime, evaluation, mix_engine, sound_design, transition_engine, reference_engine, translation_engine, performance_engine, song_brain, preview_studio, hook_hunter, stuckness_detector, wonder_mode, session_continuity, creative_constraints, device_forge, sample_engine, atlas, composer.
60
60
 
61
- - [ ] All files that mention domain count say "39 domains"
62
- - [ ] Domain lists include ALL 39 (especially newer domains — they're the most often omitted)
61
+ - [ ] All files that mention domain count say "43 domains"
62
+ - [ ] Domain lists include ALL 43 (especially newer domains — they're the most often omitted)
63
63
 
64
64
  ## 4. npm Registry
65
65
 
@@ -105,6 +105,20 @@ Current: **39 domains**: transport, tracks, clips, notes, devices, scenes, mixin
105
105
  - [ ] Remote script version matches MCP server version
106
106
  - [ ] All tests pass: `python3 -m pytest tests/ -v`
107
107
 
108
+ ## 11. Automated Checks
109
+
110
+ - [ ] `python scripts/sync_metadata.py --check` — all metadata in sync
111
+ - [ ] `python -m pytest tests/test_command_boundary_audit.py` — no invalid TCP targets
112
+ - [ ] `python -m pytest tests/test_move_annotations.py` — all moves annotated
113
+ - [ ] `python -m pytest tests/test_capability.py` — capability contract works
114
+ - [ ] `python -m pytest tests/test_capability_probe.py` — doctor probe works
115
+
116
+ ## 12. Release Smoke Board
117
+
118
+ - [ ] Run through `docs/manual/release-smoke-board.md` scenarios against real Ableton session
119
+ - [ ] All preview modes correctly labeled (audible/metadata/analytical)
120
+ - [ ] Persistence survives server restart
121
+
108
122
  ## Quick Verify Command
109
123
 
110
124
  ```bash
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: livepilot-sample-engine
3
+ description: >
4
+ This skill should be used when the user asks to "sample", "chop",
5
+ "slice a loop", "find me a sample", "load a sample", "flip this",
6
+ "resample", "vocal chop", "found sound", "texture from", "turn this into",
7
+ "break", "one-shot", "load into Simpler", or when get_sample_opportunities
8
+ finds gaps in the song's sample usage.
9
+ ---
10
+
11
+ # Sample Engine — AI Sample Manipulation for Ableton Live
12
+
13
+ The Sample Engine is LivePilot's intelligence layer for sample discovery,
14
+ analysis, critique, and creative manipulation. It turns raw samples into
15
+ musical elements through 29 techniques drawn from Dilla, Burial, Amon Tobin,
16
+ Four Tet, and DJ Premier.
17
+
18
+ ## Philosophy: Surgeon vs Alchemist
19
+
20
+ Every sample workflow is guided by one of two philosophies:
21
+
22
+ - **Surgeon** — Precision. Match key, align tempo, carve frequencies, blend
23
+ seamlessly. The sample should sound like it was always part of the track.
24
+ - **Alchemist** — Transformation. Reverse, stretch, destroy, rebuild.
25
+ The original creator shouldn't recognize their sample.
26
+ - **Auto** (default) — Context decides. Building a clean layer? Surgeon.
27
+ Stuck and need surprise? Alchemist. The critics and intent determine which.
28
+
29
+ ## 6 MCP Tools
30
+
31
+ | Tool | Purpose |
32
+ |------|---------|
33
+ | `analyze_sample` | Build SampleProfile — material type, key, BPM, recommendations |
34
+ | `evaluate_sample_fit` | 6-critic battery — key, tempo, frequency, role, vibe, intent fit |
35
+ | `search_samples` | Search Splice library, Ableton browser, and local filesystem |
36
+ | `suggest_sample_technique` | Recommend techniques from the 29-recipe library |
37
+ | `plan_sample_workflow` | End-to-end plan: analyze + critique + technique + compiled steps |
38
+ | `get_sample_opportunities` | Analyze song for where samples could improve it |
39
+
40
+ ## Workflow Modes
41
+
42
+ ### Direct Request
43
+ User asks to do something specific with a sample:
44
+ ```
45
+ "Chop this vocal into a rhythm"
46
+ -> analyze_sample -> evaluate_sample_fit(intent="rhythm")
47
+ -> suggest_sample_technique -> execute
48
+ ```
49
+
50
+ ### Discovery Mode
51
+ User wants to find and use a sample:
52
+ ```
53
+ "Find me a dark vocal for this track"
54
+ -> search_samples(query="dark vocal") -> present candidates
55
+ -> user picks -> analyze -> critique -> plan -> execute
56
+ ```
57
+
58
+ ### Wonder Mode Integration
59
+ When stuck, Wonder Mode can suggest sample-based variants:
60
+ - 6 sample-domain semantic moves in the registry
61
+ - Fully compiled, previewable, committable plans
62
+ - Diagnosis detects: no_organic_texture, stale_drums, dense_but_static
63
+
64
+ ## Golden Rules
65
+
66
+ 1. **Always analyze before loading** — `analyze_sample` tells you what
67
+ the material is before you commit to a technique
68
+ 2. **Always critique before executing** — `evaluate_sample_fit` catches
69
+ key clashes, tempo mismatches, and frequency masking before they happen
70
+ 3. **Respect the intent** — "rhythm" and "texture" need different approaches
71
+ even for the same sample
72
+ 4. **Start from the nearest technique** — don't improvise a workflow when
73
+ a proven recipe exists in the library
74
+ 5. **Present both plans** — surgeon and alchemist. Let the user choose.
75
+
76
+ ## Material Types
77
+
78
+ | Type | Detection | Best Simpler Mode | Best Warp Mode |
79
+ |------|-----------|-------------------|----------------|
80
+ | vocal | "vocal", "vox", "voice" in name | Slice (Region) | Complex Pro |
81
+ | drum_loop | "drum", "break", "beat" in name | Slice (Transient) | Beats |
82
+ | instrument_loop | "guitar", "piano", "synth" | Slice (Beat) | Complex Pro |
83
+ | one_shot | "kick", "snare", "clap", short | Classic | Complex |
84
+ | texture | "ambient", "pad", "drone" | Classic | Texture |
85
+ | foley | "foley", "field", "recording" | Classic | Texture |
86
+ | fx | "fx", "riser", "sweep" | Classic | Complex |
87
+ | full_mix | full mix, long duration | Slice (Beat) | Complex Pro |
88
+
89
+ ## 6 Sample Critics
90
+
91
+ Each scores 0.0-1.0 on one dimension of fitness:
92
+
93
+ 1. **Key Fit** — Circle-of-fifths distance from song key
94
+ 2. **Tempo Fit** — BPM match including half/double time
95
+ 3. **Frequency Fit** — Spectral overlap with existing mix
96
+ 4. **Role Fit** — Does this fill a missing role in the song?
97
+ 5. **Vibe Fit** — Taste graph alignment (if evidence exists)
98
+ 6. **Intent Fit** — Does the material serve the stated goal?
99
+
100
+ ## Reference Docs
101
+
102
+ - `references/sample-techniques.md` — Full 29-technique catalog
103
+ - `references/sample-critics.md` — Critic scoring details
104
+ - `references/sample-philosophy.md` — Surgeon vs Alchemist guide
@@ -0,0 +1,87 @@
1
+ # Sample Critics — Scoring Reference
2
+
3
+ ## Key Fit Critic
4
+
5
+ Uses circle-of-fifths distance between sample key and song key.
6
+
7
+ | Distance | Score | Relationship | Action |
8
+ |----------|-------|-------------|--------|
9
+ | 0 fifths | 1.0 | Same key | Load directly |
10
+ | 1 fifth | 0.85 | Relative major/minor, dominant/subdominant | Layer with care |
11
+ | 2 fifths | 0.7 | Closely related | Works for most intents |
12
+ | 3 fifths | 0.55 | Moderately distant | Transpose or use as texture |
13
+ | 4 fifths | 0.4 | Distant | Heavy filtering needed |
14
+ | 5+ fifths | 0.25-0.3 | Chromatic clash | Intentional tension only |
15
+ | Unknown | 0.0 | Key not detected | Verify by ear |
16
+
17
+ **Weight adjustment:** For "texture" intent, key_fit weight drops 50% (pitch matters less).
18
+
19
+ ## Tempo Fit Critic
20
+
21
+ Compares sample BPM against session tempo including half/double time relationships.
22
+
23
+ | Deviation | Score | Action |
24
+ |-----------|-------|--------|
25
+ | <1% | 1.0 | Exact match, no warping |
26
+ | <2% | 0.95 | Near-exact, minimal warp |
27
+ | <5% | 0.8 | Light warp, quality preserved |
28
+ | <10% | 0.6 | Moderate warp, choose mode carefully |
29
+ | <15% | 0.4 | Significant — use Texture mode for ambient |
30
+ | >15% | 0.2 | Extreme — texture use only |
31
+ | Half time | 0.9 | Set warp to half-time |
32
+ | Double time | 0.9 | Set warp to double-time |
33
+ | Unknown | 0.0 | Estimate from onsets or verify |
34
+
35
+ ## Frequency Fit Critic
36
+
37
+ Requires M4L bridge spectral data. Without it, returns neutral 0.5.
38
+
39
+ | Situation | Score | Action |
40
+ |-----------|-------|--------|
41
+ | Fills empty frequency gap | 1.0 | Perfect complement |
42
+ | Partial overlap, manageable | 0.7 | Suggest EQ carving |
43
+ | Heavy masking | 0.3 | Aggressive filtering or texture use |
44
+ | Full spectrum into dense mix | 0.1 | Transformation source only |
45
+
46
+ ## Role Fit Critic
47
+
48
+ Cross-references material_type against existing track names/roles.
49
+
50
+ | Situation | Score | Action |
51
+ |-----------|-------|--------|
52
+ | Fills missing role | 1.0 | "No percussion texture — this fills the gap" |
53
+ | Complements existing | 0.7 | "Adds variety to palette" |
54
+ | Redundant | 0.3 | "Already 3 synth layers — use as texture" |
55
+
56
+ ## Vibe Fit Critic
57
+
58
+ Uses TasteGraph when evidence exists (>0 entries). Otherwise neutral 0.5.
59
+
60
+ Compares brightness, density, complexity of sample against user's taste profile.
61
+
62
+ ## Intent Fit Critic
63
+
64
+ Compatibility matrix — how well the material serves the stated intent:
65
+
66
+ | Material \ Intent | rhythm | texture | layer | melody | vocal | atmosphere | transform |
67
+ |-------------------|--------|---------|-------|--------|-------|------------|-----------|
68
+ | vocal | 0.6 | 0.6 | 0.8 | 0.9 | 1.0 | 0.5 | 0.9 |
69
+ | drum_loop | 1.0 | 0.5 | 0.6 | 0.2 | — | 0.3 | 0.9 |
70
+ | instrument_loop | 0.5 | 0.6 | 1.0 | 1.0 | 0.3 | 0.5 | 0.9 |
71
+ | one_shot | 0.9 | 0.4 | 0.3 | 0.5 | — | 0.3 | 0.8 |
72
+ | texture | 0.2 | 1.0 | 0.7 | 0.3 | 0.2 | 1.0 | 0.8 |
73
+ | foley | 0.5 | 0.8 | 0.4 | — | — | 0.9 | 0.8 |
74
+ | fx | 0.3 | 0.7 | 0.3 | — | — | 0.8 | 0.7 |
75
+
76
+ ## Composite Score
77
+
78
+ Default weights:
79
+ ```
80
+ overall = key_fit(0.20) + tempo_fit(0.20) + frequency_fit(0.20)
81
+ + role_fit(0.15) + vibe_fit(0.10) + intent_fit(0.15)
82
+ ```
83
+
84
+ Weights shift by intent:
85
+ - **texture/atmosphere:** key_fit 0.10, tempo_fit 0.10, frequency_fit 0.25
86
+ - **rhythm:** tempo_fit 0.25, key_fit 0.10
87
+ - **melody:** key_fit 0.30, intent_fit 0.20
@@ -0,0 +1,51 @@
1
+ # Surgeon vs Alchemist — The Dual Philosophy
2
+
3
+ ## When to be a Surgeon
4
+
5
+ The sample should serve the song without drawing attention to itself.
6
+
7
+ - **Building a clean layer** — matching key, tempo, frequency
8
+ - **Adding percussion variety** — break layering under existing drums
9
+ - **Key-matched melodic layers** — transpose and blend
10
+ - **Chord stab extraction** — isolate and retrigger cleanly
11
+ - **User says:** "blend", "layer", "match", "fit", "complement"
12
+
13
+ **Surgeon priorities:** Key accuracy > tempo precision > frequency carving > volume balance
14
+
15
+ ## When to be an Alchemist
16
+
17
+ The sample is raw material for transformation. The result should surprise.
18
+
19
+ - **Stuck on a boring section** — inject chaos via destruction
20
+ - **Need organic texture** — reverse, stretch, scatter
21
+ - **Vocal as instrument** — chop syllables into rhythm
22
+ - **One-sample challenge** — constraint breeds creativity
23
+ - **User says:** "flip", "destroy", "mangle", "transform", "surprise me"
24
+
25
+ **Alchemist priorities:** Novelty > texture > emotion > originality
26
+
27
+ ## Auto Mode Decision Tree
28
+
29
+ ```
30
+ User said "blend/layer/match/fit"? -> Surgeon
31
+ User said "flip/destroy/mangle/weird"? -> Alchemist
32
+ Wonder Mode (stuck rescue)? -> Alchemist
33
+ Intent is "texture" or "atmosphere"? -> Alchemist
34
+ Intent is "layer" or "melody"? -> Surgeon
35
+ Intent is "rhythm"? -> Both available, lean Surgeon for drums, Alchemist for vocals
36
+ Intent is "transform" or "challenge"? -> Alchemist
37
+ No clear signal? -> Present both, let user choose
38
+ ```
39
+
40
+ ## The Masters
41
+
42
+ | Producer | Philosophy | Signature |
43
+ |----------|-----------|-----------|
44
+ | J Dilla | Both | Surgical chop points, alchemical timing/swing |
45
+ | Burial | Alchemist | Ghostly vocal fragments, vinyl crackle as instrument |
46
+ | Amon Tobin | Alchemist | 80+ samples per track, serial destruction |
47
+ | Four Tet | Alchemist | Found-sound countermelody, collage composition |
48
+ | DJ Premier | Surgeon | Perfect stab isolation, rhythmic precision |
49
+ | Madlib | Alchemist | Blind crate digging, cross-genre flipping |
50
+ | RZA | Both | Cinematic soul sampling with dialogue and detuning |
51
+ | Bon Iver | Surgeon | Pitch-shifted vocal stacks, harmonic layering |
@@ -0,0 +1,131 @@
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
@@ -121,3 +121,48 @@ When adding processing blocks, prefer native Ableton devices for controllability
121
121
  - **Saturator** — waveshaping with multiple curve types
122
122
 
123
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