livepilot 1.0.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/CHANGELOG.md +33 -0
- package/LICENSE +21 -0
- package/README.md +409 -0
- package/bin/livepilot.js +390 -0
- package/installer/install.js +95 -0
- package/installer/paths.js +79 -0
- package/mcp_server/__init__.py +2 -0
- package/mcp_server/__main__.py +5 -0
- package/mcp_server/connection.py +210 -0
- package/mcp_server/memory/__init__.py +5 -0
- package/mcp_server/memory/technique_store.py +296 -0
- package/mcp_server/server.py +87 -0
- package/mcp_server/tools/__init__.py +1 -0
- package/mcp_server/tools/arrangement.py +407 -0
- package/mcp_server/tools/browser.py +86 -0
- package/mcp_server/tools/clips.py +218 -0
- package/mcp_server/tools/devices.py +256 -0
- package/mcp_server/tools/memory.py +198 -0
- package/mcp_server/tools/mixing.py +121 -0
- package/mcp_server/tools/notes.py +269 -0
- package/mcp_server/tools/scenes.py +89 -0
- package/mcp_server/tools/tracks.py +175 -0
- package/mcp_server/tools/transport.py +117 -0
- package/package.json +37 -0
- package/plugin/agents/livepilot-producer/AGENT.md +62 -0
- package/plugin/commands/beat.md +18 -0
- package/plugin/commands/memory.md +22 -0
- package/plugin/commands/mix.md +15 -0
- package/plugin/commands/session.md +13 -0
- package/plugin/commands/sounddesign.md +16 -0
- package/plugin/plugin.json +19 -0
- package/plugin/skills/livepilot-core/SKILL.md +208 -0
- package/plugin/skills/livepilot-core/references/ableton-workflow-patterns.md +831 -0
- package/plugin/skills/livepilot-core/references/device-atlas/00-index.md +110 -0
- package/plugin/skills/livepilot-core/references/device-atlas/distortion-and-character.md +687 -0
- package/plugin/skills/livepilot-core/references/device-atlas/drums-and-percussion.md +753 -0
- package/plugin/skills/livepilot-core/references/device-atlas/dynamics-and-punch.md +525 -0
- package/plugin/skills/livepilot-core/references/device-atlas/eq-and-filtering.md +402 -0
- package/plugin/skills/livepilot-core/references/device-atlas/midi-tools.md +963 -0
- package/plugin/skills/livepilot-core/references/device-atlas/movement-and-modulation.md +874 -0
- package/plugin/skills/livepilot-core/references/device-atlas/space-and-depth.md +571 -0
- package/plugin/skills/livepilot-core/references/device-atlas/spectral-and-weird.md +714 -0
- package/plugin/skills/livepilot-core/references/device-atlas/synths-native.md +953 -0
- package/plugin/skills/livepilot-core/references/m4l-devices.md +352 -0
- package/plugin/skills/livepilot-core/references/memory-guide.md +107 -0
- package/plugin/skills/livepilot-core/references/midi-recipes.md +402 -0
- package/plugin/skills/livepilot-core/references/mixing-patterns.md +578 -0
- package/plugin/skills/livepilot-core/references/overview.md +209 -0
- package/plugin/skills/livepilot-core/references/sound-design.md +392 -0
- package/remote_script/LivePilot/__init__.py +42 -0
- package/remote_script/LivePilot/arrangement.py +693 -0
- package/remote_script/LivePilot/browser.py +424 -0
- package/remote_script/LivePilot/clips.py +211 -0
- package/remote_script/LivePilot/devices.py +596 -0
- package/remote_script/LivePilot/diagnostics.py +198 -0
- package/remote_script/LivePilot/mixing.py +194 -0
- package/remote_script/LivePilot/notes.py +339 -0
- package/remote_script/LivePilot/router.py +74 -0
- package/remote_script/LivePilot/scenes.py +99 -0
- package/remote_script/LivePilot/server.py +293 -0
- package/remote_script/LivePilot/tracks.py +268 -0
- package/remote_script/LivePilot/transport.py +151 -0
- package/remote_script/LivePilot/utils.py +123 -0
- package/requirements.txt +2 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
# Devices, Browser & Racks — Stock Instruments, Effects & MIDI Tools
|
|
2
|
+
|
|
3
|
+
Complete reference for Ableton Live's device ecosystem: browser organization, MIDI effects, rack systems, and how to find/load devices through LivePilot.
|
|
4
|
+
|
|
5
|
+
## Browser Organization
|
|
6
|
+
|
|
7
|
+
Ableton's browser is the source for all devices, presets, and samples. The `search_browser` and `get_browser_tree` tools navigate this structure.
|
|
8
|
+
|
|
9
|
+
### Top-Level Categories
|
|
10
|
+
|
|
11
|
+
| Category | Contains | Use with LivePilot |
|
|
12
|
+
|----------|---------|-------------------|
|
|
13
|
+
| **Sounds** | Instrument presets organized by character (Bass, Keys, Lead, Pad, etc.) | `search_browser("warm pad")` |
|
|
14
|
+
| **Drums** | Drum Rack presets (kits, single hits, percussion) | `search_browser("808 kit")` |
|
|
15
|
+
| **Instruments** | Raw instruments without presets (Analog, Wavetable, Operator, etc.) | `find_and_load_device("Wavetable")` |
|
|
16
|
+
| **Audio Effects** | All audio effects (Compressor, Reverb, EQ Eight, etc.) | `find_and_load_device("Compressor")` |
|
|
17
|
+
| **MIDI Effects** | MIDI processors (Arpeggiator, Chord, Scale, etc.) | `find_and_load_device("Arpeggiator")` |
|
|
18
|
+
| **Max for Live** | M4L instruments, effects, and tools | `search_browser("LFO max")` |
|
|
19
|
+
| **Plug-ins** | VST/AU plugins installed on the system | `search_browser("Serum")` |
|
|
20
|
+
| **Clips** | Pre-made clips (MIDI patterns, audio loops) | `search_browser("house beat")` |
|
|
21
|
+
| **Samples** | Audio samples organized by category | `search_browser("kick one shot")` |
|
|
22
|
+
| **Packs** | Content from installed Packs | `get_browser_items("Packs")` |
|
|
23
|
+
| **User Library** | User's saved presets, clips, samples | `get_browser_items("User Library")` |
|
|
24
|
+
|
|
25
|
+
### Audio Effects Sub-Categories
|
|
26
|
+
|
|
27
|
+
| Sub-Category | Devices |
|
|
28
|
+
|-------------|---------|
|
|
29
|
+
| **Dynamics** | Compressor, Glue Compressor, Limiter, Gate, Multiband Dynamics, Drum Buss |
|
|
30
|
+
| **EQ** | EQ Eight, EQ Three, Channel EQ |
|
|
31
|
+
| **Filter** | Auto Filter, Spectral Resonator |
|
|
32
|
+
| **Delay** | Delay, Echo, Grain Delay, Beat Repeat, Spectral Time |
|
|
33
|
+
| **Reverb** | Reverb, Convolution Reverb (M4L), Hybrid Reverb |
|
|
34
|
+
| **Distortion** | Saturator, Overdrive, Erosion, Redux, Pedal, Amp, Cabinet |
|
|
35
|
+
| **Modulation** | Chorus-Ensemble, Phaser-Flanger, Frequency Shifter, Ring Mod |
|
|
36
|
+
| **Utility** | Utility, Tuner, Spectrum, External Audio Effect |
|
|
37
|
+
| **Spatial** | Surround Panner (if available) |
|
|
38
|
+
|
|
39
|
+
### Instrument Sub-Categories
|
|
40
|
+
|
|
41
|
+
| Sub-Category | Devices |
|
|
42
|
+
|-------------|---------|
|
|
43
|
+
| **Synths** | Analog, Wavetable, Operator, Drift, Meld |
|
|
44
|
+
| **Samplers** | Simpler, Sampler |
|
|
45
|
+
| **Physical Modeling** | Tension, Collision, Electric |
|
|
46
|
+
| **Drums** | Drum Rack (container) |
|
|
47
|
+
| **Other** | Instrument Rack, External Instrument |
|
|
48
|
+
|
|
49
|
+
## MIDI Effects
|
|
50
|
+
|
|
51
|
+
MIDI effects go *before* the instrument in the device chain. They transform MIDI data before it reaches the sound generator.
|
|
52
|
+
|
|
53
|
+
### Arpeggiator
|
|
54
|
+
Transforms held chords into arpeggiated note sequences.
|
|
55
|
+
|
|
56
|
+
**Key parameters:**
|
|
57
|
+
- `Style` — Up, Down, UpDown, DownUp, Converge, Diverge, Con&Diverge, PinkyUp, PinkyUpDown, ThumbUp, ThumbUpDown, Random, Custom
|
|
58
|
+
- `Rate` — Speed of arpeggiation (1/1 to 1/32, including triplets and dotted)
|
|
59
|
+
- `Gate` — Note length as percentage of step length (1%-200%)
|
|
60
|
+
- `Steps` — Number of steps (1-8) for custom patterns
|
|
61
|
+
- `Offset` — Shift the start of the arpeggio pattern
|
|
62
|
+
- `Groove` — Amount of groove/swing applied
|
|
63
|
+
- `Transpose` — Pitch shift per octave repetition
|
|
64
|
+
- `Distance` — Interval distance for Transpose
|
|
65
|
+
- `Repeats` — Number of octave repetitions (1-inf)
|
|
66
|
+
- `Velocity` — Fixed velocity or follows input
|
|
67
|
+
|
|
68
|
+
**Common settings:**
|
|
69
|
+
- Basic up arp: Style=Up, Rate=1/8, Gate=80%, Repeats=2
|
|
70
|
+
- Trance arp: Style=UpDown, Rate=1/16, Gate=50%, Repeats=3
|
|
71
|
+
- Random generative: Style=Random, Rate=1/16, Gate=60%, Repeats=2
|
|
72
|
+
|
|
73
|
+
### Chord
|
|
74
|
+
Adds parallel intervals to incoming notes to build chords.
|
|
75
|
+
|
|
76
|
+
**Key parameters:**
|
|
77
|
+
- `Shift 1-6` — Semitone offset for each additional note (-36 to +36)
|
|
78
|
+
- `Velocity 1-6` — Velocity for each added note (1-127 or 0=off)
|
|
79
|
+
|
|
80
|
+
**Common settings:**
|
|
81
|
+
- Power chord (5th): Shift1=+7
|
|
82
|
+
- Major chord: Shift1=+4, Shift2=+7
|
|
83
|
+
- Minor chord: Shift1=+3, Shift2=+7
|
|
84
|
+
- Octave double: Shift1=+12
|
|
85
|
+
- Major 7th: Shift1=+4, Shift2=+7, Shift3=+11
|
|
86
|
+
|
|
87
|
+
### Note Length
|
|
88
|
+
Controls the duration and timing of MIDI notes.
|
|
89
|
+
|
|
90
|
+
**Key parameters:**
|
|
91
|
+
- `Mode` — Time-based (set fixed length) or Trigger (note-on generates fixed note)
|
|
92
|
+
- `Length` — Note duration (in ms or synced divisions)
|
|
93
|
+
- `Gate` — Percentage of original length
|
|
94
|
+
- `Timing` — Time delay or advance
|
|
95
|
+
|
|
96
|
+
**Use cases:**
|
|
97
|
+
- Force all notes to equal length (staccato patterns)
|
|
98
|
+
- Create gated synth effects
|
|
99
|
+
- Trigger one-shot samples consistently
|
|
100
|
+
|
|
101
|
+
### Pitch
|
|
102
|
+
Simple pitch transposition.
|
|
103
|
+
|
|
104
|
+
**Key parameters:**
|
|
105
|
+
- `Pitch` — Semitone offset (-48 to +48)
|
|
106
|
+
- `Range` — Limit the affected pitch range
|
|
107
|
+
- `Lowest` — Lower bound of affected range
|
|
108
|
+
|
|
109
|
+
### Random
|
|
110
|
+
Adds randomization to MIDI notes.
|
|
111
|
+
|
|
112
|
+
**Key parameters:**
|
|
113
|
+
- `Chance` — Probability that randomization occurs (0-100%)
|
|
114
|
+
- `Choices` — Number of possible random values (1-24)
|
|
115
|
+
- `Scale` — Semitone range of randomization
|
|
116
|
+
- `Mode` — Add (adds random offset), Toggle (randomly enables/disables notes), Randomize (random pitch within range)
|
|
117
|
+
- `Sign` — Bi (both directions), Add (only up), Sub (only down)
|
|
118
|
+
|
|
119
|
+
**Use cases:**
|
|
120
|
+
- Generative melody: moderate Chance, Scale=12 (octave), Choices=7 (diatonic)
|
|
121
|
+
- Humanize velocity: small random velocity offset
|
|
122
|
+
- Probability gates: Chance=50% creates evolving patterns
|
|
123
|
+
|
|
124
|
+
### Scale
|
|
125
|
+
Forces incoming MIDI to a specific musical scale.
|
|
126
|
+
|
|
127
|
+
**Key parameters:**
|
|
128
|
+
- `Base` — Root note (C, C#, D, etc.)
|
|
129
|
+
- `Scale Type` — Major, Minor, Dorian, Mixolydian, Pentatonic, Blues, Chromatic, etc.
|
|
130
|
+
- Per-note mapping grid — shows which notes map to which scale degrees
|
|
131
|
+
|
|
132
|
+
**Common scales:**
|
|
133
|
+
| Scale | Intervals (semitones from root) |
|
|
134
|
+
|-------|-------------------------------|
|
|
135
|
+
| Major | 0, 2, 4, 5, 7, 9, 11 |
|
|
136
|
+
| Minor (Natural) | 0, 2, 3, 5, 7, 8, 10 |
|
|
137
|
+
| Dorian | 0, 2, 3, 5, 7, 9, 10 |
|
|
138
|
+
| Mixolydian | 0, 2, 4, 5, 7, 9, 10 |
|
|
139
|
+
| Pentatonic Major | 0, 2, 4, 7, 9 |
|
|
140
|
+
| Pentatonic Minor | 0, 3, 5, 7, 10 |
|
|
141
|
+
| Blues | 0, 3, 5, 6, 7, 10 |
|
|
142
|
+
| Harmonic Minor | 0, 2, 3, 5, 7, 8, 11 |
|
|
143
|
+
| Whole Tone | 0, 2, 4, 6, 8, 10 |
|
|
144
|
+
|
|
145
|
+
**Tip:** Place Scale after Arpeggiator or Random to ensure generated notes stay in key.
|
|
146
|
+
|
|
147
|
+
### Velocity
|
|
148
|
+
Modifies note velocity.
|
|
149
|
+
|
|
150
|
+
**Key parameters:**
|
|
151
|
+
- `Drive` — Amplifies velocity curve
|
|
152
|
+
- `Compand` — Compresses (negative) or expands (positive) velocity range
|
|
153
|
+
- `Out Hi` / `Out Low` — Output velocity range limits
|
|
154
|
+
- `Random` — Adds random velocity offset
|
|
155
|
+
- `Operation` — Clip, Gate, Fixed
|
|
156
|
+
|
|
157
|
+
**Use cases:**
|
|
158
|
+
- Consistent velocity: Fixed at 100
|
|
159
|
+
- Dynamic compression: Compand negative, narrows velocity range
|
|
160
|
+
- Humanize: small Random value (5-15)
|
|
161
|
+
|
|
162
|
+
### CC Control (Live 12)
|
|
163
|
+
Sends MIDI CC messages based on note input. New in Live 12.
|
|
164
|
+
|
|
165
|
+
**Key parameters:**
|
|
166
|
+
- `CC Number` — Which CC to send (0-127)
|
|
167
|
+
- `Value` — Fixed CC value or mapped from velocity/pitch
|
|
168
|
+
|
|
169
|
+
**Use case:** Automate hardware synth parameters from MIDI clips.
|
|
170
|
+
|
|
171
|
+
**Note:** All pitch-based MIDI effects in Live 12 support a "Use Current Scale" toggle that constrains output to the clip's scale setting.
|
|
172
|
+
|
|
173
|
+
## Max for Live Devices (Stock with Suite)
|
|
174
|
+
|
|
175
|
+
### M4L Instruments
|
|
176
|
+
- **Drift** — Analog-modeled synth with character and instability
|
|
177
|
+
- **Meld** — MPE-capable dual-engine synth
|
|
178
|
+
- **Granulator III** — Granular synthesis instrument (updated from Granulator II)
|
|
179
|
+
- **Vector Grain** — Vector synthesis + granular engine
|
|
180
|
+
- **FlexGroove** — Groove-based instrument (from Packs)
|
|
181
|
+
|
|
182
|
+
### M4L Audio Effects
|
|
183
|
+
- **Align Delay** — Phase-aligned delay for mixing
|
|
184
|
+
- **Color Limiter** — Colorful limiter with character
|
|
185
|
+
- **Convolution Reverb** — Impulse response reverb using real space recordings
|
|
186
|
+
- **Convolution Reverb Pro** — Extended version with EQ and modulation
|
|
187
|
+
- **Envelope Follower** — Generates control signal from audio amplitude
|
|
188
|
+
- **Gated Delay** — Rhythmically gated delay effect
|
|
189
|
+
- **LFO** — Free-running LFO that maps to any parameter
|
|
190
|
+
- **PitchLoop89** — Creative pitch-shifting looper
|
|
191
|
+
- **Shaper** — Custom waveshaping LFO/envelope
|
|
192
|
+
- **Spectral Resonator** — Spectral processing with pitched resonance
|
|
193
|
+
- **Spectral Time** — Spectral delay and freeze effects
|
|
194
|
+
|
|
195
|
+
### M4L Drum Synths (Drum Rack compatible)
|
|
196
|
+
- **DS Kick** — Synthesized kick drum
|
|
197
|
+
- **DS Snare** — Synthesized snare
|
|
198
|
+
- **DS Clap** — Synthesized clap
|
|
199
|
+
- **DS HH** — Synthesized hi-hat
|
|
200
|
+
- **DS Cymbal** — Synthesized cymbal
|
|
201
|
+
- **DS Tom** — Synthesized tom
|
|
202
|
+
- **DS FM** — FM-synthesized percussion
|
|
203
|
+
- **DS Clang** — Metallic percussion
|
|
204
|
+
- **DS Sampler** — Sample-based drum voice
|
|
205
|
+
|
|
206
|
+
### M4L MIDI Effects
|
|
207
|
+
- **Envelope MIDI** — Custom velocity/CC envelopes
|
|
208
|
+
- **Expression Control** — MPE expression mapping
|
|
209
|
+
- **Melodic Steps** — Step sequencer for melodies
|
|
210
|
+
- **MIDI Monitor** — Displays incoming MIDI data (debugging)
|
|
211
|
+
|
|
212
|
+
### M4L Tools & Utilities
|
|
213
|
+
- **LFO** — Free-running LFO that maps to any parameter
|
|
214
|
+
- **Envelope Follower** — Generates control signal from audio amplitude
|
|
215
|
+
- **Shaper** — Custom waveshaping LFO/envelope
|
|
216
|
+
- **DS Kick/Snare/HH/Clap/Cymbal** — Drum synthesis (drum rack compatible)
|
|
217
|
+
- **Instant Haus** — Auto-generates house beats
|
|
218
|
+
|
|
219
|
+
### M4L Control Surface Tools
|
|
220
|
+
- **Connection Kit** — OSC/MIDI routing tools
|
|
221
|
+
- **Max API** — Direct access to Live's API from Max
|
|
222
|
+
|
|
223
|
+
## Rack Systems
|
|
224
|
+
|
|
225
|
+
### Instrument Rack
|
|
226
|
+
- **Purpose**: Layer multiple instruments, create splits, build complex presets
|
|
227
|
+
- **Structure**: Multiple chains, each containing instruments and effects
|
|
228
|
+
- **Key features**:
|
|
229
|
+
- **Chain selector** — Map MIDI velocity, note, or a selector value to different chains
|
|
230
|
+
- **Key zones** — Different instruments for different pitch ranges (keyboard splits)
|
|
231
|
+
- **Velocity zones** — Different instruments triggered by different velocity ranges
|
|
232
|
+
- **Macros** — 8 (or 16 in Live 12) knobs that control parameters across all chains
|
|
233
|
+
- **Use case**: Layer a pad and a pluck — pad responds to low velocity, pluck to high
|
|
234
|
+
|
|
235
|
+
### Audio Effect Rack
|
|
236
|
+
- **Purpose**: Parallel processing, multi-band processing, A/B comparison
|
|
237
|
+
- **Structure**: Multiple chains, each with its own effect chain
|
|
238
|
+
- **Key features**:
|
|
239
|
+
- **Parallel processing**: Audio splits to all chains simultaneously
|
|
240
|
+
- **Chain selector**: Fade between different effect chains
|
|
241
|
+
- **Macros**: Map to parameters across chains for unified control
|
|
242
|
+
- **Common patterns**:
|
|
243
|
+
- Parallel compression (dry chain + compressed chain)
|
|
244
|
+
- Multi-band processing (LP chain + BP chain + HP chain)
|
|
245
|
+
- Wet/dry blend with effects
|
|
246
|
+
- A/B comparison of different processing
|
|
247
|
+
|
|
248
|
+
### Drum Rack
|
|
249
|
+
- **Purpose**: Map samples/instruments to MIDI notes (pads)
|
|
250
|
+
- **Structure**: 128 pads (MIDI notes 0-127), each pad is a chain
|
|
251
|
+
- **Key features**:
|
|
252
|
+
- **Choke groups**: Assign pads to groups — triggering one silences others (open/closed hi-hat)
|
|
253
|
+
- **Send/return within rack**: Internal send effects shared between pads
|
|
254
|
+
- **Pad chains**: Each pad has its own chain — sample + effects per pad
|
|
255
|
+
- **Layering**: Multiple samples per pad by layering chains
|
|
256
|
+
- **Receive note**: Each pad maps to a MIDI note
|
|
257
|
+
- **Standard mapping**: C1 (36) = Kick, D1 (38) = Snare, F#1 (42) = Closed HH (see midi-recipes.md)
|
|
258
|
+
|
|
259
|
+
### MIDI Effect Rack
|
|
260
|
+
- **Purpose**: Process MIDI in parallel or with velocity/key splitting
|
|
261
|
+
- **Structure**: Multiple chains of MIDI effects
|
|
262
|
+
- **Key features**:
|
|
263
|
+
- Key zones for different MIDI processing per range
|
|
264
|
+
- Velocity zones for velocity-dependent MIDI transformation
|
|
265
|
+
- **Common pattern**: Arpeggiator on high notes, Chord on low notes
|
|
266
|
+
|
|
267
|
+
### Macro Mapping
|
|
268
|
+
All rack types support macros:
|
|
269
|
+
- **Live 11 and earlier**: 8 macro knobs
|
|
270
|
+
- **Live 12**: Up to 16 macro knobs (expandable)
|
|
271
|
+
- **Mapping**: Right-click any parameter inside the rack → "Map to Macro X"
|
|
272
|
+
- **Ranges**: Each mapping has min/max values — macros can invert or limit parameter range
|
|
273
|
+
- **Use case**: One "Brightness" macro controlling filter cutoff, EQ, and reverb tone simultaneously
|
|
274
|
+
|
|
275
|
+
## Loading Devices with LivePilot
|
|
276
|
+
|
|
277
|
+
### `find_and_load_device` — Search by Name
|
|
278
|
+
Best for stock devices — searches browser and loads first match:
|
|
279
|
+
```
|
|
280
|
+
find_and_load_device(track_index=0, name="Wavetable")
|
|
281
|
+
find_and_load_device(track_index=0, name="Compressor")
|
|
282
|
+
find_and_load_device(track_index=0, name="Arpeggiator")
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
**Common device names** (exact search strings):
|
|
286
|
+
| Category | Device Names |
|
|
287
|
+
|----------|-------------|
|
|
288
|
+
| Synths | `Analog`, `Wavetable`, `Operator`, `Drift`, `Meld` |
|
|
289
|
+
| Samplers | `Simpler`, `Sampler` |
|
|
290
|
+
| Physical | `Tension`, `Collision`, `Electric` |
|
|
291
|
+
| Drums | `Drum Rack` |
|
|
292
|
+
| Dynamics | `Compressor`, `Glue Compressor`, `Limiter`, `Gate`, `Multiband Dynamics` |
|
|
293
|
+
| EQ | `EQ Eight`, `EQ Three`, `Channel EQ` |
|
|
294
|
+
| Filter | `Auto Filter` |
|
|
295
|
+
| Delay | `Delay`, `Echo`, `Grain Delay`, `Beat Repeat` |
|
|
296
|
+
| Reverb | `Reverb`, `Hybrid Reverb` |
|
|
297
|
+
| Distortion | `Saturator`, `Overdrive`, `Erosion`, `Redux`, `Pedal`, `Amp`, `Cabinet` |
|
|
298
|
+
| Modulation | `Chorus-Ensemble`, `Phaser-Flanger`, `Frequency Shifter` |
|
|
299
|
+
| Utility | `Utility`, `Tuner`, `Spectrum` |
|
|
300
|
+
| MIDI FX | `Arpeggiator`, `Chord`, `Note Length`, `Pitch`, `Random`, `Scale`, `Velocity`, `CC Control` |
|
|
301
|
+
| Racks | `Instrument Rack`, `Audio Effect Rack`, `MIDI Effect Rack` |
|
|
302
|
+
| Drum | `Drum Buss` (audio effect, not Drum Rack) |
|
|
303
|
+
|
|
304
|
+
### `load_device_by_uri` — Load by URI
|
|
305
|
+
For specific presets or when you know the exact browser path:
|
|
306
|
+
```
|
|
307
|
+
load_device_by_uri(track_index=0, uri="...")
|
|
308
|
+
```
|
|
309
|
+
Get URIs by browsing with `search_browser` or `get_browser_items`.
|
|
310
|
+
|
|
311
|
+
**Important:** Device URIs are opaque strings — they cannot be constructed manually. You must discover them by walking the browser tree (`get_browser_tree` → `get_browser_items`) or searching (`search_browser`). Each `BrowserItem` has a `uri`, `name`, and `is_loadable` property.
|
|
312
|
+
|
|
313
|
+
### `search_browser` — Find Presets
|
|
314
|
+
Search for presets, sounds, and samples:
|
|
315
|
+
```
|
|
316
|
+
search_browser(query="warm pad")
|
|
317
|
+
search_browser(query="808 kick")
|
|
318
|
+
search_browser(query="techno lead")
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Device Chain Order
|
|
322
|
+
When loading multiple devices on a track, they're added in sequence. The order matters:
|
|
323
|
+
|
|
324
|
+
**MIDI Track chain:**
|
|
325
|
+
```
|
|
326
|
+
MIDI Effects → Instrument → Audio Effects
|
|
327
|
+
(Arpeggiator → Scale → Wavetable → Compressor → Reverb)
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
**Audio Track chain:**
|
|
331
|
+
```
|
|
332
|
+
Audio Effects only
|
|
333
|
+
(EQ Eight → Compressor → Saturator → Delay → Reverb)
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Devices are indexed by position: first device = index 0, second = index 1, etc.
|
|
337
|
+
|
|
338
|
+
## Device Parameter Inspection
|
|
339
|
+
|
|
340
|
+
Always inspect parameters before setting them — parameter names and indices vary by device:
|
|
341
|
+
|
|
342
|
+
```
|
|
343
|
+
# Get all parameters for a device
|
|
344
|
+
get_device_parameters(track_index=0, device_index=0)
|
|
345
|
+
|
|
346
|
+
# Returns list of: name, value, min, max, is_quantized
|
|
347
|
+
# Use the exact name or index to set parameters
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
**Quantized parameters** (is_quantized=True) have discrete steps — set to integers or specific values from the allowed list. Examples: filter type selectors, waveform selectors, on/off toggles.
|
|
351
|
+
|
|
352
|
+
**Continuous parameters** (is_quantized=False) accept any float within min-max range. Examples: cutoff frequency, volume, drive amount.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Technique Memory Guide — Qualities Template & Examples
|
|
2
|
+
|
|
3
|
+
How to write rich, searchable stylistic analyses when saving techniques.
|
|
4
|
+
|
|
5
|
+
## The Qualities Template
|
|
6
|
+
|
|
7
|
+
Every technique gets an agent-written `qualities` object. All fields are optional
|
|
8
|
+
except `summary` (required). Fill what's relevant to the technique type.
|
|
9
|
+
|
|
10
|
+
| Field | What to write | Example |
|
|
11
|
+
|-------|--------------|---------|
|
|
12
|
+
| summary | One sentence — what this is and why it's good | "Dusty boom bap groove with lazy swing and ghost snares" |
|
|
13
|
+
| mood | 2-4 mood/feeling words | ["laid-back", "dusty", "head-nodding"] |
|
|
14
|
+
| genre_tags | Genre associations | ["boom-bap", "hip-hop", "lo-fi"] |
|
|
15
|
+
| rhythm_feel | How the groove feels — swing, syncopation, density | "Syncopated kick with lazy hat swing, ghost snares anticipate the backbeat" |
|
|
16
|
+
| harmonic_character | Key, scale, chord quality, movement | "C minor dorian, jazzy 7th chords, descending bass line" |
|
|
17
|
+
| sonic_texture | Timbral character — warm/bright/gritty/clean | "Dusty vinyl-crackle hats, boomy 808 kick, dry snare with room verb" |
|
|
18
|
+
| production_notes | When/how to use this, what it pairs with | "Works as verse beat, needs sparse melody on top — Rhodes or muted guitar" |
|
|
19
|
+
| reference_points | Artists, songs, styles it evokes | "J Dilla 'Donuts' era meets Madlib 'Madvillainy' drums" |
|
|
20
|
+
|
|
21
|
+
## Good vs Bad Qualities
|
|
22
|
+
|
|
23
|
+
### Beat Pattern
|
|
24
|
+
|
|
25
|
+
**GOOD:**
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"summary": "Dusty boom bap groove — lazy swing on the hats, ghost snares anticipate the backbeat, 85 BPM slow-roll energy",
|
|
29
|
+
"mood": ["laid-back", "dusty", "head-nodding"],
|
|
30
|
+
"genre_tags": ["boom-bap", "hip-hop"],
|
|
31
|
+
"rhythm_feel": "Syncopated kick at 0 and the 'and' of 1. Hi-hats on 8ths with +0.02 swing on offbeats. Ghost snares (vel 30) on 16ths before beats 2 and 4. The whole thing leans back.",
|
|
32
|
+
"production_notes": "Works as a verse beat. Needs sparse melody on top — Rhodes, muted guitar, or pitched sample. Leave headroom in low-mids for vocals.",
|
|
33
|
+
"reference_points": "J Dilla 'Donuts' era meets Madlib on 'Madvillainy'"
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**BAD:**
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"summary": "Hip hop beat at 85 BPM with kick, snare, and hi-hats"
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
The bad version is factual but tells the agent nothing about *feel*. It can't distinguish this from any other hip-hop beat.
|
|
44
|
+
|
|
45
|
+
### Device Chain
|
|
46
|
+
|
|
47
|
+
**GOOD:**
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"summary": "Warm tape-style lo-fi chain — subtle saturation into gentle filtering, makes anything sound like it's playing through a dusty speaker",
|
|
51
|
+
"mood": ["warm", "nostalgic", "lo-fi"],
|
|
52
|
+
"sonic_texture": "Soft Sine saturation adds even harmonics without harshness. Auto Filter rolls off highs gently around 3kHz. Erosion adds subtle digital artifacts like worn tape. The chain darkens and warms without killing presence.",
|
|
53
|
+
"production_notes": "Put this on Rhodes, guitar samples, or pads. Not great for drums — kills transients. Works beautifully on chord progressions.",
|
|
54
|
+
"reference_points": "Lo-fi hip-hop study beats aesthetic, Nujabes-style warmth"
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**BAD:**
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"summary": "Saturator then Auto Filter then Erosion"
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Mix Template
|
|
66
|
+
|
|
67
|
+
**GOOD:**
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"summary": "Deep house return setup — long lush reverb on A, filtered ping-pong delay on B, subtle parallel compression on C",
|
|
71
|
+
"mood": ["spacious", "deep", "hypnotic"],
|
|
72
|
+
"genre_tags": ["deep-house", "tech-house"],
|
|
73
|
+
"sonic_texture": "Reverb is dark and long (4s decay, heavy high-cut) for depth without brightness. Delay is filtered (LP at 3kHz) so echoes sit behind the mix. Parallel compression adds density to drums without crushing transients.",
|
|
74
|
+
"production_notes": "Send drums to C at 0.3, pads to A at 0.5, synth stabs to B at 0.3. Keep kick dry (no sends). Return levels around -8dB for subtlety."
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Preference
|
|
79
|
+
|
|
80
|
+
**GOOD:**
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"summary": "Always use Valhalla VintageVerb instead of stock Reverb on return tracks — stock Reverb sounds too metallic in the highs for my taste"
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Browser Pin
|
|
88
|
+
|
|
89
|
+
**GOOD:**
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"summary": "808 Core Kit — my go-to drum kit for trap and hip-hop. Has a punchy kick that sits well with Saturator, crispy hats, and a tight clap."
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## When to Save
|
|
97
|
+
|
|
98
|
+
- User says "save this" / "remember this" / "I like this"
|
|
99
|
+
- A beat, sound, or chain turns out particularly well
|
|
100
|
+
- User discovers a browser item they want to use again
|
|
101
|
+
- User states a preference about how they work
|
|
102
|
+
|
|
103
|
+
## When NOT to Save
|
|
104
|
+
|
|
105
|
+
- Generic, unfinished, or placeholder work
|
|
106
|
+
- Things that are already in the shipped reference corpus
|
|
107
|
+
- Exact duplicates of existing saved techniques
|