livepilot 1.16.0 → 1.17.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 (86) hide show
  1. package/CHANGELOG.md +344 -5
  2. package/README.md +16 -15
  3. package/m4l_device/LivePilot_Analyzer.amxd +0 -0
  4. package/m4l_device/livepilot_bridge.js +1 -1
  5. package/mcp_server/__init__.py +1 -1
  6. package/mcp_server/atlas/__init__.py +85 -0
  7. package/mcp_server/atlas/device_atlas.json +3183 -382
  8. package/mcp_server/atlas/device_techniques_index.json +1510 -0
  9. package/mcp_server/atlas/enrichments/__init__.py +1 -0
  10. package/mcp_server/atlas/enrichments/audio_effects/amp.yaml +112 -0
  11. package/mcp_server/atlas/enrichments/audio_effects/audio_effect_rack.yaml +77 -0
  12. package/mcp_server/atlas/enrichments/audio_effects/cabinet.yaml +81 -0
  13. package/mcp_server/atlas/enrichments/audio_effects/corpus.yaml +128 -0
  14. package/mcp_server/atlas/enrichments/audio_effects/envelope_follower.yaml +99 -0
  15. package/mcp_server/atlas/enrichments/audio_effects/external_audio_effect.yaml +64 -0
  16. package/mcp_server/atlas/enrichments/audio_effects/looper.yaml +85 -0
  17. package/mcp_server/atlas/enrichments/audio_effects/pitch_hack.yaml +61 -0
  18. package/mcp_server/atlas/enrichments/audio_effects/pitchloop89.yaml +111 -0
  19. package/mcp_server/atlas/enrichments/audio_effects/re_enveloper.yaml +51 -0
  20. package/mcp_server/atlas/enrichments/audio_effects/resonators.yaml +121 -0
  21. package/mcp_server/atlas/enrichments/audio_effects/snipper.yaml +53 -0
  22. package/mcp_server/atlas/enrichments/audio_effects/spectral_blur.yaml +64 -0
  23. package/mcp_server/atlas/enrichments/audio_effects/spectrum.yaml +61 -0
  24. package/mcp_server/atlas/enrichments/audio_effects/tuner.yaml +43 -0
  25. package/mcp_server/atlas/enrichments/audio_effects/utility.yaml +118 -0
  26. package/mcp_server/atlas/enrichments/audio_effects/vocoder.yaml +94 -0
  27. package/mcp_server/atlas/enrichments/instruments/analog.yaml +11 -0
  28. package/mcp_server/atlas/enrichments/instruments/bass.yaml +11 -0
  29. package/mcp_server/atlas/enrichments/instruments/bell_tower.yaml +75 -0
  30. package/mcp_server/atlas/enrichments/instruments/collision.yaml +11 -0
  31. package/mcp_server/atlas/enrichments/instruments/drift.yaml +11 -0
  32. package/mcp_server/atlas/enrichments/instruments/drum_rack.yaml +142 -0
  33. package/mcp_server/atlas/enrichments/instruments/electric.yaml +11 -0
  34. package/mcp_server/atlas/enrichments/instruments/emit.yaml +11 -0
  35. package/mcp_server/atlas/enrichments/instruments/granulator_iii.yaml +124 -0
  36. package/mcp_server/atlas/enrichments/instruments/harmonic_drone_generator.yaml +83 -0
  37. package/mcp_server/atlas/enrichments/instruments/impulse.yaml +47 -0
  38. package/mcp_server/atlas/enrichments/instruments/meld.yaml +11 -0
  39. package/mcp_server/atlas/enrichments/instruments/operator.yaml +11 -0
  40. package/mcp_server/atlas/enrichments/instruments/poli.yaml +11 -0
  41. package/mcp_server/atlas/enrichments/instruments/sampler.yaml +12 -0
  42. package/mcp_server/atlas/enrichments/instruments/simpler.yaml +15 -0
  43. package/mcp_server/atlas/enrichments/instruments/sting_iftah.yaml +44 -0
  44. package/mcp_server/atlas/enrichments/instruments/tension.yaml +11 -0
  45. package/mcp_server/atlas/enrichments/instruments/vector_fm.yaml +11 -0
  46. package/mcp_server/atlas/enrichments/instruments/vector_grain.yaml +11 -0
  47. package/mcp_server/atlas/enrichments/instruments/wavetable.yaml +11 -0
  48. package/mcp_server/atlas/enrichments/midi_effects/expressive_chords.yaml +38 -0
  49. package/mcp_server/atlas/enrichments/midi_effects/filler.yaml +49 -0
  50. package/mcp_server/atlas/enrichments/midi_effects/microtuner.yaml +83 -0
  51. package/mcp_server/atlas/enrichments/midi_effects/patterns_iftah.yaml +38 -0
  52. package/mcp_server/atlas/enrichments/midi_effects/phase_pattern.yaml +51 -0
  53. package/mcp_server/atlas/enrichments/midi_effects/polyrhythm.yaml +46 -0
  54. package/mcp_server/atlas/enrichments/midi_effects/retrigger.yaml +40 -0
  55. package/mcp_server/atlas/enrichments/midi_effects/slice_shuffler.yaml +39 -0
  56. package/mcp_server/atlas/enrichments/midi_effects/sq_sequencer.yaml +39 -0
  57. package/mcp_server/atlas/enrichments/midi_effects/stages.yaml +38 -0
  58. package/mcp_server/atlas/enrichments/utility/arrangement_looper.yaml +31 -0
  59. package/mcp_server/atlas/enrichments/utility/cv_clock_in.yaml +25 -0
  60. package/mcp_server/atlas/enrichments/utility/cv_clock_out.yaml +25 -0
  61. package/mcp_server/atlas/enrichments/utility/cv_envelope_follower.yaml +38 -0
  62. package/mcp_server/atlas/enrichments/utility/cv_in.yaml +26 -0
  63. package/mcp_server/atlas/enrichments/utility/cv_instrument.yaml +34 -0
  64. package/mcp_server/atlas/enrichments/utility/cv_lfo.yaml +38 -0
  65. package/mcp_server/atlas/enrichments/utility/cv_shaper.yaml +35 -0
  66. package/mcp_server/atlas/enrichments/utility/cv_triggers.yaml +26 -0
  67. package/mcp_server/atlas/enrichments/utility/cv_utility.yaml +37 -0
  68. package/mcp_server/atlas/enrichments/utility/performer.yaml +51 -0
  69. package/mcp_server/atlas/enrichments/utility/prearranger.yaml +36 -0
  70. package/mcp_server/atlas/enrichments/utility/rotating_rhythm_generator.yaml +35 -0
  71. package/mcp_server/atlas/enrichments/utility/surround_panner.yaml +40 -0
  72. package/mcp_server/atlas/enrichments/utility/variations.yaml +40 -0
  73. package/mcp_server/atlas/enrichments/utility/vector_map.yaml +57 -0
  74. package/mcp_server/atlas/tools.py +291 -0
  75. package/mcp_server/m4l_bridge.py +19 -2
  76. package/mcp_server/sample_engine/tools.py +190 -72
  77. package/mcp_server/server.py +18 -6
  78. package/mcp_server/splice_client/client.py +90 -18
  79. package/mcp_server/splice_client/http_bridge.py +414 -138
  80. package/mcp_server/splice_client/models.py +12 -0
  81. package/mcp_server/tools/analyzer.py +150 -1
  82. package/mcp_server/tools/automation.py +168 -0
  83. package/package.json +2 -2
  84. package/remote_script/LivePilot/__init__.py +1 -1
  85. package/remote_script/LivePilot/arrangement.py +216 -1
  86. package/server.json +3 -3
@@ -0,0 +1,118 @@
1
+ id: utility
2
+ name: Utility
3
+ sonic_description: >
4
+ The universal gain / pan / width / DC-offset / mid-side / phase-invert /
5
+ mute-left-right toolbox. Lives everywhere in a serious mix — gain-stage
6
+ before a compressor, narrow stereo into mono on a sub, flip the phase on
7
+ a snare bottom mic, extract the sides of a stereo source for parallel
8
+ processing. Not an "effect" so much as surgical infrastructure.
9
+ effect_type: utility
10
+ character_tags: [transparent, surgical, infrastructure, mix_bus, gain_staging]
11
+ use_cases:
12
+ - gain_staging_before_compression
13
+ - stereo_width_control
14
+ - mono_compatibility_check
15
+ - phase_inversion_on_drum_bottom_mic
16
+ - mid_side_separation
17
+ - dc_offset_removal
18
+ - silencing_one_channel_of_a_stereo_source
19
+ genre_affinity:
20
+ primary: [all]
21
+ secondary: []
22
+ complexity: beginner
23
+ self_contained: true
24
+ introduced_in: "1.0"
25
+ pack: Core Library
26
+
27
+ key_parameters:
28
+ - name: "Gain"
29
+ description: "Precise level adjustment — essential for gain staging"
30
+ range: [-35.0, 35.0]
31
+ unit: "dB"
32
+ type: float
33
+ sweet_spots:
34
+ trim: -3.0
35
+ boost: 3.0
36
+ match_source: 0.0
37
+
38
+ - name: "Width"
39
+ description: "Stereo field width — 0% is mono, 100% original, >100% phase-exaggerated"
40
+ range: [0.0, 400.0]
41
+ unit: "%"
42
+ type: float
43
+ sweet_spots:
44
+ mono: 0.0
45
+ narrow_bass: 30.0
46
+ natural: 100.0
47
+ wide: 140.0
48
+
49
+ - name: "Left/Right Balance"
50
+ description: "Pan the stereo field"
51
+ range: [-1.0, 1.0]
52
+ type: float
53
+
54
+ - name: "Phase L"
55
+ description: "Invert left channel phase"
56
+ range: [0, 1]
57
+ type: int
58
+
59
+ - name: "Phase R"
60
+ description: "Invert right channel phase"
61
+ range: [0, 1]
62
+ type: int
63
+
64
+ - name: "Mute L"
65
+ description: "Silence left channel only — useful for checking mono"
66
+ range: [0, 1]
67
+ type: int
68
+
69
+ - name: "Mute R"
70
+ description: "Silence right channel only"
71
+ range: [0, 1]
72
+ type: int
73
+
74
+ - name: "Mid/Side"
75
+ description: "Enable mid-side mode — Width now controls mid-vs-side balance"
76
+ range: [0, 1]
77
+ type: int
78
+
79
+ - name: "DC"
80
+ description: "Remove DC offset from the signal"
81
+ range: [0, 1]
82
+ type: int
83
+
84
+ pairs_well_with:
85
+ - device: "Compressor"
86
+ reason: "Put a Utility before a compressor to hit the exact level the compressor expects"
87
+ - device: "EQ Eight"
88
+ reason: "Utility first for gain staging, EQ Eight for tonal shaping — the order matters"
89
+ - device: "Saturator"
90
+ reason: "Utility to trim level before saturation so you can predict the harmonic generation"
91
+
92
+ starter_recipes:
93
+ - name: "Mono Sub Bass"
94
+ description: "Collapse low-end stereo for phase-coherent sub"
95
+ genre: techno
96
+ params:
97
+ "Width": 0.0
98
+
99
+ - name: "Phase-Invert Snare Bottom"
100
+ description: "Flip phase of bottom-mic'd snare against top for fatter snare"
101
+ genre: all
102
+ params:
103
+ "Phase L": 1
104
+ "Phase R": 1
105
+
106
+ - name: "Mid/Side Extract Sides"
107
+ description: "Get only the stereo difference for parallel processing"
108
+ genre: all
109
+ params:
110
+ "Mid/Side": 1
111
+ "Width": 100.0
112
+
113
+ gotchas:
114
+ - "Width at 0% collapses the signal to mono — the standard move for sub-bass and kick where stereo phase issues matter"
115
+ - "Mid/Side mode changes what Width controls — read carefully before adjusting"
116
+ - "Phase invert is per-channel — inverting both L and R re-inverts to original"
117
+ - "Gain is post-pan — if you're trying to compensate a pan with gain, check the order"
118
+ - "Utility is ALWAYS at the bottom of the master chain in LivePilot setups — AFTER LivePilot_Analyzer would break analyzer readings"
@@ -0,0 +1,94 @@
1
+ id: vocoder
2
+ name: Vocoder
3
+ sonic_description: >
4
+ Classic channel-vocoder — carrier signal (synth/noise) modulated by a
5
+ modulator signal's spectral envelope (voice/drums). Converts your voice
6
+ into a robot singing the synth's notes. Up to 40 bands, adjustable formant
7
+ shift, noise/pitch tracking modes. Essentiel for Imogen Heap / Daft Punk
8
+ vocal, robotic speech, and pitched noise/drum transformations.
9
+ effect_type: vocoder
10
+ character_tags: [vocal, robotic, synthesized, formant, classic]
11
+ use_cases:
12
+ - robot_voice
13
+ - synth_speaks_words
14
+ - pitched_drum_transformation
15
+ - noise_to_harmonic_texture
16
+ - talk_box_emulation
17
+ genre_affinity:
18
+ primary: [electronic, hip_hop, pop, synthwave]
19
+ secondary: [experimental, ambient, dub]
20
+ complexity: intermediate
21
+ self_contained: false
22
+ introduced_in: "8.0"
23
+ pack: Core Library
24
+
25
+ key_parameters:
26
+ - name: "Bands"
27
+ description: "Number of analysis/synthesis bands — more bands = more speech-intelligible"
28
+ range: [4, 40]
29
+ type: int
30
+ sweet_spots:
31
+ abstract: 8
32
+ classic_robot: 16
33
+ speech_clarity: 32
34
+
35
+ - name: "Carrier Source"
36
+ description: "Where the synthesizing signal comes from"
37
+ range: ["Noise", "External", "Modulator"]
38
+ type: enum
39
+
40
+ - name: "Formant"
41
+ description: "Shift the formant frequencies up or down"
42
+ range: [-24, 24]
43
+ unit: "st"
44
+ type: int
45
+ sweet_spots:
46
+ deeper: -6
47
+ original: 0
48
+ chipmunk: 8
49
+
50
+ - name: "Depth"
51
+ description: "Intensity of the vocoding effect"
52
+ range: [0.0, 1.0]
53
+ type: float
54
+
55
+ - name: "Gate"
56
+ description: "Silence vocoder output below a threshold — reduces background hiss"
57
+ range: [-80.0, 0.0]
58
+ unit: "dB"
59
+ type: float
60
+
61
+ pairs_well_with:
62
+ - device: "Reverb"
63
+ reason: "Long reverb on vocoded voice creates ethereal robot atmospheres"
64
+ - device: "Chorus-Ensemble"
65
+ reason: "Thickens the synthetic voice"
66
+ - device: "EQ Eight"
67
+ reason: "Post-vocoder high-pass at 200 Hz cleans up the rumble"
68
+ - device: "Utility"
69
+ reason: "Width control for stereo vocoded voices"
70
+
71
+ starter_recipes:
72
+ - name: "Classic Robot Voice"
73
+ description: "Voice modulator, saw-wave carrier"
74
+ genre: electronic
75
+ params:
76
+ "Bands": 16
77
+ "Carrier Source": "External"
78
+ "Formant": 0
79
+ "Depth": 1.0
80
+
81
+ - name: "Noise-Carried Drums"
82
+ description: "Drums as modulator, internal noise carrier — whispering pitched drums"
83
+ genre: experimental
84
+ params:
85
+ "Bands": 12
86
+ "Carrier Source": "Noise"
87
+ "Depth": 1.0
88
+
89
+ gotchas:
90
+ - "The carrier signal must be harmonically rich (saw, square, noise) — a sine wave carrier produces no vocoded sound"
91
+ - "External carrier mode requires audio-from routing on the track — most people miss this on first try"
92
+ - "Very low Bands count (4-8) is abstract, not speech-intelligible — pick Bands based on whether you want words understood"
93
+ - "Formant shift is in semitones but changes character, not pitch — useful for gender/age effects"
94
+ - "Gate is essential — without it, even silence outputs noise"
@@ -154,6 +154,17 @@ key_parameters:
154
154
  moderate: 0.35
155
155
  extreme: 0.8
156
156
 
157
+ signature_techniques:
158
+ - name: "Reese bass (drum & bass)"
159
+ description: "Two detuned saws at different octaves, LP24 filter with slight resonance, no LFO — let the beat frequency between the oscillators do the modulation."
160
+ aesthetic: ['dnb', 'neurofunk', 'jungle']
161
+ - name: "Hawtin subtractive pad"
162
+ description: "Single saw, slow filter sweep from dark to bright across 32 bars, filter env amount slight negative so attack is dark — the pad evolves by unfolding, not by adding."
163
+ aesthetic: ['minimal_techno', 'deep_minimal']
164
+ - name: "303 acid bass"
165
+ description: "Osc1 saw, octave down, LP24 with high resonance (0.8+), env amount 0.9, amp decay short. Use Filter1 Freq + Res as performance controls — the acid line IS the filter gesture."
166
+ aesthetic: ['acid_house', 'acid_techno']
167
+
157
168
  pairs_well_with:
158
169
  - device: "Auto Filter"
159
170
  reason: "Adds rhythmic filter movement and envelope-following beyond the built-in filters"
@@ -134,6 +134,17 @@ key_parameters:
134
134
  medium: 80.0
135
135
  slow_glide: 200.0
136
136
 
137
+ signature_techniques:
138
+ - name: "808 sub replacement"
139
+ description: "Sine+triangle, fundamental C1, amp envelope long decay, subtle pitch envelope down 1 semitone over 100ms. Cleaner than sampled 808s, and tunable in-key."
140
+ aesthetic: ['trap', 'hip_hop', 'dubstep']
141
+ - name: "Reese-style bass"
142
+ description: "Two detuned oscillators octave apart, LP filter resonant, saturation on output. The sum-of-beats IS the movement — no LFO needed."
143
+ aesthetic: ['dnb', 'jungle', 'bass_music']
144
+ - name: "Dub sub-bass"
145
+ description: "Pure sine at fundamental, very long release, no transient. The bass is felt not heard — pair with a short percussive layer (click at 2-5kHz) for attack."
146
+ aesthetic: ['dub', 'dub_techno', 'deep_minimal']
147
+
137
148
  pairs_well_with:
138
149
  - device: "EQ Eight"
139
150
  reason: "Surgical low-end shaping — roll off sub-rumble and shape the bass presence"
@@ -0,0 +1,75 @@
1
+ id: bell_tower
2
+ name: Bell Tower
3
+ sonic_description: >
4
+ FM bell synthesis M4L example device from the Building Max Devices pack.
5
+ Designed as a tutorial but produces genuinely usable bell/mallet timbres
6
+ via simple FM synthesis. Through Convolution Reverb = thin Arpiar bell
7
+ stab territory.
8
+ synthesis_type: fm_bell
9
+ character_tags: [bell, fm, metallic, percussive]
10
+ use_cases: [bell_stab, pluck, atmospheric_bell]
11
+ genre_affinity:
12
+ primary: [ambient, deep_minimal, arpiar]
13
+ secondary: [experimental, cinematic]
14
+ complexity: beginner
15
+ self_contained: true
16
+ introduced_in: "11.0"
17
+ pack: Building Max Devices
18
+ creator: Ableton
19
+ class_name: PluginDevice
20
+
21
+ key_parameters:
22
+ - name: "Carrier Freq"
23
+ description: "Base pitch."
24
+ - name: "Modulator Ratio"
25
+ description: "Ratio of modulator to carrier — inharmonic ratios give bells, integer ratios give pluck tones."
26
+ - name: "Modulator Depth"
27
+ description: "FM index — brightness/metallic character."
28
+ - name: "Decay"
29
+ description: "Bell decay time."
30
+
31
+ signature_techniques:
32
+ - name: "Arpiar bell through Convolution Reverb"
33
+ description: "Short decay, subtle modulator depth, single hit per bar, through a long cathedral IR → the thin bell stab that recurs in Arpiar tracks."
34
+ aesthetic: [arpiar, deep_minimal]
35
+ - name: "Inharmonic bell struck through PitchLoop89"
36
+ description: "Modulator ratio around 1.41 (irrational), short decay, through dual-detune PitchLoop89 (+5 / -7 cents) → phased bell cluster."
37
+ aesthetic: [arpiar, ambient]
38
+
39
+ pairs_well_with:
40
+ - device: "Convolution Reverb"
41
+ reason: "Essential — Bell Tower raw is too dry. Long cathedral or hall IR transforms it into the signature bell-stab"
42
+ - device: "PitchLoop89"
43
+ reason: "Dual-detune smears the bell transient into a phased cluster — Henke bell territory"
44
+ - device: "Utility"
45
+ reason: "Width control essential — Bell Tower is mono, Utility width at 140% gives headphone-scale spatialization"
46
+ - device: "Auto Filter"
47
+ reason: "Modulate cutoff slowly for evolving bell texture — 30-second LFO period"
48
+
49
+ starter_recipes:
50
+ - name: "Arpiar Bell Stab"
51
+ description: "Single bell hit per bar, thin, through cathedral reverb"
52
+ genre: deep_minimal
53
+ params:
54
+ "Carrier Freq": 660.0
55
+ "Modulator Ratio": 1.41
56
+ "Modulator Depth": 0.35
57
+ "Decay": 0.3
58
+
59
+ - name: "Ambient Bell Cloud"
60
+ description: "Sustained bells through reverb — pad-adjacent atmosphere"
61
+ genre: ambient
62
+ params:
63
+ "Carrier Freq": 440.0
64
+ "Modulator Ratio": 3.0
65
+ "Modulator Depth": 0.2
66
+ "Decay": 1.0
67
+
68
+ gotchas:
69
+ - "Modulator Ratio at integer values (2, 3, 4) gives pluck-like tones; irrational values (1.41, 2.71) give metallic bells. Small distinctions, big character shifts"
70
+ - "Modulator Depth at max is harsh — the FM index becomes over-rich. Stay under 0.7 unless you want noise-bell"
71
+ - "Bell Tower is monophonic by default — for chords, use multiple instances or layer with another FM instrument"
72
+ - "It's an M4L tutorial device — not as CPU-optimized as Operator in FM mode. Consider Operator for production final bounces"
73
+
74
+ learn_more:
75
+ pack: "Building Max Devices"
@@ -96,6 +96,17 @@ key_parameters:
96
96
  fifth: 7.0
97
97
  octave: 12.0
98
98
 
99
+ signature_techniques:
100
+ - name: "Mallet percussion"
101
+ description: "Struck resonator, material=wood, partials=5-8, decay short. Marimba/vibraphone without sampling — the physical model responds to velocity like the real instrument."
102
+ aesthetic: ['ambient', 'cinematic', 'experimental']
103
+ - name: "Inharmonic bell drone"
104
+ description: "Struck bar, inharmonicity high, decay long, LFO modulating partial levels. The bell never settles — each strike reveals a different harmonic slice."
105
+ aesthetic: ['experimental', 'ambient', 'microhouse']
106
+ - name: "Struck prepared string"
107
+ description: "Bowed string exciter with mute on, low tension, short decay — prepared-piano territory. Pair with Convolution Reverb for Cage/Feldman atmosphere."
108
+ aesthetic: ['experimental', 'classical', 'cinematic']
109
+
99
110
  pairs_well_with:
100
111
  - device: "Reverb"
101
112
  reason: "Physical modeling sounds bloom in reverberant spaces — adds room context"
@@ -104,6 +104,17 @@ key_parameters:
104
104
  natural: 250.0
105
105
  ambient: 1500.0
106
106
 
107
+ signature_techniques:
108
+ - name: "Neo-soul Rhodes-adjacent keys"
109
+ description: "Sine+triangle mix, short-attack amp, dark filter, gentle chorus send. Not trying to emulate Rhodes — trying to SIT where Rhodes sits in the mix."
110
+ aesthetic: ['neo_soul', 'r_and_b', 'lo_fi']
111
+ - name: "Minimal-techno bass anchor"
112
+ description: "Sine sub at C1, triangle octave up blended -6 dB, LP filter fixed open, no modulation. The bass doesn't move — the filter on the REVERB send does."
113
+ aesthetic: ['minimal_techno', 'deep_minimal', 'dub_techno']
114
+ - name: "Warm synthwave pad"
115
+ description: "Saw+triangle, detune 0.1, slow filter envelope, long amp release, subtle vibrato at 5 Hz. 80s pad territory without the period-drama cliché."
116
+ aesthetic: ['synthwave', '80s', 'vaporwave']
117
+
107
118
  pairs_well_with:
108
119
  - device: "Reverb"
109
120
  reason: "The organic drift character blooms beautifully in reverb space"
@@ -0,0 +1,142 @@
1
+ id: drum_rack
2
+ name: Drum Rack
3
+ sonic_description: >
4
+ A container instrument that maps up to 128 drum pads — each pad hosts its own
5
+ Simpler (or Sampler, Operator, or any other instrument plus effect chain) and
6
+ responds to one MIDI note. Drum Rack is not a synth: its sonic character comes
7
+ entirely from the samples and devices loaded into its pads. Think of it as
8
+ infrastructure — the spine that turns a folder of one-shots into a playable
9
+ kit with per-pad routing, choke groups, and macro control.
10
+ synthesis_type: sample_container
11
+ character_tags: [container, infrastructure, kit_builder, per_pad_chain, macro_addressable]
12
+ use_cases:
13
+ - build_drum_kit_from_loose_samples
14
+ - per_pad_effects_processing
15
+ - choke_groups_for_hat_pairs
16
+ - macro_controlled_drum_performance
17
+ - parallel_sample_layering_on_a_single_pad
18
+ - host_for_sliced_break_recomposition
19
+ genre_affinity:
20
+ primary: [hip_hop, electronic, techno, house, trap]
21
+ secondary: [dnb, footwork, ambient, experimental, all]
22
+ complexity: beginner
23
+ self_contained: false
24
+ introduced_in: "6.0"
25
+ pack: Core Library
26
+ is_container: true
27
+ chain_model: per_pad_instrument_and_effects
28
+
29
+ key_parameters:
30
+ - name: "Pad Note Assignment"
31
+ description: >
32
+ Each pad is assigned a MIDI note (C1=36 by convention for the kick).
33
+ Programmatic: use `set_drum_chain_note(track, chain_index, note)` rather
34
+ than GUI drag. The Live 12.4+ drum-map uses note 36 for the bottom-left
35
+ pad by default.
36
+ range: [0, 127]
37
+ type: int
38
+ sweet_spots:
39
+ kick: 36
40
+ snare: 38
41
+ closed_hat: 42
42
+ open_hat: 46
43
+ clap: 39
44
+ ride: 51
45
+
46
+ - name: "Pad Volume (per chain)"
47
+ description: "Each pad has its own volume fader on the chain"
48
+ range: [0.0, 1.0]
49
+ type: float
50
+ sweet_spots:
51
+ anchor_kick: 0.85
52
+ accent_snare: 0.75
53
+ ghost_hat: 0.35
54
+
55
+ - name: "Pad Pan (per chain)"
56
+ description: "Stereo placement per pad — crucial for width on hats/percs"
57
+ range: [-1.0, 1.0]
58
+ type: float
59
+ sweet_spots:
60
+ center: 0.0
61
+ hat_right: 0.25
62
+ perc_wide: 0.6
63
+
64
+ - name: "Choke Group"
65
+ description: >
66
+ Pads in the same choke group cut each other off (pair hats so closed
67
+ cuts open, or group percussion so overlapping hits don't stack).
68
+ range: [0, 16]
69
+ type: int
70
+ sweet_spots:
71
+ hat_pair: 1
72
+ percussion_cluster: 2
73
+
74
+ - name: "Macro 1-8"
75
+ description: >
76
+ Drum Rack macros address any parameter across any pad chain. Use for
77
+ performance gestures (global dust filter, global saturation, pad volumes
78
+ collected onto one knob).
79
+ range: [0.0, 127.0]
80
+ type: float
81
+
82
+ pairs_well_with:
83
+ - device: "Drum Buss"
84
+ reason: "The native glue — shape/boom/transients for the whole kit post-rack. Often the entire mix tool a drum rack needs"
85
+ - device: "Compressor"
86
+ reason: "Glue the kit into one punch — 2-4 dB gain reduction with a medium attack"
87
+ - device: "EQ Eight"
88
+ reason: "High-pass below 30 Hz, notch masking from kick/snare"
89
+ - device: "Saturator"
90
+ reason: "Add harmonic weight without gain staging pain. Especially on sampled kits that sound sterile"
91
+ - device: "Reverb"
92
+ reason: "Per-pad sends (build a reverb return) rather than stacking on the master"
93
+ - device: "Gate"
94
+ reason: "Tighten room-mic'd one-shots or trim bleed from multi-sampled kits"
95
+
96
+ starter_recipes:
97
+ - name: "Empty Kit for Sample Programming"
98
+ description: "Build from scratch — use add_drum_rack_pad for each slot"
99
+ genre: electronic
100
+ steps:
101
+ - "Create empty Drum Rack on a MIDI track"
102
+ - "For each sample: add_drum_rack_pad(track, note=36+i, sample_path=...)"
103
+ - "Verify each pad landed: get_track_info, check chain count"
104
+ - "Set pad volumes by role: kick 0.85, snare 0.75, hats 0.4"
105
+
106
+ - name: "Sliced-Break Reprogram"
107
+ description: "Take a break loop, slice it, reroute to a Drum Rack for MIDI programming"
108
+ genre: dnb
109
+ steps:
110
+ - "Load break to Simpler in Slicing mode"
111
+ - "classify_simpler_slices to identify kick/snare/hat roles"
112
+ - "Recreate as Drum Rack with each slice as its own pad"
113
+ - "Program new pattern — you now have MIDI control of the break"
114
+
115
+ - name: "Layered Kick (sub + click + body)"
116
+ description: "Single kick pad with three parallel instruments for fullness"
117
+ genre: techno
118
+ steps:
119
+ - "Drum Rack → pad 36 (kick) → add 3 chains within that pad"
120
+ - "Chain 1: sub sine (Operator sine wave)"
121
+ - "Chain 2: transient click (short sample)"
122
+ - "Chain 3: body (sampled kick tail)"
123
+ - "Balance chain volumes — sub first, body second, click last"
124
+
125
+ gotchas:
126
+ - "A Drum Rack with no pads produces nothing — loading the container alone is not enough. Always verify at least one chain exists via get_track_info before firing notes"
127
+ - "Pad 36 (C1) is the bottom-left in the default view and the conventional kick slot. Live 12's auto-mapping assumes this"
128
+ - "add_drum_rack_pad is the ONE reliable tool for adding pads. Using load_browser_item repeatedly to 'add' pads creates nested racks, not siblings"
129
+ - "Each pad is itself a chain with its own Volume/Pan/Solo/Mute — per-pad mute is different from muting the pad's chain. Use set_chain_volume for the pad-level fader"
130
+ - "Macros must be explicitly mapped — they don't auto-address pad volumes. Use add_rack_macro + map_plugin_parameter on the underlying instrument"
131
+ - "Choke groups 0 and 'None' are the same (no choke). Use 1-16 for actual mutual-exclusion grouping"
132
+ - "A sliced Simpler inside a Drum Rack pad responds to slice-base pitch (36+N), NOT the pad's own MIDI note. Mis-configured slicing→pad routing is a common silence cause"
133
+ - "Per-pad sends can be shown/hidden by the rack's S (Send) button on the chain list. Hidden sends still work, but you can't see them — makes debugging missing reverb very hard"
134
+
135
+ learn_more:
136
+ official: "https://www.ableton.com/en/live-manual/12/drum-racks/"
137
+ livepilot_related_tools:
138
+ - add_drum_rack_pad
139
+ - set_drum_chain_note
140
+ - get_rack_chains
141
+ - set_chain_volume
142
+ - rename_chain
@@ -78,6 +78,17 @@ key_parameters:
78
78
  clean: 0.5
79
79
  asymmetric_bark: 0.3
80
80
 
81
+ signature_techniques:
82
+ - name: "Classic Rhodes"
83
+ description: "Suitcase preset, tremolo at 5 Hz, chorus modest. The tine-bar mechanism is already in the model — no outboard reverb needed for the classic sound."
84
+ aesthetic: ['jazz', 'neo_soul', 'r_and_b']
85
+ - name: "Gritty Wurlitzer"
86
+ description: "Wurly preset, short attack, amp drive in the 20-30% range, high-pass at 100 Hz. The reed-bar grit IS the character — don't EQ it out."
87
+ aesthetic: ['soul', 'funk', 'lo_fi']
88
+ - name: "Tape-warped EP"
89
+ description: "Rhodes through Grain Delay + Auto Filter LFO, slight pitch detune. Boards of Canada / lo-fi hip-hop territory — the imperfection is the sound."
90
+ aesthetic: ['lo_fi', 'downtempo', 'hip_hop']
91
+
81
92
  pairs_well_with:
82
93
  - device: "Chorus-Ensemble"
83
94
  reason: "Classic electric piano chorus — essential for the Juno-Rhodes sound"
@@ -102,6 +102,17 @@ key_parameters:
102
102
  natural: 500.0
103
103
  ambient: 3000.0
104
104
 
105
+ signature_techniques:
106
+ - name: "Grain cloud (Tim Hecker)"
107
+ description: "Load a sustained pad source, grain density high, pitch randomization slight, reverb send heavy. The grains blur the source into an undifferentiated textural bed."
108
+ aesthetic: ['ambient', 'drone', 'experimental']
109
+ - name: "Generative evolving bass"
110
+ description: "Source = a droning note, grain density medium, randomize position slightly. The bass evolves organically without automation."
111
+ aesthetic: ['ambient', 'deep_minimal', 'generative']
112
+ - name: "Fluid texture"
113
+ description: "Short vocal sample as source, grain density sparse, position LFO slow, pitch spread wide. Not a chord, not a noise — a liminal texture that sits between."
114
+ aesthetic: ['experimental', 'ambient', 'idm']
115
+
105
116
  pairs_well_with:
106
117
  - device: "Reverb"
107
118
  reason: "Spectral sounds merge beautifully with long reverb — creates immersive washes"
@@ -0,0 +1,124 @@
1
+ id: granulator_iii
2
+ name: Granulator III
3
+ sonic_description: >
4
+ Robert Henke's (Monolake) reimagined granular synth. Three playback modes —
5
+ Classic (2 overlapping grains per stereo channel, the Granulator II engine),
6
+ Loop (rhythmic crossfaded sample playback), Cloud (up to 20 unsynced
7
+ overlapping grains). Full MPE for per-note control of grain size, shape,
8
+ and position. Real-time audio capture samples any source in one click.
9
+ The single most-used instrument for evolving texture, drone beds, and
10
+ vocal-chop clouds in deep minimal / microhouse / ambient.
11
+ synthesis_type: granular
12
+ character_tags: [granular, evolving, textural, atmospheric, experimental, organic, cloud]
13
+ use_cases: [texture, drone, vocal_chop, evolving_pad, cloud, re_pitched_loop, atmosphere]
14
+ genre_affinity:
15
+ primary: [deep_minimal, microhouse, ambient, dub_techno, idm]
16
+ secondary: [experimental, drone, cinematic, electronica]
17
+ complexity: intermediate
18
+ self_contained: false # requires a source sample or real-time capture
19
+ introduced_in: "12.0"
20
+ pack: Granulator III
21
+ creator: Robert Henke
22
+ class_name: PluginDevice
23
+
24
+ key_parameters:
25
+ - name: "Mode"
26
+ description: "Playback mode. Classic = 2 overlapping grains per channel (G II engine). Loop = rhythmic crossfaded playback synced to clip tempo. Cloud = up to 20 unsynced overlapping grains for drones/textures."
27
+ range: ["Classic", "Loop", "Cloud"]
28
+ type: enum
29
+ sweet_spots:
30
+ rhythmic_micro_loop: "Loop"
31
+ drone_cloud: "Cloud"
32
+ classic_texture: "Classic"
33
+
34
+ - name: "Grain Size"
35
+ description: "Duration of each grain in ms. Shorter = more tonal; longer = more recognizable as source."
36
+ range: [1, 1000]
37
+ unit: "ms"
38
+ type: float
39
+ sweet_spots:
40
+ cloud_drone: 200
41
+ vocal_grain: 500
42
+ micro_stutter: 20
43
+
44
+ - name: "Position"
45
+ description: "Read-head position in the source sample. Automate this for smooth source traversal."
46
+ range: [0.0, 1.0]
47
+ type: float
48
+
49
+ - name: "Position Random"
50
+ description: "Randomness added to read-head position per grain. Essential for Cloud-mode non-repeating texture."
51
+ range: [0.0, 1.0]
52
+ type: float
53
+ sweet_spots:
54
+ locked_loop: 0.0
55
+ organic_scatter: 0.3
56
+ full_chaos: 1.0
57
+
58
+ - name: "Pitch Random"
59
+ description: "Per-grain pitch detune in semitones. Low values give vintage tape wobble; high values give chord-cloud effects."
60
+ range: [0.0, 24.0]
61
+ unit: "st"
62
+ type: float
63
+ sweet_spots:
64
+ tape_wobble: 0.15
65
+ chord_cloud: 7.0
66
+ octave_chaos: 12.0
67
+
68
+ - name: "Grain Density"
69
+ description: "How many grains overlap at once. Higher = denser wall of sound."
70
+ range: [1, 20]
71
+ type: int
72
+ sweet_spots:
73
+ classic: 2
74
+ cloud_pad: 12
75
+ wall_of_sound: 20
76
+
77
+ - name: "Spray"
78
+ description: "Time randomization of grain onsets. Prevents periodic artifacts that make granular sound 'machine-like'."
79
+ range: [0.0, 1.0]
80
+ type: float
81
+ sweet_spots:
82
+ organic: 0.2
83
+ fully_asynchronous: 0.6
84
+
85
+ signature_techniques:
86
+ - name: "Instant deep-minimal texture"
87
+ description: >
88
+ Load any vocal snippet or field recording → Cloud mode, Grain Size 200-500ms,
89
+ Position Random 0.3, Pitch Random 0.1 → immediate organic evolving bed.
90
+ aesthetic: [microhouse, deep_minimal, ambient]
91
+ - name: "Rhythmic break re-chop"
92
+ description: >
93
+ Load a drum break → Loop mode, sync to clip tempo → automate Position in
94
+ short jumps → Akufen-style micro-edit patterns without manual slicing.
95
+ aesthetic: [microhouse, idm]
96
+ - name: "Vocal-to-chord-cloud"
97
+ description: >
98
+ Sustained vowel sample → Cloud mode, Pitch Random 7st, Grain Size 400ms
99
+ → vocal becomes harmonic cloud without recognizable words.
100
+ aesthetic: [ambient, deep_minimal]
101
+ - name: "Real-time capture and grain"
102
+ description: >
103
+ Set up Granulator on a return track, route any source to it, hit Capture,
104
+ then grain the just-captured audio. Zero commitment to the source — if
105
+ you don't like the grain, record a new slice.
106
+ aesthetic: [experimental, ambient]
107
+
108
+ pairings:
109
+ - device: convolution_reverb
110
+ rationale: "Henke-canonical combo — grain clouds through a long hall IR = Basic Channel / Monolake spatial signature"
111
+ - device: pitchloop89
112
+ rationale: "Pair on output for detuned shimmer on top of the evolving texture"
113
+ - device: microtuner
114
+ rationale: "Feed Granulator through Microtuner for microtonal grain-cloud beds"
115
+
116
+ gotchas:
117
+ - "Cloud mode with 20 grains + 500ms size is CPU-heavy — freeze the track after print"
118
+ - "Real-time Capture samples whatever routes to the track — put on a return to grain a single source cleanly"
119
+ - "Position at 1.0 (end of sample) goes silent — keep Position + Grain Size below 1.0 of the sample duration"
120
+ - "Grain Size below 20ms starts producing audible tonal artifacts — good for FM-like textures, bad for 'natural' grain"
121
+
122
+ learn_more:
123
+ official: "https://www.ableton.com/en/packs/granulator-iii/"
124
+ creator_site: "https://roberthenke.com/technology/granulator3.html"