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.
Files changed (64) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +21 -0
  3. package/README.md +409 -0
  4. package/bin/livepilot.js +390 -0
  5. package/installer/install.js +95 -0
  6. package/installer/paths.js +79 -0
  7. package/mcp_server/__init__.py +2 -0
  8. package/mcp_server/__main__.py +5 -0
  9. package/mcp_server/connection.py +210 -0
  10. package/mcp_server/memory/__init__.py +5 -0
  11. package/mcp_server/memory/technique_store.py +296 -0
  12. package/mcp_server/server.py +87 -0
  13. package/mcp_server/tools/__init__.py +1 -0
  14. package/mcp_server/tools/arrangement.py +407 -0
  15. package/mcp_server/tools/browser.py +86 -0
  16. package/mcp_server/tools/clips.py +218 -0
  17. package/mcp_server/tools/devices.py +256 -0
  18. package/mcp_server/tools/memory.py +198 -0
  19. package/mcp_server/tools/mixing.py +121 -0
  20. package/mcp_server/tools/notes.py +269 -0
  21. package/mcp_server/tools/scenes.py +89 -0
  22. package/mcp_server/tools/tracks.py +175 -0
  23. package/mcp_server/tools/transport.py +117 -0
  24. package/package.json +37 -0
  25. package/plugin/agents/livepilot-producer/AGENT.md +62 -0
  26. package/plugin/commands/beat.md +18 -0
  27. package/plugin/commands/memory.md +22 -0
  28. package/plugin/commands/mix.md +15 -0
  29. package/plugin/commands/session.md +13 -0
  30. package/plugin/commands/sounddesign.md +16 -0
  31. package/plugin/plugin.json +19 -0
  32. package/plugin/skills/livepilot-core/SKILL.md +208 -0
  33. package/plugin/skills/livepilot-core/references/ableton-workflow-patterns.md +831 -0
  34. package/plugin/skills/livepilot-core/references/device-atlas/00-index.md +110 -0
  35. package/plugin/skills/livepilot-core/references/device-atlas/distortion-and-character.md +687 -0
  36. package/plugin/skills/livepilot-core/references/device-atlas/drums-and-percussion.md +753 -0
  37. package/plugin/skills/livepilot-core/references/device-atlas/dynamics-and-punch.md +525 -0
  38. package/plugin/skills/livepilot-core/references/device-atlas/eq-and-filtering.md +402 -0
  39. package/plugin/skills/livepilot-core/references/device-atlas/midi-tools.md +963 -0
  40. package/plugin/skills/livepilot-core/references/device-atlas/movement-and-modulation.md +874 -0
  41. package/plugin/skills/livepilot-core/references/device-atlas/space-and-depth.md +571 -0
  42. package/plugin/skills/livepilot-core/references/device-atlas/spectral-and-weird.md +714 -0
  43. package/plugin/skills/livepilot-core/references/device-atlas/synths-native.md +953 -0
  44. package/plugin/skills/livepilot-core/references/m4l-devices.md +352 -0
  45. package/plugin/skills/livepilot-core/references/memory-guide.md +107 -0
  46. package/plugin/skills/livepilot-core/references/midi-recipes.md +402 -0
  47. package/plugin/skills/livepilot-core/references/mixing-patterns.md +578 -0
  48. package/plugin/skills/livepilot-core/references/overview.md +209 -0
  49. package/plugin/skills/livepilot-core/references/sound-design.md +392 -0
  50. package/remote_script/LivePilot/__init__.py +42 -0
  51. package/remote_script/LivePilot/arrangement.py +693 -0
  52. package/remote_script/LivePilot/browser.py +424 -0
  53. package/remote_script/LivePilot/clips.py +211 -0
  54. package/remote_script/LivePilot/devices.py +596 -0
  55. package/remote_script/LivePilot/diagnostics.py +198 -0
  56. package/remote_script/LivePilot/mixing.py +194 -0
  57. package/remote_script/LivePilot/notes.py +339 -0
  58. package/remote_script/LivePilot/router.py +74 -0
  59. package/remote_script/LivePilot/scenes.py +99 -0
  60. package/remote_script/LivePilot/server.py +293 -0
  61. package/remote_script/LivePilot/tracks.py +268 -0
  62. package/remote_script/LivePilot/transport.py +151 -0
  63. package/remote_script/LivePilot/utils.py +123 -0
  64. package/requirements.txt +2 -0
@@ -0,0 +1,578 @@
1
+ # Mixing Patterns Reference
2
+
3
+ Timeless mixing knowledge for Ableton Live 12, structured as actionable recipes with specific parameter values.
4
+
5
+ ---
6
+
7
+ ## 1. Gain Staging
8
+
9
+ ### Principles
10
+
11
+ - **Headroom target:** Keep master bus peaking at -6 dB before mastering; -3 dB minimum
12
+ - **Individual tracks:** Aim for peaks around -12 to -8 dBFS per track
13
+ - **Floating-point safety:** Live's 32-bit float engine has near-infinite internal headroom — tracks can go "into the red" without clipping internally. Clipping only occurs at physical outputs (sound card D/A) or when exporting/rendering
14
+ - **Gain before processing:** Set source gain (sample volume, synth output) before effects chains. Plugins modeled on analog hardware (tape, consoles, compressors) respond differently at different input levels
15
+ - **Utility for staging:** Place Utility device first in chain; use its Gain knob to trim signal to target level before downstream effects
16
+
17
+ ### API Volume Mapping
18
+
19
+ | API Value | Approximate dB | Use Case |
20
+ |-----------|---------------|----------|
21
+ | `0.0` | -inf (silence) | Muted |
22
+ | `0.50` | ~ -12 dB | Conservative mix level |
23
+ | `0.70` | ~ -6 dB | Typical track level |
24
+ | `0.85` | ~ 0 dB | Unity gain (fader at 0 dB) |
25
+ | `1.0` | +6 dB | Maximum fader position |
26
+
27
+ > **Note:** The fader range is 0.0-1.0 in the API, where 1.0 = +6 dB. The scale is logarithmic. 0.85 is the commonly referenced value for 0 dB (unity gain).
28
+
29
+ ---
30
+
31
+ ## 2. Parallel Compression (New York Compression)
32
+
33
+ ### Concept
34
+
35
+ Blend a heavily compressed copy of a signal with the dry original to add density and sustain without destroying transients.
36
+
37
+ ### Setup Method A: Send/Return (Preferred)
38
+
39
+ 1. Create a return track (`create_return_track`)
40
+ 2. Load Compressor on return track (`find_and_load_device`)
41
+ 3. Set Compressor to aggressive settings (see below)
42
+ 4. Set sends from source tracks to the return (`set_track_send`)
43
+ 5. Blend with return track volume (`set_track_volume`)
44
+
45
+ ### Setup Method B: Audio Effect Rack
46
+
47
+ 1. Drop an Audio Effect Rack on the track
48
+ 2. Create two chains: "Dry" (empty) and "Compressed" (with Compressor)
49
+ 3. Adjust chain volumes to blend (`set_chain_volume`)
50
+
51
+ ### Compressor Settings for Parallel Compression
52
+
53
+ | Parameter | Value | Notes |
54
+ |-----------|-------|-------|
55
+ | Threshold | -30 to -20 dB | Very low — catch everything |
56
+ | Ratio | 8:1 to 20:1 | Heavy compression |
57
+ | Attack | 0.5 - 5 ms | Fast to catch transients |
58
+ | Release | 50 - 150 ms | Medium, follows groove |
59
+ | Knee | 0 dB | Hard knee for aggressive character |
60
+ | Makeup Gain | +6 to +12 dB | Compensate for heavy GR |
61
+ | Dry/Wet | 100% (on return) | Full wet; blend via send/return levels |
62
+
63
+ ### Enhancement: Mid-Scoop EQ After Compressor
64
+
65
+ Add EQ Eight after the compressor on the return track:
66
+ - Cut 200-500 Hz by -3 to -6 dB (reduce mud from compressed signal)
67
+ - This adds punch without muddiness
68
+
69
+ ### Typical Applications
70
+
71
+ - **Drums:** Send all drum tracks to parallel compression return; adds body and sustain
72
+ - **Bass:** Light send amount adds density
73
+ - **Vocals:** Brings out detail and presence
74
+ - **Full mix:** Subtle parallel compression on master (use with caution)
75
+
76
+ ---
77
+
78
+ ## 3. Sidechain Compression
79
+
80
+ ### Concept
81
+
82
+ Use one signal (trigger) to control compression on another signal (target). Classic use: kick drum ducks bass/pads for rhythmic pumping.
83
+
84
+ ### Setup in Ableton Live
85
+
86
+ 1. Place Compressor on the target track (e.g., bass)
87
+ 2. Enable Sidechain section (toggle triangle)
88
+ 3. Set sidechain Audio From to the trigger track (e.g., kick drum track)
89
+ 4. Adjust compressor to taste
90
+
91
+ ### Settings by Genre
92
+
93
+ #### EDM / House / Techno (Heavy Pump)
94
+
95
+ | Parameter | Value |
96
+ |-----------|-------|
97
+ | Threshold | -30 to -20 dB |
98
+ | Ratio | Inf:1 (limiter mode) |
99
+ | Attack | 0.01 - 0.1 ms |
100
+ | Release | 100 - 300 ms |
101
+ | Knee | 0 dB (hard) |
102
+ | Mode | Peak |
103
+
104
+ #### Deep House / Lo-Fi (Subtle Pump)
105
+
106
+ | Parameter | Value |
107
+ |-----------|-------|
108
+ | Threshold | -20 to -15 dB |
109
+ | Ratio | 4:1 to 6:1 |
110
+ | Attack | 1 - 5 ms |
111
+ | Release | 200 - 400 ms |
112
+ | Knee | 6 dB (soft) |
113
+ | Mode | RMS |
114
+
115
+ #### Drum & Bass / Dubstep (Quick Duck)
116
+
117
+ | Parameter | Value |
118
+ |-----------|-------|
119
+ | Threshold | -25 to -15 dB |
120
+ | Ratio | 8:1 to Inf:1 |
121
+ | Attack | 0.01 ms |
122
+ | Release | 50 - 150 ms |
123
+ | Knee | 0 dB |
124
+ | Mode | Peak |
125
+
126
+ ### Pro Tips
127
+
128
+ - Increase output gain on the compressor for a more dramatic "rise" at the tail of the pump
129
+ - Use the sidechain EQ to filter the trigger signal (e.g., HPF to only trigger from kick's click, not its sub)
130
+ - For transparent ducking without the pump feel: longer attack (10-30 ms), faster release (50-100 ms)
131
+ - Ghost sidechain: use a muted MIDI track with a simple kick pattern as the trigger source for consistent timing
132
+
133
+ ---
134
+
135
+ ## 4. Send/Return Patterns
136
+
137
+ ### Standard 4-Return Template
138
+
139
+ #### Return A: Short Reverb (Room)
140
+
141
+ **Device:** Reverb (Live's stock)
142
+ **Purpose:** Glue elements together, simulate shared space
143
+
144
+ | Parameter | Value |
145
+ |-----------|-------|
146
+ | Dry/Wet | 100% (on return track) |
147
+ | Decay Time | 0.5 - 1.2 s |
148
+ | Pre-Delay | 10 - 25 ms |
149
+ | Room Size | Small to Medium |
150
+ | Diffusion | High (> 80%) |
151
+ | High Cut (Reflect) | 4 - 8 kHz |
152
+ | Low Cut (Reflect) | 200 - 400 Hz |
153
+
154
+ **Send targets:** Snare, percussion, keys, vocals (light amounts)
155
+
156
+ #### Return B: Long Reverb (Hall)
157
+
158
+ **Device:** Reverb
159
+ **Purpose:** Create depth and spaciousness
160
+
161
+ | Parameter | Value |
162
+ |-----------|-------|
163
+ | Dry/Wet | 100% |
164
+ | Decay Time | 2.5 - 5.0 s |
165
+ | Pre-Delay | 30 - 80 ms |
166
+ | Room Size | Large |
167
+ | Diffusion | High |
168
+ | High Cut (Reflect) | 3 - 6 kHz |
169
+ | Low Cut (Reflect) | 300 - 500 Hz |
170
+
171
+ **Send targets:** Pads, strings, vocals, FX (moderate amounts)
172
+
173
+ #### Return C: Delay (Sync'd)
174
+
175
+ **Device:** Delay
176
+ **Purpose:** Rhythmic echoes, width
177
+
178
+ | Parameter | Value |
179
+ |-----------|-------|
180
+ | Dry/Wet | 100% |
181
+ | Sync | On |
182
+ | Delay Time L | 3/16 or 1/8 |
183
+ | Delay Time R | 1/8 or 1/4 (offset for stereo) |
184
+ | Feedback | 30 - 50% |
185
+ | Filter On | Yes |
186
+ | HP Filter | 200 - 500 Hz |
187
+ | LP Filter | 4 - 8 kHz |
188
+ | Ping Pong | Optional (for stereo movement) |
189
+
190
+ **Enhancement:** Place EQ Eight after Delay to cut low end from echoes (HPF at 200 Hz)
191
+
192
+ **Send targets:** Vocals, synth leads, hi-hats (light), snare (light)
193
+
194
+ #### Return D: Parallel Compression
195
+
196
+ **Device:** Compressor (see Section 2 settings)
197
+ **Purpose:** Add punch and density to drums
198
+
199
+ **Chain:** Compressor -> EQ Eight (mid-scoop at 300-500 Hz, -4 dB)
200
+
201
+ **Send targets:** Kick, snare, toms, percussion
202
+
203
+ ### Return Track Guidelines
204
+
205
+ - Always set effect Dry/Wet to 100% on return tracks — the send level controls the blend
206
+ - Use Pre-fader sends when you want reverb/delay tails to continue after fading out the source
207
+ - Use Post-fader sends (default) for normal mixing where effect follows source level
208
+ - High-pass the return track at 80-150 Hz to prevent low-end buildup from reverb/delay
209
+
210
+ ---
211
+
212
+ ## 5. Stereo Width Techniques
213
+
214
+ ### Panning Strategies
215
+
216
+ | Element | Pan Position | Rationale |
217
+ |---------|-------------|-----------|
218
+ | Kick | Center (0.0) | Anchor, mono compatibility |
219
+ | Snare | Center (0.0) | Core rhythm element |
220
+ | Bass | Center (0.0) | Low-end energy, mono compat |
221
+ | Vocals (lead) | Center (0.0) | Focus point |
222
+ | Hi-hat | Slight L or R (-0.15 to 0.15) | Realism, slight offset |
223
+ | Toms | Spread L to R (-0.5 to 0.5) | Stereo drum image |
224
+ | Rhythm guitar L | Left (-0.6 to -0.8) | Stereo pair |
225
+ | Rhythm guitar R | Right (0.6 to 0.8) | Stereo pair |
226
+ | Keys / Pads | Wide (-0.4 to 0.4) or stereo | Fill the sides |
227
+ | Backing vocals | Spread (-0.3 to 0.3) | Width behind lead |
228
+ | Percussion | Various (-0.7 to 0.7) | Movement and space |
229
+ | FX / Risers | Wide or automated | Interest and motion |
230
+
231
+ > API pan range: -1.0 (full left) to 1.0 (full right), 0.0 = center
232
+
233
+ ### Stereo Pan Mode
234
+
235
+ Right-click any pan knob and select "Convert Pan to Stereo Pan" for independent L/R channel panning. Useful for stereo synths and samples.
236
+
237
+ ### Utility Device for Width
238
+
239
+ | Width Value | Effect |
240
+ |-------------|--------|
241
+ | 0% | Mono (collapses L+R to center) |
242
+ | 100% | Normal stereo (default) |
243
+ | 100-200% | Enhanced width (side signal boosted) |
244
+ | 200% | Side-only (mono content removed) |
245
+
246
+ ### Frequency-Dependent Width ("Upside Triangle")
247
+
248
+ **Goal:** Narrow low end, wide high end. This ensures mono compatibility for bass while creating spaciousness in the upper spectrum.
249
+
250
+ **Method using Audio Effect Rack:**
251
+
252
+ 1. Create Audio Effect Rack with 3 chains:
253
+ - **Low chain:** EQ Eight (LPF at 200 Hz) -> Utility (Width 0%, mono)
254
+ - **Mid chain:** EQ Eight (BPF 200 Hz - 4 kHz) -> Utility (Width 100%)
255
+ - **High chain:** EQ Eight (HPF at 4 kHz) -> Utility (Width 120-150%)
256
+
257
+ **Simpler method with EQ Eight in M/S mode:**
258
+ 1. Set EQ Eight to M/S mode
259
+ 2. On the Side channel: apply HPF at 150-250 Hz (removes stereo info below this)
260
+ 3. Optionally boost high-shelf on Side above 4 kHz for air and width
261
+
262
+ ### Haas Effect (Micro-Delay Widening)
263
+
264
+ 1. Place Delay on track
265
+ 2. Set one channel to 10-30 ms, other to 0 ms
266
+ 3. **Warning:** Check mono compatibility — Haas effect causes phase cancellation in mono
267
+
268
+ ### Mid/Side Processing with Utility
269
+
270
+ - **Extract Mid (mono center):** Utility with Width at 0%
271
+ - **Extract Side (stereo difference):** Utility with Width at 200%
272
+ - Use in parallel chains to process mid and side independently
273
+
274
+ ---
275
+
276
+ ## 6. Low-End Management
277
+
278
+ ### Bass/Kick Relationship Strategies
279
+
280
+ #### Strategy 1: Frequency Separation (EQ Carving)
281
+
282
+ Decide which element owns the sub:
283
+ - **Kick-dominant sub:** HPF bass at 60-80 Hz, let kick fill sub. Boost bass body at 100-200 Hz
284
+ - **Bass-dominant sub:** HPF kick at 50-60 Hz (gentle), boost kick attack at 2-5 kHz. Let bass fill sub range
285
+
286
+ Complementary EQ cuts:
287
+ - If kick has a bump at 60 Hz, cut bass at 60 Hz (and vice versa)
288
+ - If kick has presence at 3 kHz, cut bass at 3 kHz
289
+
290
+ #### Strategy 2: Sidechain Ducking
291
+
292
+ Place Compressor on bass with kick as sidechain input. Both can share the sub range because the bass ducks when the kick hits.
293
+
294
+ #### Strategy 3: Multiband Sidechain
295
+
296
+ Use Multiband Dynamics on bass, sidechain only the low band (below 120 Hz) from the kick. Upper bass harmonics stay unaffected.
297
+
298
+ ### High-Pass Filtering Guide
299
+
300
+ | Instrument | HPF Frequency | Slope |
301
+ |------------|--------------|-------|
302
+ | Kick drum | None or 30 Hz | 24 dB/oct |
303
+ | Bass | None or 30 Hz | 24 dB/oct |
304
+ | Snare | 80 - 120 Hz | 18-24 dB/oct |
305
+ | Hi-hats | 200 - 400 Hz | 12-18 dB/oct |
306
+ | Guitars | 80 - 120 Hz | 12 dB/oct |
307
+ | Keys / Piano | 60 - 100 Hz | 12 dB/oct |
308
+ | Vocals | 80 - 120 Hz | 18 dB/oct |
309
+ | Pads / Strings | 100 - 200 Hz | 12 dB/oct |
310
+ | FX / Risers | 150 - 300 Hz | 12 dB/oct |
311
+
312
+ ### Mono Below Frequency
313
+
314
+ Keep everything below ~150-250 Hz in mono for:
315
+ - Mono club playback compatibility
316
+ - Vinyl cutting (stereo bass causes needle skip)
317
+ - Cleaner low end, less phase issues
318
+
319
+ **Implementation:** See Section 5 "Frequency-Dependent Width" method
320
+
321
+ ### Sub Frequency Handling
322
+
323
+ - Sub bass (20-60 Hz): Should be clean sine or triangle. Avoid complex harmonics
324
+ - One element at a time in sub range — never two sounds competing below 60 Hz
325
+ - Use spectrum analyzer to verify sub content (Spectrum device on master)
326
+
327
+ ---
328
+
329
+ ## 7. EQ Patterns
330
+
331
+ ### Frequency Character Map
332
+
333
+ | Range | Name | Character | Common Actions |
334
+ |-------|------|-----------|----------------|
335
+ | 20-60 Hz | Sub bass | Felt more than heard, physical rumble | HPF non-bass instruments; clean up with surgical cuts |
336
+ | 60-250 Hz | Bass body | Warmth, fullness, weight | Boost for warmth, cut for clarity |
337
+ | 200-500 Hz | Low mids / "Mud" | Boxy, muddy, nasal | Cut broadly by 2-4 dB on most tracks to clean mix |
338
+ | 500 Hz-1 kHz | Mid body | Honky, hollow | Cut for space, boost for body on thin sounds |
339
+ | 1-4 kHz | Upper mids / Presence | Bite, attack, clarity, aggression | Boost vocals/guitars for presence; harsh if overdone |
340
+ | 4-8 kHz | Brilliance | Sibilance, definition, edge | De-ess vocals; boost for articulation |
341
+ | 8-12 kHz | Sparkle | Crisp, bright, shimmer | Boost cymbals/acoustic guitars for life |
342
+ | 12-20 kHz | Air | Airy, open, ethereal | Gentle shelf boost for "air"; roll off if harsh |
343
+
344
+ ### Common EQ Recipes by Instrument
345
+
346
+ #### Kick Drum
347
+ - HPF: 30 Hz (remove sub rumble below tuning)
348
+ - Boost: +2-4 dB at 50-80 Hz (sub weight)
349
+ - Cut: -3-5 dB at 300-400 Hz (remove boxiness)
350
+ - Boost: +2-3 dB at 3-5 kHz (beater click/attack)
351
+
352
+ #### Snare
353
+ - HPF: 80-100 Hz
354
+ - Boost: +2-3 dB at 150-250 Hz (body)
355
+ - Cut: -2-4 dB at 400-800 Hz (boxiness)
356
+ - Boost: +2-3 dB at 2-4 kHz (crack/snap)
357
+ - Boost: +1-2 dB shelf at 8 kHz+ (sizzle/wires)
358
+
359
+ #### Bass (Synth or Electric)
360
+ - HPF: 30 Hz
361
+ - Boost: +2-3 dB at 60-100 Hz (sub foundation)
362
+ - Cut: -2-4 dB at 200-400 Hz (mud)
363
+ - Boost: +1-3 dB at 700 Hz-1.5 kHz (growl/presence)
364
+
365
+ #### Vocals
366
+ - HPF: 80-120 Hz
367
+ - Cut: -2-3 dB at 200-400 Hz (proximity effect/mud)
368
+ - Boost: +2-4 dB at 2-5 kHz (presence, intelligibility)
369
+ - De-ess: narrow cut at 5-8 kHz if sibilant
370
+ - Boost: +1-2 dB shelf at 10 kHz+ (air)
371
+
372
+ #### Pads / Strings
373
+ - HPF: 150-250 Hz (make room for bass)
374
+ - Cut: -2-3 dB at 300-500 Hz
375
+ - Shelf boost: +1-2 dB at 8 kHz+ (air and openness)
376
+
377
+ #### Hi-Hats / Cymbals
378
+ - HPF: 300-500 Hz (aggressive filtering)
379
+ - Cut: -2-3 dB at 1-3 kHz (reduce harshness)
380
+ - Boost: +1-2 dB at 8-12 kHz (shimmer)
381
+
382
+ #### Piano / Keys
383
+ - HPF: 80-120 Hz
384
+ - Cut: -2-3 dB at 300-500 Hz
385
+ - Boost: +1-2 dB at 2-4 kHz (definition)
386
+ - Boost: +1 dB shelf at 8 kHz (brightness)
387
+
388
+ ### EQ Philosophy
389
+
390
+ - **Cut more than boost** — aim for 2:1 ratio of cuts to boosts
391
+ - **Subtractive first:** Cut competing frequencies on other tracks rather than boosting the one you want to hear
392
+ - **Narrow cuts, wide boosts:** Use high Q for surgical removal, low Q for tonal shaping
393
+ - **Context is everything:** Solo to find problems, but always judge in context of the full mix
394
+ - **EQ Eight Oversampling:** Enable "HiQ" mode on master/bus EQ for cleaner high-frequency processing
395
+
396
+ ---
397
+
398
+ ## 8. Bus Processing
399
+
400
+ ### Drum Bus Chain
401
+
402
+ **Track setup:** Group all drum tracks into a group track (acts as bus)
403
+
404
+ **Typical chain order:**
405
+
406
+ 1. **EQ Eight** — HPF at 30 Hz, cut 300-500 Hz by -2 dB, gentle presence boost at 4 kHz
407
+ 2. **Glue Compressor** — The go-to drum bus compressor (modeled on SSL bus comp)
408
+ - Threshold: -15 to -25 dB
409
+ - Ratio: 2:1 to 4:1
410
+ - Attack: 0.3 - 10 ms (longer preserves transients)
411
+ - Release: 0.1 - 0.4 s (or Auto)
412
+ - Makeup: compensate to match bypassed level
413
+ - Range: -3 to -6 dB (limits max GR)
414
+ 3. **Saturator** (optional) — Analog Clip or Soft Sine mode, Drive 1-3 dB for warmth
415
+ 4. **Drum Buss** (Live device) — Trim, Crunch (distortion), Boom (low-end resonance), Transients
416
+
417
+ ### Instrument / Synth Bus Chain
418
+
419
+ 1. **EQ Eight** — HPF at 100-200 Hz (keep out of bass territory), tame 2-4 kHz if harsh
420
+ 2. **Compressor** — Gentle glue
421
+ - Ratio: 2:1 to 3:1
422
+ - Attack: 10-30 ms
423
+ - Release: Auto or 100-200 ms
424
+ - GR target: 1-3 dB
425
+ 3. **Utility** — Width adjustment (80-120%), level trim
426
+
427
+ ### Vocal Bus Chain (if multiple vocal tracks)
428
+
429
+ 1. **EQ Eight** — HPF 100 Hz, presence boost 2-4 kHz
430
+ 2. **Compressor** — Ratio 3:1 to 4:1, fast-ish attack (5-15 ms), medium release
431
+ 3. **De-esser** (or dynamic EQ) — Tame 5-8 kHz
432
+ 4. **Saturator** — Very subtle (1-2 dB drive) for warmth
433
+
434
+ ### Master Chain (Pre-Mastering)
435
+
436
+ **Typical order:**
437
+
438
+ 1. **Utility** — Gain trim to hit target level into chain; mono check button
439
+ 2. **EQ Eight** (HiQ mode) — Corrective: HPF at 25-30 Hz, gentle broad cuts/boosts
440
+ 3. **Glue Compressor** — Very gentle bus compression
441
+ - Ratio: 2:1
442
+ - Attack: 10-30 ms
443
+ - Release: Auto
444
+ - GR target: 1-2 dB max
445
+ - Soft Clip: On (optional gentle limiting)
446
+ 4. **Multiband Dynamics** (optional) — Light upward compression per band, 1-2 dB GR max per band
447
+ 5. **EQ Eight** (optional) — Final tonal polish: air boost shelf at 10 kHz
448
+ 6. **Limiter** — Final brick wall
449
+ - Gain: +2 to +4 dB (genre dependent)
450
+ - Ceiling: -0.3 dB (headroom for codec conversion)
451
+ - Lookahead: 1-4 ms
452
+ - Release: Auto
453
+ - **Target:** No more than 3-6 dB of gain reduction for transparent results
454
+
455
+ ---
456
+
457
+ ## 9. Volume Relationships
458
+
459
+ ### Relative Level Starting Points
460
+
461
+ Build the mix from the anchor element outward. These are approximate starting relationships, not absolute values.
462
+
463
+ | Element | Relative Level | Notes |
464
+ |---------|---------------|-------|
465
+ | Kick | Reference (0 dB) | Loudest element in most electronic genres |
466
+ | Snare/Clap | -1 to -3 dB | Close to kick, sometimes equal |
467
+ | Bass | -2 to -4 dB | Sub peaks similar to kick; mid-bass quieter |
468
+ | Lead Vocal | -1 to -3 dB | Sits on top in vocal-driven genres |
469
+ | Hi-hats | -6 to -10 dB | Support, not dominate |
470
+ | Percussion | -8 to -12 dB | Texture and groove |
471
+ | Synth Lead | -4 to -8 dB | Prominent but behind vocal |
472
+ | Pads / Strings | -10 to -15 dB | Bed/texture, felt not heard prominently |
473
+ | FX / Risers | -8 to -14 dB | Momentary, automated |
474
+
475
+ ### Genre-Specific Anchor
476
+
477
+ | Genre | Anchor Element | Secondary |
478
+ |-------|---------------|-----------|
479
+ | EDM / House | Kick | Bass |
480
+ | Hip-Hop / Trap | 808/Bass | Snare/Clap |
481
+ | Pop | Vocals | Kick + Snare |
482
+ | Rock | Snare | Vocals |
483
+ | Ambient | Pads | Texture |
484
+
485
+ ### Mix Bus Target
486
+
487
+ - **Peak level at master:** -6 to -3 dBFS before mastering
488
+ - **RMS / LUFS:** Genre dependent, but -14 to -10 LUFS integrated is a good pre-master range
489
+ - **After mastering/limiting:** -1 to 0 dBTP; -8 to -14 LUFS integrated depending on genre and platform
490
+
491
+ ---
492
+
493
+ ## 10. Ableton Utility Device — Complete Reference
494
+
495
+ ### Parameters
496
+
497
+ | Parameter | Range | Default | Purpose |
498
+ |-----------|-------|---------|---------|
499
+ | Gain | -35 to +35 dB | 0 dB | Level adjustment without moving fader |
500
+ | Width | 0% to 200% | 100% | Stereo field control |
501
+ | Bass Mono | Off / On + Freq | Off | Collapse frequencies below threshold to mono |
502
+ | Bass Mono Freq | 50-500 Hz | 120 Hz | Cutoff for bass mono |
503
+ | Mute | On/Off | Off | Silence output |
504
+ | Phase (Left) | Normal / Invert | Normal | Invert left channel phase |
505
+ | Phase (Right) | Normal / Invert | Normal | Invert right channel phase |
506
+ | Channel Mode | Stereo / Left / Right / Swap | Stereo | Route specific channels |
507
+ | Panorama | -50 to 50 | 0 | Pan within the device |
508
+
509
+ ### Common Use Cases
510
+
511
+ 1. **Gain staging:** Place first in chain, set Gain to bring signal to target level before plugins
512
+ 2. **Mono bass:** Enable Bass Mono, set frequency to 120-200 Hz
513
+ 3. **Mono check:** Set Width to 0% on master to check mono compatibility (then set back to 100%)
514
+ 4. **Phase correction:** Invert L or R phase to fix phase cancellation issues
515
+ 5. **Width reduction:** Width at 50-80% to narrow a too-wide synth
516
+ 6. **Width enhancement:** Width at 120-150% to widen pads/ambience (check mono compat)
517
+ 7. **Side extraction:** Width at 200% to hear only the difference signal
518
+ 8. **Channel isolation:** Set to Left or Right to solo one channel; use Swap to flip L/R
519
+ 9. **Silent sidechain trigger:** Place Utility at end of chain with Mute on; track still sends audio to sidechain inputs but is inaudible in mix
520
+ 10. **A/B level matching:** Place at end of chain; bypass all effects, match perceived loudness using Gain to fairly compare processed vs. dry
521
+
522
+ ---
523
+
524
+ ## Quick-Reference: LivePilot API for Mixing
525
+
526
+ ### Key Tools
527
+
528
+ | Operation | Tool | Key Params |
529
+ |-----------|------|------------|
530
+ | Set track volume | `set_track_volume` | `track_index`, `volume: 0.0-1.0` |
531
+ | Set track pan | `set_track_pan` | `track_index`, `pan: -1.0 to 1.0` |
532
+ | Set send level | `set_track_send` | `track_index`, `send_index`, `value: 0.0-1.0` |
533
+ | Create return track | `create_return_track` | — |
534
+ | Load device | `find_and_load_device` | `track_index`, `device_name` |
535
+ | Set device parameter | `set_device_parameter` | `track_index`, `device_index`, `parameter_name`, `value` |
536
+ | Batch set parameters | `batch_set_parameters` | `track_index`, `device_index`, `parameters: [...]` |
537
+ | Get return tracks | `get_return_tracks` | — |
538
+ | Get master track | `get_master_track` | — |
539
+ | Set master volume | `set_master_volume` | `volume: 0.0-1.0` |
540
+ | Set track routing | `set_track_routing` | `track_index`, `output_type`, etc. |
541
+
542
+ ### Common Workflows
543
+
544
+ **Set up a reverb return:**
545
+ ```
546
+ create_return_track
547
+ find_and_load_device(return_track_index, "Reverb")
548
+ batch_set_parameters(return_track_index, 0, [
549
+ {"name": "Dry/Wet", "value": 1.0},
550
+ {"name": "Decay Time", "value": 2.5},
551
+ {"name": "Pre-Delay", "value": 30}
552
+ ])
553
+ set_track_send(source_track, return_send_index, 0.5)
554
+ ```
555
+
556
+ **Set up sidechain compression:**
557
+ ```
558
+ find_and_load_device(bass_track, "Compressor")
559
+ # Sidechain routing must be configured via Ableton UI
560
+ # or set_track_routing if sidechain input routing is exposed
561
+ batch_set_parameters(bass_track, compressor_index, [
562
+ {"name": "Threshold", "value": ...},
563
+ {"name": "Ratio", "value": ...},
564
+ {"name": "Attack", "value": ...},
565
+ {"name": "Release", "value": ...}
566
+ ])
567
+ ```
568
+
569
+ **Quick drum bus glue:**
570
+ ```
571
+ find_and_load_device(drum_group_track, "Glue Compressor")
572
+ batch_set_parameters(drum_group_track, device_index, [
573
+ {"name": "Threshold", "value": ...},
574
+ {"name": "Ratio", "value": 4},
575
+ {"name": "Attack", "value": 0.3},
576
+ {"name": "Release", "value": 0.2}
577
+ ])
578
+ ```