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.
- package/.claude-plugin/marketplace.json +3 -3
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +119 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +144 -13
- package/bin/livepilot.js +87 -0
- package/installer/codex.js +147 -0
- package/livepilot/.Codex-plugin/plugin.json +2 -2
- package/livepilot/.claude-plugin/plugin.json +2 -2
- package/livepilot/skills/livepilot-core/SKILL.md +21 -4
- package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +34 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +204 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +173 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +211 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +188 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +162 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +229 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +243 -0
- package/livepilot/skills/livepilot-core/references/overview.md +13 -9
- package/livepilot/skills/livepilot-core/references/sample-manipulation.md +724 -0
- package/livepilot/skills/livepilot-core/references/sound-design-deep.md +140 -0
- package/livepilot/skills/livepilot-devices/SKILL.md +16 -2
- package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +1 -1
- package/livepilot/skills/livepilot-release/SKILL.md +19 -5
- package/livepilot/skills/livepilot-sample-engine/SKILL.md +104 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +87 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +51 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +131 -0
- package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +45 -0
- package/livepilot/skills/livepilot-wonder/SKILL.md +15 -0
- package/livepilot.mcpb +0 -0
- package/m4l_device/livepilot_bridge.js +1 -1
- package/manifest.json +2 -2
- package/mcp_server/__init__.py +1 -1
- package/mcp_server/atlas/__init__.py +357 -0
- package/mcp_server/atlas/device_atlas.json +44067 -0
- package/mcp_server/atlas/enrichments/__init__.py +111 -0
- package/mcp_server/atlas/enrichments/audio_effects/auto_filter.yaml +162 -0
- package/mcp_server/atlas/enrichments/audio_effects/beat_repeat.yaml +183 -0
- package/mcp_server/atlas/enrichments/audio_effects/channel_eq.yaml +126 -0
- package/mcp_server/atlas/enrichments/audio_effects/chorus_ensemble.yaml +149 -0
- package/mcp_server/atlas/enrichments/audio_effects/color_limiter.yaml +109 -0
- package/mcp_server/atlas/enrichments/audio_effects/compressor.yaml +159 -0
- package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb.yaml +143 -0
- package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb_pro.yaml +178 -0
- package/mcp_server/atlas/enrichments/audio_effects/delay.yaml +151 -0
- package/mcp_server/atlas/enrichments/audio_effects/drum_buss.yaml +142 -0
- package/mcp_server/atlas/enrichments/audio_effects/dynamic_tube.yaml +147 -0
- package/mcp_server/atlas/enrichments/audio_effects/echo.yaml +167 -0
- package/mcp_server/atlas/enrichments/audio_effects/eq_eight.yaml +148 -0
- package/mcp_server/atlas/enrichments/audio_effects/eq_three.yaml +121 -0
- package/mcp_server/atlas/enrichments/audio_effects/erosion.yaml +103 -0
- package/mcp_server/atlas/enrichments/audio_effects/filter_delay.yaml +173 -0
- package/mcp_server/atlas/enrichments/audio_effects/gate.yaml +130 -0
- package/mcp_server/atlas/enrichments/audio_effects/gated_delay.yaml +133 -0
- package/mcp_server/atlas/enrichments/audio_effects/glue_compressor.yaml +142 -0
- package/mcp_server/atlas/enrichments/audio_effects/grain_delay.yaml +141 -0
- package/mcp_server/atlas/enrichments/audio_effects/hybrid_reverb.yaml +160 -0
- package/mcp_server/atlas/enrichments/audio_effects/limiter.yaml +97 -0
- package/mcp_server/atlas/enrichments/audio_effects/multiband_dynamics.yaml +174 -0
- package/mcp_server/atlas/enrichments/audio_effects/overdrive.yaml +119 -0
- package/mcp_server/atlas/enrichments/audio_effects/pedal.yaml +145 -0
- package/mcp_server/atlas/enrichments/audio_effects/phaser_flanger.yaml +161 -0
- package/mcp_server/atlas/enrichments/audio_effects/redux.yaml +114 -0
- package/mcp_server/atlas/enrichments/audio_effects/reverb.yaml +190 -0
- package/mcp_server/atlas/enrichments/audio_effects/roar.yaml +159 -0
- package/mcp_server/atlas/enrichments/audio_effects/saturator.yaml +146 -0
- package/mcp_server/atlas/enrichments/audio_effects/shifter.yaml +154 -0
- package/mcp_server/atlas/enrichments/audio_effects/spectral_resonator.yaml +141 -0
- package/mcp_server/atlas/enrichments/audio_effects/spectral_time.yaml +164 -0
- package/mcp_server/atlas/enrichments/audio_effects/vector_delay.yaml +140 -0
- package/mcp_server/atlas/enrichments/audio_effects/vinyl_distortion.yaml +141 -0
- package/mcp_server/atlas/enrichments/instruments/analog.yaml +222 -0
- package/mcp_server/atlas/enrichments/instruments/bass.yaml +202 -0
- package/mcp_server/atlas/enrichments/instruments/collision.yaml +150 -0
- package/mcp_server/atlas/enrichments/instruments/drift.yaml +167 -0
- package/mcp_server/atlas/enrichments/instruments/electric.yaml +137 -0
- package/mcp_server/atlas/enrichments/instruments/emit.yaml +163 -0
- package/mcp_server/atlas/enrichments/instruments/meld.yaml +164 -0
- package/mcp_server/atlas/enrichments/instruments/operator.yaml +197 -0
- package/mcp_server/atlas/enrichments/instruments/poli.yaml +192 -0
- package/mcp_server/atlas/enrichments/instruments/sampler.yaml +218 -0
- package/mcp_server/atlas/enrichments/instruments/simpler.yaml +217 -0
- package/mcp_server/atlas/enrichments/instruments/tension.yaml +156 -0
- package/mcp_server/atlas/enrichments/instruments/tree_tone.yaml +162 -0
- package/mcp_server/atlas/enrichments/instruments/vector_fm.yaml +165 -0
- package/mcp_server/atlas/enrichments/instruments/vector_grain.yaml +166 -0
- package/mcp_server/atlas/enrichments/instruments/wavetable.yaml +162 -0
- package/mcp_server/atlas/enrichments/midi_effects/arpeggiator.yaml +156 -0
- package/mcp_server/atlas/enrichments/midi_effects/bouncy_notes.yaml +93 -0
- package/mcp_server/atlas/enrichments/midi_effects/chord.yaml +147 -0
- package/mcp_server/atlas/enrichments/midi_effects/melodic_steps.yaml +97 -0
- package/mcp_server/atlas/enrichments/midi_effects/note_echo.yaml +108 -0
- package/mcp_server/atlas/enrichments/midi_effects/note_length.yaml +97 -0
- package/mcp_server/atlas/enrichments/midi_effects/pitch.yaml +76 -0
- package/mcp_server/atlas/enrichments/midi_effects/random.yaml +117 -0
- package/mcp_server/atlas/enrichments/midi_effects/rhythmic_steps.yaml +103 -0
- package/mcp_server/atlas/enrichments/midi_effects/scale.yaml +83 -0
- package/mcp_server/atlas/enrichments/midi_effects/step_arp.yaml +112 -0
- package/mcp_server/atlas/enrichments/midi_effects/velocity.yaml +119 -0
- package/mcp_server/atlas/enrichments/utility/amp.yaml +159 -0
- package/mcp_server/atlas/enrichments/utility/cabinet.yaml +109 -0
- package/mcp_server/atlas/enrichments/utility/corpus.yaml +150 -0
- package/mcp_server/atlas/enrichments/utility/resonators.yaml +131 -0
- package/mcp_server/atlas/enrichments/utility/spectrum.yaml +63 -0
- package/mcp_server/atlas/enrichments/utility/tuner.yaml +51 -0
- package/mcp_server/atlas/enrichments/utility/utility.yaml +136 -0
- package/mcp_server/atlas/enrichments/utility/vocoder.yaml +160 -0
- package/mcp_server/atlas/scanner.py +236 -0
- package/mcp_server/atlas/tools.py +224 -0
- package/mcp_server/composer/__init__.py +1 -0
- package/mcp_server/composer/engine.py +452 -0
- package/mcp_server/composer/layer_planner.py +427 -0
- package/mcp_server/composer/prompt_parser.py +329 -0
- package/mcp_server/composer/tools.py +201 -0
- package/mcp_server/connection.py +53 -8
- package/mcp_server/corpus/__init__.py +377 -0
- package/mcp_server/device_forge/__init__.py +1 -0
- package/mcp_server/device_forge/builder.py +377 -0
- package/mcp_server/device_forge/models.py +142 -0
- package/mcp_server/device_forge/templates.py +483 -0
- package/mcp_server/device_forge/tools.py +162 -0
- package/mcp_server/hook_hunter/analyzer.py +23 -0
- package/mcp_server/hook_hunter/models.py +1 -0
- package/mcp_server/hook_hunter/tools.py +4 -2
- package/mcp_server/m4l_bridge.py +1 -0
- package/mcp_server/memory/taste_graph.py +68 -1
- package/mcp_server/memory/tools.py +15 -4
- package/mcp_server/musical_intelligence/detectors.py +14 -1
- package/mcp_server/musical_intelligence/tools.py +11 -8
- package/mcp_server/persistence/__init__.py +1 -0
- package/mcp_server/persistence/base_store.py +82 -0
- package/mcp_server/persistence/project_store.py +106 -0
- package/mcp_server/persistence/taste_store.py +122 -0
- package/mcp_server/preview_studio/models.py +1 -0
- package/mcp_server/preview_studio/tools.py +56 -13
- package/mcp_server/runtime/capability.py +66 -0
- package/mcp_server/runtime/capability_probe.py +137 -0
- package/mcp_server/runtime/execution_router.py +143 -0
- package/mcp_server/runtime/live_version.py +102 -0
- package/mcp_server/runtime/remote_commands.py +87 -0
- package/mcp_server/runtime/tools.py +18 -4
- package/mcp_server/sample_engine/__init__.py +1 -0
- package/mcp_server/sample_engine/analyzer.py +216 -0
- package/mcp_server/sample_engine/critics.py +390 -0
- package/mcp_server/sample_engine/models.py +193 -0
- package/mcp_server/sample_engine/moves.py +127 -0
- package/mcp_server/sample_engine/planner.py +186 -0
- package/mcp_server/sample_engine/sources.py +540 -0
- package/mcp_server/sample_engine/techniques.py +908 -0
- package/mcp_server/sample_engine/tools.py +442 -0
- package/mcp_server/semantic_moves/__init__.py +3 -0
- package/mcp_server/semantic_moves/device_creation_moves.py +237 -0
- package/mcp_server/semantic_moves/mix_moves.py +41 -41
- package/mcp_server/semantic_moves/performance_moves.py +13 -13
- package/mcp_server/semantic_moves/sample_compilers.py +372 -0
- package/mcp_server/semantic_moves/sound_design_moves.py +15 -15
- package/mcp_server/semantic_moves/tools.py +18 -17
- package/mcp_server/semantic_moves/transition_moves.py +16 -16
- package/mcp_server/server.py +51 -0
- package/mcp_server/services/__init__.py +1 -0
- package/mcp_server/services/motif_service.py +67 -0
- package/mcp_server/session_continuity/tracker.py +29 -1
- package/mcp_server/song_brain/builder.py +28 -1
- package/mcp_server/song_brain/models.py +4 -0
- package/mcp_server/song_brain/tools.py +20 -2
- package/mcp_server/sound_design/critics.py +89 -1
- package/mcp_server/splice_client/__init__.py +1 -0
- package/mcp_server/splice_client/client.py +347 -0
- package/mcp_server/splice_client/models.py +96 -0
- package/mcp_server/splice_client/protos/__init__.py +1 -0
- package/mcp_server/splice_client/protos/app_pb2.py +319 -0
- package/mcp_server/splice_client/protos/app_pb2.pyi +1153 -0
- package/mcp_server/splice_client/protos/app_pb2_grpc.py +1946 -0
- package/mcp_server/tools/arrangement.py +69 -0
- package/mcp_server/tools/automation.py +15 -2
- package/mcp_server/tools/devices.py +117 -6
- package/mcp_server/tools/notes.py +37 -4
- package/mcp_server/wonder_mode/diagnosis.py +5 -0
- package/mcp_server/wonder_mode/engine.py +85 -1
- package/mcp_server/wonder_mode/tools.py +6 -1
- package/package.json +12 -2
- package/remote_script/LivePilot/__init__.py +8 -1
- package/remote_script/LivePilot/arrangement.py +114 -0
- package/remote_script/LivePilot/browser.py +56 -1
- package/remote_script/LivePilot/devices.py +236 -6
- package/remote_script/LivePilot/mixing.py +8 -3
- package/remote_script/LivePilot/server.py +5 -1
- package/remote_script/LivePilot/transport.py +3 -0
- package/remote_script/LivePilot/version_detect.py +78 -0
- package/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
|
-
##
|
|
10
|
+
## Primary Workflow — Atlas-Driven
|
|
11
11
|
|
|
12
|
-
|
|
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.
|
|
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: **
|
|
32
|
-
Core (no M4L): **
|
|
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: **
|
|
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 "
|
|
62
|
-
- [ ] Domain lists include ALL
|
|
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
|