livepilot 1.16.1 → 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 (50) hide show
  1. package/CHANGELOG.md +269 -0
  2. package/README.md +16 -15
  3. package/m4l_device/LivePilot_Analyzer.amxd +0 -0
  4. package/mcp_server/__init__.py +1 -1
  5. package/mcp_server/atlas/__init__.py +85 -0
  6. package/mcp_server/atlas/device_atlas.json +3183 -382
  7. package/mcp_server/atlas/device_techniques_index.json +1510 -0
  8. package/mcp_server/atlas/enrichments/__init__.py +1 -0
  9. package/mcp_server/atlas/enrichments/audio_effects/amp.yaml +112 -0
  10. package/mcp_server/atlas/enrichments/audio_effects/audio_effect_rack.yaml +77 -0
  11. package/mcp_server/atlas/enrichments/audio_effects/cabinet.yaml +81 -0
  12. package/mcp_server/atlas/enrichments/audio_effects/corpus.yaml +128 -0
  13. package/mcp_server/atlas/enrichments/audio_effects/envelope_follower.yaml +99 -0
  14. package/mcp_server/atlas/enrichments/audio_effects/external_audio_effect.yaml +64 -0
  15. package/mcp_server/atlas/enrichments/audio_effects/looper.yaml +85 -0
  16. package/mcp_server/atlas/enrichments/audio_effects/resonators.yaml +121 -0
  17. package/mcp_server/atlas/enrichments/audio_effects/snipper.yaml +17 -0
  18. package/mcp_server/atlas/enrichments/audio_effects/spectrum.yaml +61 -0
  19. package/mcp_server/atlas/enrichments/audio_effects/tuner.yaml +43 -0
  20. package/mcp_server/atlas/enrichments/audio_effects/utility.yaml +118 -0
  21. package/mcp_server/atlas/enrichments/audio_effects/vocoder.yaml +94 -0
  22. package/mcp_server/atlas/enrichments/instruments/analog.yaml +11 -0
  23. package/mcp_server/atlas/enrichments/instruments/bass.yaml +11 -0
  24. package/mcp_server/atlas/enrichments/instruments/bell_tower.yaml +38 -0
  25. package/mcp_server/atlas/enrichments/instruments/collision.yaml +11 -0
  26. package/mcp_server/atlas/enrichments/instruments/drift.yaml +11 -0
  27. package/mcp_server/atlas/enrichments/instruments/drum_rack.yaml +142 -0
  28. package/mcp_server/atlas/enrichments/instruments/electric.yaml +11 -0
  29. package/mcp_server/atlas/enrichments/instruments/emit.yaml +11 -0
  30. package/mcp_server/atlas/enrichments/instruments/meld.yaml +11 -0
  31. package/mcp_server/atlas/enrichments/instruments/operator.yaml +11 -0
  32. package/mcp_server/atlas/enrichments/instruments/poli.yaml +11 -0
  33. package/mcp_server/atlas/enrichments/instruments/sampler.yaml +12 -0
  34. package/mcp_server/atlas/enrichments/instruments/simpler.yaml +15 -0
  35. package/mcp_server/atlas/enrichments/instruments/tension.yaml +11 -0
  36. package/mcp_server/atlas/enrichments/instruments/vector_fm.yaml +11 -0
  37. package/mcp_server/atlas/enrichments/instruments/vector_grain.yaml +11 -0
  38. package/mcp_server/atlas/enrichments/instruments/wavetable.yaml +11 -0
  39. package/mcp_server/atlas/enrichments/midi_effects/filler.yaml +17 -0
  40. package/mcp_server/atlas/enrichments/utility/performer.yaml +15 -0
  41. package/mcp_server/atlas/enrichments/utility/vector_map.yaml +21 -0
  42. package/mcp_server/atlas/tools.py +291 -0
  43. package/mcp_server/m4l_bridge.py +19 -2
  44. package/mcp_server/sample_engine/tools.py +140 -68
  45. package/mcp_server/splice_client/http_bridge.py +319 -116
  46. package/mcp_server/tools/automation.py +168 -0
  47. package/package.json +2 -2
  48. package/remote_script/LivePilot/__init__.py +1 -1
  49. package/remote_script/LivePilot/arrangement.py +216 -1
  50. package/server.json +3 -3
@@ -0,0 +1,121 @@
1
+ id: resonators
2
+ name: Resonators
3
+ sonic_description: >
4
+ Five parallel tuned comb-filter resonators. Imposes a chord onto any
5
+ signal — drums become pitched, noise becomes a tone, speech becomes a
6
+ harmonized choir. Each of 5 resonators has its own note, gain, decay,
7
+ and width. Signature of Radiohead-style glitch, minimal sound design,
8
+ and tonal-from-atonal transformations.
9
+ effect_type: resonator
10
+ character_tags: [pitched, tonal, harmonizing, comb_filter, experimental]
11
+ use_cases:
12
+ - pitch_atonal_percussion
13
+ - harmonize_noise_or_speech
14
+ - tonal_drone_from_any_source
15
+ - chord_imprint_on_drums
16
+ - dub_style_pitched_echo_alternative
17
+ genre_affinity:
18
+ primary: [experimental, ambient, idm, dub]
19
+ secondary: [minimal, techno, sound_design]
20
+ complexity: advanced
21
+ self_contained: true
22
+ introduced_in: "8.0"
23
+ pack: Core Library
24
+
25
+ key_parameters:
26
+ - name: "Mode"
27
+ description: "Shape of the resonator (different comb topologies for different characters)"
28
+ range: ["Mode I", "Mode II", "Mode III", "Mode IV", "Mode V"]
29
+ type: enum
30
+ sweet_spots:
31
+ standard: "Mode I"
32
+ metallic: "Mode III"
33
+ smooth: "Mode V"
34
+
35
+ - name: "Root"
36
+ description: "Base note for the 5 resonators"
37
+ range: [0, 127]
38
+ type: int
39
+ sweet_spots:
40
+ low_hum: 36
41
+ standard_bass: 48
42
+ mid_tone: 60
43
+
44
+ - name: "Note 1-5"
45
+ description: "Semitone offset from Root for each of the 5 resonators"
46
+ range: [-24, 24]
47
+ unit: "st"
48
+ type: int
49
+ sweet_spots:
50
+ major_chord: "[0, 4, 7, 12, 19]"
51
+ minor_chord: "[0, 3, 7, 12, 15]"
52
+ detune_unison: "[0, 0.1, -0.1, 0.2, -0.2]"
53
+
54
+ - name: "Decay 1-5"
55
+ description: "Per-resonator sustain time"
56
+ range: [0.0, 1.0]
57
+ type: float
58
+
59
+ - name: "Gain 1-5"
60
+ description: "Per-resonator level"
61
+ range: [-24.0, 24.0]
62
+ unit: "dB"
63
+ type: float
64
+
65
+ - name: "Input"
66
+ description: "Input filter — shapes what hits the resonators"
67
+ range: ["LP", "BP", "HP"]
68
+ type: enum
69
+
70
+ - name: "Width"
71
+ description: "Stereo spread of the 5 resonators"
72
+ range: [0.0, 1.0]
73
+ type: float
74
+
75
+ - name: "Dry/Wet"
76
+ description: "Mix of original vs resonated"
77
+ range: [0.0, 1.0]
78
+ type: float
79
+
80
+ pairs_well_with:
81
+ - device: "Reverb"
82
+ reason: "Resonators + long reverb = infinite tonal drone from any excitation"
83
+ - device: "Gate"
84
+ reason: "Gate before Resonators controls when the chord imprint triggers"
85
+ - device: "Compressor"
86
+ reason: "After Resonators to balance the varying-level tonal output"
87
+ - device: "Auto Filter"
88
+ reason: "Filter the resonated output for evolving timbre on a static chord"
89
+
90
+ starter_recipes:
91
+ - name: "Noise Minor Chord"
92
+ description: "White noise imprinted with a low minor chord — ambient drone"
93
+ genre: ambient
94
+ params:
95
+ "Root": 36
96
+ "Note 1": 0
97
+ "Note 2": 3
98
+ "Note 3": 7
99
+ "Note 4": 12
100
+ "Note 5": 15
101
+ "Decay 1": 0.9
102
+ "Dry/Wet": 1.0
103
+
104
+ - name: "Pitched Drums"
105
+ description: "Drums forced to a root note, chord imprint from kit"
106
+ genre: experimental
107
+ params:
108
+ "Root": 48
109
+ "Note 1": 0
110
+ "Note 2": 7
111
+ "Note 3": 12
112
+ "Note 4": 16
113
+ "Decay 1": 0.4
114
+ "Dry/Wet": 0.5
115
+
116
+ gotchas:
117
+ - "Resonators forces a pitch — make sure Root matches the track's key or the chord will clash"
118
+ - "All 5 resonators at max Decay self-feedback — combined output can clip. Watch peak level"
119
+ - "Input filter affects which frequencies resonate — low-pass input preserves only low-mid resonance, HP emphasizes brightness"
120
+ - "Very short Decay values (<0.2) produce comb-filtered ghost tones rather than sustained pitched output"
121
+ - "For stringed-instrument-style resonance, try Corpus instead — Resonators is about chord imprinting"
@@ -31,6 +31,23 @@ signature_techniques:
31
31
  - name: "Vocal micro-chop"
32
32
  description: "Route vocal → Snipper → short snippet, fast replay, pitch mod → instant Akufen-adjacent micro-vocal pattern."
33
33
  aesthetic: [microhouse]
34
+ - name: "Hat replay pitch drift"
35
+ description: "Closed hat → Snipper with tiny snippet length, pitch mod ±3 semitones, randomize on → every hat is pitched differently. Microhouse signature."
36
+ aesthetic: [microhouse, deep_minimal]
37
+
38
+ pairs_well_with:
39
+ - device: "Convolution Reverb"
40
+ reason: "Short reverb IR tail on the snipper output blurs the micro-chop into a texture instead of pointillistic hits"
41
+ - device: "PitchLoop89"
42
+ reason: "Stack Snipper into PitchLoop89 for dual-pitch staggered micro-chops — the Henke-style signature"
43
+ - device: "Gate"
44
+ reason: "Gate after Snipper to carve silence between snippets for rhythmic precision"
45
+
46
+ gotchas:
47
+ - "Snipper's snippet window can end up shorter than audible grain — at very short lengths it becomes comb-filter territory, not chopping"
48
+ - "Randomize at max with long snippets sounds chaotic rather than musical — pair random intensity with snippet length"
49
+ - "It's an M4L device — first-hit audio buffers aren't pre-filled. Expect silence for the first bar on a fresh load"
50
+ - "Not automatable from MCP beyond the top-level parameters — internal state is private to the Max patcher"
34
51
 
35
52
  learn_more:
36
53
  pack: "Building Max Devices"
@@ -0,0 +1,61 @@
1
+ id: spectrum
2
+ name: Spectrum
3
+ sonic_description: >
4
+ Real-time FFT spectrum analyzer — shows frequency content vs amplitude
5
+ over time. Diagnostic only, no audio processing. Essential for mixing
6
+ decisions: frequency masking, bass extension, harmonic content, sibilance.
7
+ LivePilot's analyzer bridge captures a similar but more structured
8
+ readout via the M4L Analyzer device — use Spectrum for visual cross-check.
9
+ effect_type: analyzer
10
+ character_tags: [diagnostic, transparent, measurement, mix_tool]
11
+ use_cases:
12
+ - identifying_frequency_masking
13
+ - checking_bass_extension
14
+ - spotting_harsh_harmonics
15
+ - mastering_reference_checking
16
+ - harmonic_analysis_of_a_synth_patch
17
+ genre_affinity:
18
+ primary: [all]
19
+ secondary: []
20
+ complexity: beginner
21
+ self_contained: true
22
+ introduced_in: "8.0"
23
+ pack: Core Library
24
+
25
+ key_parameters:
26
+ - name: "Block Size"
27
+ description: "FFT window — bigger = better frequency resolution, worse time resolution"
28
+ range: [64, 16384]
29
+ type: int
30
+ sweet_spots:
31
+ transient_focus: 512
32
+ balanced: 2048
33
+ mastering_detail: 8192
34
+
35
+ - name: "Range (Top)"
36
+ description: "Upper edge of displayed dB range"
37
+ range: [-60.0, 0.0]
38
+ unit: "dB"
39
+ type: float
40
+
41
+ - name: "Range (Bottom)"
42
+ description: "Lower edge of displayed dB range"
43
+ range: [-160.0, -60.0]
44
+ unit: "dB"
45
+ type: float
46
+
47
+ - name: "Channel"
48
+ description: "Display mode — L only, R only, L+R separate, or Mid/Side"
49
+ range: ["L", "R", "L+R", "Mid/Side"]
50
+ type: enum
51
+
52
+ pairs_well_with:
53
+ - device: "EQ Eight"
54
+ reason: "EQ Eight has a built-in spectrum — Spectrum as a second analyzer post-EQ validates your moves"
55
+
56
+ gotchas:
57
+ - "Spectrum is DIAGNOSTIC — no processing, audio passes through. Don't use as an effect"
58
+ - "Block size is a time/frequency tradeoff — mastering wants 4096+, drum-punch analysis wants 512 or less"
59
+ - "Very high FFT sizes can stress CPU on low-end hardware — remove when mixdown is final"
60
+ - "Does not measure LUFS, peak, or other broadcast meters — use dedicated metering for that"
61
+ - "For programmatic measurement, use LivePilot's analyze_spectrum_offline / get_master_spectrum tools — Spectrum is for visual human inspection only"
@@ -0,0 +1,43 @@
1
+ id: tuner
2
+ name: Tuner
3
+ sonic_description: >
4
+ Reference chromatic tuner — shows pitch / note / cent deviation from
5
+ equal temperament. Sits on a guitar/bass/vocal track as a tuning aid.
6
+ Passes signal through unchanged. Not an effect; a diagnostic tool.
7
+ effect_type: analyzer
8
+ character_tags: [diagnostic, transparent, pitch_reference, measurement]
9
+ use_cases:
10
+ - tuning_a_guitar_or_bass
11
+ - checking_pitch_of_a_vocal
12
+ - reference_pitch_for_microtuning_experiments
13
+ genre_affinity:
14
+ primary: [all]
15
+ secondary: []
16
+ complexity: beginner
17
+ self_contained: true
18
+ introduced_in: "11.0"
19
+ pack: Core Library
20
+
21
+ key_parameters:
22
+ - name: "Reference (A)"
23
+ description: "Tuning reference — A440 standard, or shift for non-standard tuning"
24
+ range: [410.0, 480.0]
25
+ unit: "Hz"
26
+ type: float
27
+ sweet_spots:
28
+ standard: 440.0
29
+ baroque: 415.0
30
+ modern_orchestra: 442.0
31
+
32
+ - name: "Transpose"
33
+ description: "Shift the displayed pitch — useful for transposing instruments"
34
+ range: [-24, 24]
35
+ unit: "st"
36
+ type: int
37
+
38
+ pairs_well_with: []
39
+
40
+ gotchas:
41
+ - "Tuner is DIAGNOSTIC — the audio passes through unchanged. Don't use as an effect"
42
+ - "Requires a monophonic input for accurate reading — chords can't be tuned this way"
43
+ - "Low notes below E1 may display unreliably — fundamental frequency detection fails on very low fundamentals"
@@ -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"
@@ -32,6 +32,44 @@ signature_techniques:
32
32
  - name: "Arpiar bell through Convolution Reverb"
33
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
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"
35
73
 
36
74
  learn_more:
37
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"