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,963 @@
1
+ # MIDI Tools — Device Atlas
2
+
3
+ > 45 devices: 13 Native MIDI Effects + 12 All MIDI Tools (Meyer) + 5 J74 Suite + 7 CLX_03 LDM/zsteinkamp + 4 Soundmanufacture + 4 Generative
4
+
5
+ ---
6
+
7
+ ## Native Ableton MIDI Effects
8
+
9
+ ---
10
+
11
+ ### Arpeggiator
12
+ - **Type:** Native
13
+ - **Load via:** `find_and_load_device("Arpeggiator")`
14
+ - **What it does:** Takes held notes/chords and plays them as a rhythmic pattern, cycling through pitches in the chosen style at the set rate.
15
+ - **Key parameters:**
16
+ - **Style** — Up, Down, UpDown, DownUp, Converge, Diverge, Con+Diverge, PinkyUp, PinkyUpDown, ThumbUp, ThumbUpDown, Play Order, Chord Trigger, Random, Random Other, Random Once. Sweet spot: *Random Other* for melodies that don't repeat until all notes are used; *Converge* for cinematic builds.
17
+ - **Rate** — 1/1 to 1/128 (synced) or 10-1000ms (free). Sweet spot: 1/16 for standard arps, 1/8T for shuffle feel.
18
+ - **Gate** — 1-200%. Controls note overlap. >100% = legato. Sweet spot: 80% for staccato plucks, 130% for pads.
19
+ - **Steps** — How many times the pattern transposes. 1-2 for guitar strums, higher for cascading sequences.
20
+ - **Distance** — Transposition per step in semitones or scale degrees. +12 for octave jumps, +7 for fifths.
21
+ - **Repeats** — Number of pattern repeats (default infinite). 1-2 emulates guitar strumming.
22
+ - **Retrigger** — Off / Note / Beat. Beat retrigger resyncs on downbeats.
23
+ - **Velocity Decay/Target** — Shape dynamics over time. Decay fades velocity; Target pulls toward a fixed value.
24
+ - **Hold** — Pattern continues after key release until new key pressed.
25
+ - **Groove** — Apply groove patterns with Amount control.
26
+ - **Use cases:** Classic trance arps, guitar strums, generative ambient sequences, EDM risers.
27
+ - **Reach for this when:** "arpeggiate", "arp", "strum", "cycle through notes", "sequence a chord".
28
+ - **Pairs well with:** Scale (constrain pitches), Note Echo (add repeats), Chord (build input chords), any synth pad.
29
+ - **vs Note Echo:** Arpeggiator cycles through chord *tones*; Note Echo repeats the *same note* with decay.
30
+
31
+ ---
32
+
33
+ ### Chord
34
+ - **Type:** Native
35
+ - **Load via:** `find_and_load_device("Chord")`
36
+ - **What it does:** Adds up to 6 parallel notes (intervals) to every incoming MIDI note, instantly building chords from single keys.
37
+ - **Key parameters:**
38
+ - **Shift 1-6** — Each adds a note at +/-36 semitones (or scale degrees with Use Current Scale). Set to +4, +7 for major triads; +3, +7 for minor.
39
+ - **Velocity 1-6** — 1-200% relative velocity per added note. Lower velocities on upper notes create natural voicings.
40
+ - **Chance 1-6** — 0-100% probability each note fires. 50-80% adds organic variation.
41
+ - **Strum** — 0-400ms delay between notes. 20-60ms for guitar-like strums.
42
+ - **Tension** — Accelerates/decelerates strum speed. Positive = accelerating (natural pick attack).
43
+ - **Crescendo** — Velocity ramp across strummed notes. Positive = louder on later notes.
44
+ - **Learn** — Capture chord from MIDI controller input.
45
+ - **Use cases:** One-finger chord playing, parallel harmony, power chords, cluster voicings, strum emulation.
46
+ - **Reach for this when:** "add harmony", "build chords", "parallel thirds", "octave double", "power chord".
47
+ - **Pairs well with:** Scale (keep chords diatonic), Arpeggiator (arpeggiate built chords), Velocity (shape dynamics).
48
+ - **vs Chord-O-Mat 3:** Native Chord adds fixed intervals; Chord-O-Mat knows scale degrees and maps diatonic chords to single keys.
49
+
50
+ ---
51
+
52
+ ### Note Echo
53
+ - **Type:** Native
54
+ - **Load via:** `find_and_load_device("Note Echo")`
55
+ - **What it does:** Creates MIDI note echoes (delays) with pitch transposition and velocity decay per repeat. The MIDI equivalent of a delay effect.
56
+ - **Key parameters:**
57
+ - **Input** — Thru (original + echoes) or Mute (echoes only).
58
+ - **Pitch** — Transposition per echo in semitones. +12 for octave-climbing echoes, +/-7 for fifths.
59
+ - **Delay** — Echo time (synced divisions or ms). 1/8 or 1/16 most common.
60
+ - **Feedback** — Number of repeats (higher = more echoes). 4-6 for rhythmic interest, 8+ for washy trails.
61
+ - **Velocity** — Velocity decay per echo. Lower values = faster fadeout.
62
+ - **MPE Toggle** — Echoes MPE data (Press, Slide, Note PB) with independent feedback amounts per dimension.
63
+ - **Use cases:** Rhythmic MIDI delays, dub-style echoes, pitch-shifting cascades, polyrhythmic fills, ambient trails.
64
+ - **Reach for this when:** "echo", "midi delay", "repeat notes", "cascading", "dub delay".
65
+ - **Pairs well with:** Scale (keep echoes in key), Velocity (shape echo dynamics), any melodic instrument.
66
+ - **vs Fibonacci/Fractal Note Echo (zsteinkamp):** Native is regular spacing; Fibonacci/Fractal use mathematical sequences for organic, non-uniform timing.
67
+
68
+ ---
69
+
70
+ ### Note Length
71
+ - **Type:** Native
72
+ - **Load via:** `find_and_load_device("Note Length")`
73
+ - **What it does:** Forces all MIDI notes to a specific duration regardless of how long keys are held, or triggers on note-off events.
74
+ - **Key parameters:**
75
+ - **Trigger** — Note On or Note Off. Note Off mode enables release-based triggering (useful for ghost notes, percussion).
76
+ - **Mode** — Time (ms) or Sync (beat divisions).
77
+ - **Length** — Duration value. 50-100ms for percussion, 1/4-1/2 for sustained pads.
78
+ - **Gate** — Percentage of length value. 50% for staccato, 100% for full sustain.
79
+ - **Latch** — Sustains notes until next trigger (infinite sustain mode).
80
+ - **Release Velocity** (Note Off mode) — Balance between Note On/Off velocities.
81
+ - **Decay Time** (Note Off mode) — Velocity fade from Note On to Note Off.
82
+ - **Key Scale** (Note Off mode) — Lower notes = longer, higher = shorter (or inverted).
83
+ - **Use cases:** Uniform note lengths for sequenced patterns, percussion gate control, sustain-pedal-free pad holds, note-off triggering for creative rhythm.
84
+ - **Reach for this when:** "make all notes same length", "staccato", "gate", "sustain", "trigger on release", "latch".
85
+ - **Pairs well with:** Arpeggiator (control arp note lengths), Velocity (shape attack/release feel).
86
+ - **vs Gate in Arpeggiator:** Note Length is standalone and works on any MIDI; Arpeggiator Gate only affects arpeggiated notes.
87
+
88
+ ---
89
+
90
+ ### Pitch
91
+ - **Type:** Native
92
+ - **Load via:** `find_and_load_device("Pitch")`
93
+ - **What it does:** Transposes all incoming MIDI notes by a fixed interval. Simplest pitch-shifting tool.
94
+ - **Key parameters:**
95
+ - **Pitch** — +/-128 semitones (or +/-30 scale degrees with Use Current Scale). +12 = octave up, +7 = fifth up.
96
+ - **Step Up/Down** — Buttons for incremental transposition by Step Width amount.
97
+ - **Step Width** — 1-48 semitones per step. Set to 12 for octave stepping.
98
+ - **Lowest** — Bottom note boundary for range filtering.
99
+ - **Range** — Span of notes affected (from Lowest). Notes outside range: Block (mute), Fold (wrap), or Limit (clamp).
100
+ - **Use cases:** Octave layering, quick key changes, range-limited transposition for creative remapping.
101
+ - **Reach for this when:** "transpose", "octave up/down", "shift pitch", "change key".
102
+ - **Pairs well with:** Scale (correct after transposition), Chord (stack with transposed layers).
103
+ - **vs Scale:** Pitch shifts everything uniformly; Scale remaps out-of-key notes to fit.
104
+
105
+ ---
106
+
107
+ ### Random
108
+ - **Type:** Native
109
+ - **Load via:** `find_and_load_device("Random")`
110
+ - **What it does:** Randomly alters pitch of incoming MIDI notes within a defined range and probability.
111
+ - **Key parameters:**
112
+ - **Chance** — 0-100% probability of randomization. 0% = pass-through, 100% = every note randomized. Sweet spot: 30-60% for subtle variation.
113
+ - **Choices** — 1-24 possible random pitch outcomes.
114
+ - **Interval** — Pitch spacing between choices (in semitones or scale degrees).
115
+ - **Mode** — Random (true random) or Alt (round-robin cycling through choices).
116
+ - **Sign** — Add (higher only), Sub (lower only), Bi (both directions).
117
+ - **Use Current Scale** — Constrains random choices to scale degrees.
118
+ - **Use cases:** Generative melodies, adding human imperfection, probability-based variations, aleatoric composition.
119
+ - **Reach for this when:** "randomize", "add randomness", "generative melody", "unpredictable", "chance-based".
120
+ - **Pairs well with:** Scale (constrain randomness to key), Velocity (randomize dynamics too), Arpeggiator.
121
+ - **vs DEVIATE:** Random is single-parameter (pitch only); DEVIATE transforms entire MIDI clips across all note attributes.
122
+
123
+ ---
124
+
125
+ ### Scale
126
+ - **Type:** Native
127
+ - **Load via:** `find_and_load_device("Scale")`
128
+ - **What it does:** Forces all incoming MIDI notes into a specific musical scale by remapping out-of-scale notes to the nearest in-scale pitch.
129
+ - **Key parameters:**
130
+ - **Base** — Root note of the scale (C through B).
131
+ - **Scale Name** — Predefined scales (Major, Minor, Dorian, Mixolydian, Pentatonic, etc.) or User-defined.
132
+ - **Note Matrix** — 13x13 grid for custom pitch remapping. Each input pitch maps to a specific output pitch.
133
+ - **Transpose** — +/-36 semitones global shift.
134
+ - **Lowest / Range** — Limit which octaves are affected.
135
+ - **Fold** — Auto-fold notes exceeding 6-semitone remapping distance.
136
+ - **Use cases:** Force any MIDI to a key, jam without wrong notes, quantize generative output, modal exploration.
137
+ - **Reach for this when:** "force to scale", "keep in key", "scale lock", "no wrong notes", "constrain to scale".
138
+ - **Pairs well with:** Random (constrain random output), Arpeggiator, Chord, any generative M4L device.
139
+ - **vs Scale-O-Mat (Soundmanufacture):** Native Scale works per-track; Scale-O-Mat controls ALL Scale devices project-wide from one interface with 128 presets.
140
+
141
+ ---
142
+
143
+ ### Velocity
144
+ - **Type:** Native
145
+ - **Load via:** `find_and_load_device("Velocity")`
146
+ - **What it does:** Reshapes MIDI velocity values through curve manipulation, compression, expansion, randomization, and range limiting.
147
+ - **Key parameters:**
148
+ - **Operation** — Process Note On, Note Off, or both.
149
+ - **Mode** — Clip (clamp to range), Gate (block notes outside range), Fixed (all notes same velocity).
150
+ - **Lowest / Range** — Input velocity range (X-axis).
151
+ - **Out Low / Out Hi** — Output velocity range (Y-axis).
152
+ - **Drive** — Push velocities toward extremes. Positive = louder, negative = softer. Sweet spot: +20 for punchier drums.
153
+ - **Compand** — Above 0 = expand (more dynamic range), below 0 = compress. Sweet spot: -30 for more consistent dynamics.
154
+ - **Random** — Add random velocity variation. 10-20 for humanization, 40+ for dramatic variation.
155
+ - **Use cases:** Normalize velocity, add dynamics, humanize quantized parts, velocity gating, consistent drum hits.
156
+ - **Reach for this when:** "velocity", "dynamics", "humanize", "make louder/softer", "even out velocity", "random dynamics".
157
+ - **Pairs well with:** Note Length (combined velocity + duration shaping), Arpeggiator (shape arp dynamics).
158
+ - **vs Feel (Meyer):** Velocity shapes dynamics globally; Feel adjusts microtiming for groove.
159
+
160
+ ---
161
+
162
+ ### CC Control
163
+ - **Type:** Native (Live 12+)
164
+ - **Load via:** `find_and_load_device("CC Control")`
165
+ - **What it does:** Sends and automates MIDI CC messages to hardware synths, software instruments, or other MIDI devices. A dedicated CC automation surface.
166
+ - **Key parameters:**
167
+ - **Mod Wheel** — CC 1 control.
168
+ - **Pitch Bend** — Pitch bend range.
169
+ - **Pressure** — Channel aftertouch/pressure.
170
+ - **Custom A** — On/off button (default CC 64 sustain, reassignable).
171
+ - **Custom B-M** — 12 knobs, each assignable to any CC number via dropdown.
172
+ - **Controls 1-8 / 9-16** — Title bar toggle to show two banks of controls.
173
+ - **Learn** — Map incoming CC from hardware controller.
174
+ - **Send** — Transmit all current CC values at once (useful for initializing hardware state).
175
+ - **Use cases:** Hardware synth parameter control, CC automation lanes, initializing external gear, filter sweeps on hardware.
176
+ - **Reach for this when:** "send CC", "control hardware", "MIDI CC automation", "external synth", "mod wheel".
177
+ - **Pairs well with:** External Instrument (route audio back), any hardware synth or external MIDI device.
178
+ - **vs Expression Control:** CC Control sends CC messages; Expression Control maps incoming MIDI expressions to Live parameters.
179
+
180
+ ---
181
+
182
+ ### Expression Control
183
+ - **Type:** Native (Live 12+)
184
+ - **Load via:** `find_and_load_device("Expression Control")`
185
+ - **What it does:** Maps incoming MIDI expression data (velocity, mod wheel, pitch bend, aftertouch, keytrack) to any parameter in your Live set with custom transformation curves.
186
+ - **Key parameters:**
187
+ - **Input Sources** — Velocity, Modwheel, Pitchbend, Pressure (aftertouch), Keytrack, Expression, Random, Increment, Slide, Sustain.
188
+ - **5 assignment rows** — Each selects an input source and maps to a Live parameter.
189
+ - **Map switch** — Click to assign target parameter.
190
+ - **Min / Max** — Output range scaling per mapping.
191
+ - **Log / Lin** — Logarithmic or linear response curve.
192
+ - **Rise / Fall** — Smoothing for attack and release of the modulation signal.
193
+ - **Use cases:** Velocity-to-filter mapping, mod wheel expression, aftertouch control, pitch-tracking filter, MPE integration.
194
+ - **Reach for this when:** "map velocity to", "expression", "mod wheel controls", "aftertouch mapping", "MPE".
195
+ - **Pairs well with:** Any instrument or effect with automatable parameters, MPE controllers (Seaboard, Linnstrument).
196
+ - **Limitation:** Monophonic with last-note priority when controlling effects.
197
+ - **vs Shaper MIDI:** Expression Control maps *incoming* MIDI data; Shaper MIDI generates its *own* modulation envelopes.
198
+
199
+ ---
200
+
201
+ ### Shaper MIDI
202
+ - **Type:** Native (Live 12+)
203
+ - **Load via:** `find_and_load_device("Shaper MIDI")`
204
+ - **What it does:** Generates custom multi-breakpoint modulation envelopes that can be mapped to up to 8 parameters. Triggered by MIDI notes or free-running.
205
+ - **Key parameters:**
206
+ - **Breakpoint display** — Click to add points, Shift-click to delete, Alt/Option-drag for curves.
207
+ - **Map (x8)** — Up to 8 parameter mappings via Multimap button.
208
+ - **Min / Max** — Output range per mapping.
209
+ - **Offset** — Takes over mapped parameter's current value as modulation center.
210
+ - **Rate** — LFO speed in Hz (free) or beat divisions (synced).
211
+ - **Echo** — Amount of envelope echo/feedback.
212
+ - **Time** — Echo time in ms.
213
+ - **Loop** — Loop envelope while MIDI note held.
214
+ - **Sync** — Lock to tempo.
215
+ - **Use cases:** Custom LFO shapes, rhythmic parameter modulation, MIDI-triggered filter sweeps, sidechain-like pumping via mapping.
216
+ - **Reach for this when:** "custom modulation shape", "draw LFO", "parameter automation", "rhythmic modulation", "envelope follower on MIDI".
217
+ - **Pairs well with:** Any instrument or effect parameter, Arpeggiator (modulate while arpeggiated).
218
+ - **vs Expression Control:** Shaper MIDI *generates* modulation; Expression Control *routes* incoming MIDI data.
219
+
220
+ ---
221
+
222
+ ### Envelope MIDI
223
+ - **Type:** Native (Live 12+)
224
+ - **Load via:** `find_and_load_device("Envelope MIDI")`
225
+ - **What it does:** Generates ADSR-style or custom envelopes triggered by MIDI notes, outputting modulation data to mapped parameters. Velocity-sensitive envelope shaping.
226
+ - **Key parameters:**
227
+ - **Attack / Decay / Sustain / Release** — Standard ADSR envelope controls.
228
+ - **Map** — Assign to any Live parameter.
229
+ - **Min / Max** — Output range scaling.
230
+ - **Velocity Switch** — When enabled, note velocity modulates envelope intensity.
231
+ - **Amount** — Velocity modulation depth.
232
+ - **Loop** — Cycle the envelope.
233
+ - **Use cases:** MIDI-triggered volume swells, filter envelopes independent of synth, velocity-sensitive modulation, pluck-like parameter animation.
234
+ - **Reach for this when:** "envelope", "ADSR modulation", "velocity-sensitive control", "pluck shape", "swell".
235
+ - **Pairs well with:** Any synth/effect parameter, Velocity (pre-shape velocity before envelope).
236
+ - **vs Shaper MIDI:** Envelope MIDI is ADSR-focused with velocity sensitivity; Shaper MIDI is freeform breakpoint drawing.
237
+
238
+ ---
239
+
240
+ ### MIDI Monitor
241
+ - **Type:** Native (M4L, included with Suite)
242
+ - **Load via:** `find_and_load_device("MIDI Monitor")`
243
+ - **What it does:** Displays incoming MIDI data in real time for debugging. Shows notes, velocities, CCs, pitch bend, aftertouch, and MPE data.
244
+ - **Key parameters:**
245
+ - **Note Display** — Keyboard layout showing incoming notes, root note, and chord detection.
246
+ - **Flow Diagram** — Continuous scrolling list of all MIDI events (notes, CC, pitch bend, aftertouch).
247
+ - No effect on MIDI signal — pass-through only.
248
+ - **Use cases:** Debugging MIDI controller connections, verifying CC assignments, checking MIDI routing, confirming MPE data.
249
+ - **Reach for this when:** "debug MIDI", "check what's coming in", "MIDI not working", "verify controller", "monitor".
250
+ - **Pairs well with:** Place anywhere in MIDI chain to inspect signal at that point.
251
+ - **vs External MIDI monitors:** Integrated in Live, no external software needed.
252
+
253
+ ---
254
+
255
+ ## All MIDI Tools Bundle (Meyer Devices)
256
+
257
+ > 12 Live 12 MIDI Tools by Philip Meyer. 6 generators + 6 transformers. Operate on clips via the MIDI Tools framework (not real-time MIDI effects).
258
+
259
+ ---
260
+
261
+ ### Blocks
262
+ - **Type:** M4L User (All MIDI Tools)
263
+ - **Load via:** MIDI Tools panel in clip view
264
+ - **What it does:** Generates rhythms using additive/proportional divisions of the clip length, creating uneven time segments that produce complex rhythmic patterns.
265
+ - **Key parameters:**
266
+ - **Block proportions** — Define relative sizes of rhythmic cells. E.g., 3:2:1 creates three blocks of decreasing length.
267
+ - **Pitch / Velocity** — Assignable per block.
268
+ - **Fill mode** — How notes populate each block.
269
+ - **Use cases:** Polymetric percussion, West African/Carnatic-inspired additive rhythms, irregular time signatures.
270
+ - **Reach for this when:** "additive rhythm", "uneven divisions", "proportional beat", "complex time".
271
+ - **Pairs well with:** Feel (add groove to generated blocks), Polyrhythm (layer on top).
272
+ - **vs Polyrhythm:** Blocks creates *one* pattern from proportions; Polyrhythm layers *multiple independent* patterns.
273
+
274
+ ---
275
+
276
+ ### Condition Transform
277
+ - **Type:** M4L User (All MIDI Tools)
278
+ - **Load via:** MIDI Tools panel in clip view
279
+ - **What it does:** Selectively transforms notes that match specific conditions (pitch range, velocity range, duration, probability). Non-matching notes are left untouched.
280
+ - **Key parameters:**
281
+ - **Condition selectors** — Filter by pitch, velocity, duration, position, probability.
282
+ - **Transform actions** — Ratchet, subdivide, delete, transpose, velocity shift.
283
+ - **Probability** — Per-condition chance of transformation firing.
284
+ - **Use cases:** Add ratchets only to hi-hats, transpose only low-velocity notes, probabilistic ghost notes.
285
+ - **Reach for this when:** "transform only some notes", "conditional edit", "selective ratchet", "probability per note".
286
+ - **Pairs well with:** Segment (duration-based selection), Pattern Transform (broader variation).
287
+ - **vs Pattern Transform:** Condition Transform targets *specific notes* by attribute; Pattern Transform creates *global variations*.
288
+
289
+ ---
290
+
291
+ ### Develop
292
+ - **Type:** M4L User (All MIDI Tools)
293
+ - **Load via:** MIDI Tools panel in clip view
294
+ - **What it does:** Gradually increases or decreases pattern complexity over successive loop iterations. Notes appear or disappear each cycle.
295
+ - **Key parameters:**
296
+ - **Direction** — Build up (add notes) or break down (remove notes).
297
+ - **Rate** — How many notes change per loop.
298
+ - **Order** — Which notes appear/disappear first (random, low-to-high, etc.).
299
+ - **Use cases:** Arrangement builds, gradual breakdowns, evolving loops, tension/release over time.
300
+ - **Reach for this when:** "build up gradually", "evolve pattern", "add notes over time", "strip down".
301
+ - **Pairs well with:** Any generator (Polyrhythm, Turing Machine) to evolve their output.
302
+ - **vs DEVIATE (Novel Music):** Develop is deterministic build/strip; DEVIATE is stochastic variation.
303
+
304
+ ---
305
+
306
+ ### Divs
307
+ - **Type:** M4L User (All MIDI Tools)
308
+ - **Load via:** MIDI Tools panel in clip view
309
+ - **What it does:** Subdivides existing notes into ratchets, tuplets, and nested rhythmic patterns. Takes a note and splits it into faster subdivisions.
310
+ - **Key parameters:**
311
+ - **Division** — 2, 3, 4, 5, 6, etc. (tuplets, triplets, quintuplets).
312
+ - **Nesting** — Apply subdivisions within subdivisions.
313
+ - **Velocity curve** — Shape dynamics across subdivisions (accent first, decay, random).
314
+ - **Use cases:** Drum ratchets, glitchy subdivisions, EDM fills, rhythmic ornamentation, tuplet generation.
315
+ - **Reach for this when:** "ratchet", "subdivide", "tuplets", "make notes faster", "fill", "rolls".
316
+ - **Pairs well with:** Condition Transform (subdivide only certain notes), Feel (groove the result).
317
+ - **vs Note Length:** Divs *creates new notes* by subdivision; Note Length *changes duration* of existing notes.
318
+
319
+ ---
320
+
321
+ ### Draw
322
+ - **Type:** M4L User (All MIDI Tools)
323
+ - **Load via:** MIDI Tools panel in clip view
324
+ - **What it does:** Fast mouse-based editor for painting pitch, velocity, and chance values across notes in a clip.
325
+ - **Key parameters:**
326
+ - **Mode** — Pitch, Velocity, or Chance drawing.
327
+ - **Brush** — Paint values by dragging across notes.
328
+ - **Snap** — Quantize drawn values to grid or scale.
329
+ - **Use cases:** Quick velocity curves, pitch melody drawing, probability painting, rapid prototyping.
330
+ - **Reach for this when:** "draw velocity curve", "paint pitches", "quick edit", "mouse-draw melody".
331
+ - **Pairs well with:** Any generator (edit output), Scale (constrain drawn pitches).
332
+
333
+ ---
334
+
335
+ ### Feel
336
+ - **Type:** M4L User (All MIDI Tools)
337
+ - **Load via:** MIDI Tools panel in clip view
338
+ - **What it does:** Applies swing and microtiming adjustments. Basic mode is a simple swing knob; Advanced mode offers per-step timing offsets.
339
+ - **Key parameters:**
340
+ - **Basic mode** — Swing amount (0-100%). 55-65% for subtle groove.
341
+ - **Advanced mode** — Per-step timing offsets with visual grid.
342
+ - **Template** — MPC, TR-808, custom feel presets.
343
+ - **Use cases:** Add groove to quantized parts, MPC swing, humanization, J Dilla-style timing.
344
+ - **Reach for this when:** "swing", "groove", "humanize timing", "feel", "MPC groove", "make it less robotic".
345
+ - **Pairs well with:** Any generated/quantized pattern, Velocity (combine timing + dynamics humanization).
346
+ - **vs Native Groove Pool:** Feel operates as a MIDI Tool on clip data; Groove Pool applies globally with less granularity.
347
+
348
+ ---
349
+
350
+ ### Pattern Transform
351
+ - **Type:** M4L User (All MIDI Tools)
352
+ - **Load via:** MIDI Tools panel in clip view
353
+ - **What it does:** Multi-function clip variation tool. Adjusts density, adds/removes notes, creates melodic variations while respecting harmonic constraints.
354
+ - **Key parameters:**
355
+ - **Density** — Increase or decrease note count.
356
+ - **Variation** — Amount of melodic/rhythmic deviation.
357
+ - **Pitch constraint** — Lock to scale for harmonic safety.
358
+ - **Seed** — Deterministic randomization (same seed = same result).
359
+ - **Use cases:** Generate B-sections from A-sections, create fills, instant variations for arrangement.
360
+ - **Reach for this when:** "create variation", "make it different but similar", "new version of this pattern".
361
+ - **Pairs well with:** Condition Transform (targeted), Develop (over time), any MIDI clip.
362
+ - **vs Condition Transform:** Pattern Transform modifies the *whole pattern*; Condition Transform targets *specific notes*.
363
+
364
+ ---
365
+
366
+ ### Phase Pattern
367
+ - **Type:** M4L User (All MIDI Tools)
368
+ - **Load via:** MIDI Tools panel in clip view
369
+ - **What it does:** Creates accelerating/decelerating rhythmic patterns (bouncing ball, phase shifting) by warping note timing.
370
+ - **Key parameters:**
371
+ - **Phase amount** — Degree of time-warping.
372
+ - **Direction** — Accelerating or decelerating.
373
+ - **Shape** — Linear, exponential, bouncing ball.
374
+ - **Use cases:** Bouncing ball fills, Steve Reich-style phasing, drum fills with acceleration, riser effects.
375
+ - **Reach for this when:** "bouncing ball", "accelerating rhythm", "phase shift", "Steve Reich".
376
+ - **Pairs well with:** Divs (subdivide then phase), any percussion part.
377
+ - **vs G_Delay (LDM):** Phase Pattern warps *clip timing*; G_Delay creates *real-time* bouncing ball echoes.
378
+
379
+ ---
380
+
381
+ ### Polyrhythm
382
+ - **Type:** M4L User (All MIDI Tools)
383
+ - **Load via:** MIDI Tools panel in clip view
384
+ - **What it does:** Multi-track algorithmic sequencer where each pattern has independent length, creating polyrhythmic relationships.
385
+ - **Key parameters:**
386
+ - **Tracks** — Multiple independent sequences.
387
+ - **Steps per track** — Independent length (up to 64).
388
+ - **Algorithm** — Euclidean (evenly distributed) or Omni (any pattern up to 16 steps).
389
+ - **Pitch / Velocity** — Per-step control.
390
+ - **Rotation** — Shift pattern start point.
391
+ - **Use cases:** Polymetric drum patterns, evolving loops that don't repeat quickly, Euclidean beats, West African cross-rhythms.
392
+ - **Reach for this when:** "polyrhythm", "euclidean", "different lengths", "cross-rhythm", "evolving beat".
393
+ - **Pairs well with:** Feel (groove the output), Develop (build up complexity), drum racks.
394
+ - **vs Euclidean Sequencer Pro (Alkman):** Polyrhythm is a MIDI Tool (clip-based); Alkman's is a real-time M4L device with live voice routing.
395
+
396
+ ---
397
+
398
+ ### Segment
399
+ - **Type:** M4L User (All MIDI Tools)
400
+ - **Load via:** MIDI Tools panel in clip view
401
+ - **What it does:** Combines Divs and Condition Transform — selects notes by duration then applies subdivision and transformation.
402
+ - **Key parameters:**
403
+ - **Duration filter** — Select notes by length (short, medium, long).
404
+ - **Subdivision** — Divide selected notes.
405
+ - **Transform** — Apply velocity/pitch changes to segments.
406
+ - **Use cases:** Target long notes for subdivision, process short notes differently, duration-aware clip editing.
407
+ - **Reach for this when:** "edit notes by length", "subdivide only long notes", "duration-based transform".
408
+ - **Pairs well with:** Condition Transform (combine criteria), Divs (pure subdivision).
409
+
410
+ ---
411
+
412
+ ### Shift
413
+ - **Type:** M4L User (All MIDI Tools)
414
+ - **Load via:** MIDI Tools panel in clip view
415
+ - **What it does:** Rotates note attributes independently — shift pitch sequence without moving rhythm, or rotate rhythm without changing pitches.
416
+ - **Key parameters:**
417
+ - **Attribute** — Pitch, Velocity, Duration, Position, Chance.
418
+ - **Offset** — Number of steps to rotate.
419
+ - **Direction** — Forward or backward.
420
+ - **Use cases:** Create variations by pitch rotation, rhythmic remix by position shift, polymetric offset effects.
421
+ - **Reach for this when:** "rotate pitch", "shift rhythm", "offset melody", "remix clip attributes".
422
+ - **Pairs well with:** Any generated pattern, Pattern Transform (broader variation).
423
+ - **vs Phase Pattern:** Shift rotates *discretely by steps*; Phase Pattern warps *continuous timing*.
424
+
425
+ ---
426
+
427
+ ### Turing Machine
428
+ - **Type:** M4L User (All MIDI Tools)
429
+ - **Load via:** MIDI Tools panel in clip view
430
+ - **What it does:** Emulates the Music Thing Modular Turing Machine — uses a 16-bit shift register with controllable randomness to generate evolving pitch and rhythm sequences.
431
+ - **Key parameters:**
432
+ - **Big Knob** — Controls randomness amount. Center = fully random. Left/right = decreasing randomness (locked pattern).
433
+ - **Length** — Shift register length (sequence loop length).
434
+ - **Pulse count** — Number of active steps.
435
+ - **Scale** — Pitch output quantization.
436
+ - **Voltage range** — Output pitch range.
437
+ - **Use cases:** Generative melodies, evolving sequences that slowly mutate, semi-random bass lines, ambient note generation.
438
+ - **Reach for this when:** "turing machine", "generative sequence", "evolving melody", "shift register", "controlled randomness".
439
+ - **Pairs well with:** Scale (constrain output), Feel (humanize timing), any melodic instrument.
440
+ - **vs Random (Native):** Turing Machine has *memory* (shift register) so patterns evolve; Random is *stateless*.
441
+
442
+ ---
443
+
444
+ ## J74 Suite (M4L_J74)
445
+
446
+ ---
447
+
448
+ ### ARPlines J74
449
+ - **Type:** M4L User (M4L_J74)
450
+ - **Load via:** Load `.amxd` from `M4L_J74/` folder
451
+ - **What it does:** Four independent arpeggiator lines, each with its own step count, direction, speed, and probability, enabling complex polymetric/polyrhythmic arpeggios.
452
+ - **Key parameters:**
453
+ - **4 Lines** — Each with: step number (up to 32), step offset, playback direction, speed, time signature, trigger probability, pattern shift.
454
+ - **Pattern Memory** — 10 slots per line; up to 15,000 combinations through mixing.
455
+ - **Groove** — Timing and velocity adjustment with 12 swing modes including MPC-style.
456
+ - **Random** — Per-line and global pattern randomization.
457
+ - **Presets** — Custom saving/recall, device snapshots.
458
+ - **Use cases:** Polymetric arpeggios, generative melodic patterns, complex rhythmic interplay, live performance arp morphing.
459
+ - **Reach for this when:** "polyrhythmic arp", "four-line arpeggio", "complex arp pattern", "independent arp speeds".
460
+ - **Pairs well with:** Scale (constrain), J74 Progressive (provide chord input), any polyphonic synth.
461
+ - **vs Native Arpeggiator:** ARPlines has 4 independent polyphonic lines; native Arpeggiator is single-line.
462
+
463
+ ---
464
+
465
+ ### J74 Progressive
466
+ - **Type:** M4L User (M4L_J74)
467
+ - **Load via:** Load `.amxd` from `M4L_J74/` folder (multiple components)
468
+ - **What it does:** Suite of tools for chord progression creation, harmonic analysis, and MIDI clip processing. Includes: Chord Progression Editor, MIDI Clip Modifier, MIDI Clip Analyser, Audio Analyser.
469
+ - **Key parameters:**
470
+ - **Progression Editor** — Any key/octave/scale (40+ presets), Circle of Fifths visualization, chord shape selection (triads through 13ths), automatic inversions, MIDI-mappable Chord Explorer.
471
+ - **MIDI Clip Modifier** — Scale-based transposition, humanization (dynamics, groove, swing).
472
+ - **MIDI Clip Analyser** — Scale and chord detection from MIDI clips.
473
+ - **Audio Analyser** — Real-time note/chord/scale detection from audio input.
474
+ - **Performance modes** — Hold chords, arpeggio styles, humanized timing.
475
+ - **Use cases:** Songwriting chord progressions, harmonic analysis of audio, transposing clips to new keys, reverse-engineering chord progressions from recordings.
476
+ - **Reach for this when:** "chord progression", "what chords are in this", "detect scale from audio", "harmonize", "circle of fifths".
477
+ - **Pairs well with:** ARPlines (arpeggiate generated chords), Scale (enforce detected scale).
478
+ - **vs Chord-O-Mat 3:** Progressive has audio analysis + clip modification; Chord-O-Mat is focused on real-time chord triggering.
479
+
480
+ ---
481
+
482
+ ### J74 PatDrummer
483
+ - **Type:** M4L User (M4L_J74)
484
+ - **Load via:** Load `.amxd` from `M4L_J74/` folder
485
+ - **What it does:** MIDI drum machine with 16 steps and 10 parallel drum sequences. Pattern-based beat programming with massive preset library.
486
+ - **Key parameters:**
487
+ - **10 parallel sequences** — Independent drum lanes.
488
+ - **16 steps** per sequence.
489
+ - **Pattern memory** — 12 Kick patterns, 12 Snare patterns, 24 Hats patterns, 12 Percussion patterns = 41,472 unique combinations.
490
+ - **Polyrhythmic sequencing** — Independent lengths per lane.
491
+ - **Random patterns** — Generate random rhythms per lane.
492
+ - **Export** — Direct MIDI clip export to Session View.
493
+ - **Use cases:** Rapid beat prototyping, pattern-mixing drum machine, polyrhythmic percussion, random beat generation.
494
+ - **Reach for this when:** "drum pattern", "beat machine", "generate drums", "mix-and-match drum patterns".
495
+ - **Pairs well with:** Drum Racks, Feel (groove output), any percussion kit.
496
+ - **vs Polyrhythm (Meyer):** PatDrummer has curated preset patterns to mix; Polyrhythm generates algorithmically.
497
+
498
+ ---
499
+
500
+ ### J74 StepSequencer64
501
+ - **Type:** M4L User (M4L_J74)
502
+ - **Load via:** Load `.amxd` from `M4L_J74/` folder
503
+ - **What it does:** 64-step analog-style step sequencer with 8 layers, per-step parameter control, and step-envelope modulation.
504
+ - **Key parameters:**
505
+ - **64 steps** with ON/OFF activators.
506
+ - **8 layers** — Monophonic alternative sequences or polyphonic parallel lines.
507
+ - **Per-step control** — Pitch, velocity, duration, two step-envelopes for parameter modulation.
508
+ - **Playback directions** — Forward, backward, random, up-and-down.
509
+ - **Loop start/end** — Adjustable per layer.
510
+ - **In-Key mode** — Automatic scale quantization with random generation.
511
+ - **Swing** — 12 modes including MPC-like swing.
512
+ - **Use cases:** Analog-style sequencing, Berlin school sequences, generative patterns, per-step parameter modulation.
513
+ - **Reach for this when:** "step sequencer", "64 steps", "analog sequencer", "per-step modulation".
514
+ - **Pairs well with:** Any mono synth, J74 Progressive (harmonic context), Scale.
515
+ - **vs Modular Sequencer (Soundmanufacture):** StepSequencer64 is linear with deep per-step control; Modular Sequencer is fully patchable with cross-modulation.
516
+
517
+ ---
518
+
519
+ ### J74 SliceShuffler
520
+ - **Type:** M4L User (M4L_J74)
521
+ - **Load via:** Load `.amxd` from `M4L_J74/` folder
522
+ - **What it does:** Real-time audio slice sequencer. Buffers incoming audio and allows free re-sequencing of slices with probability lanes.
523
+ - **Key parameters:**
524
+ - **Buffer** — Up to 32 beats (2 bars) of audio.
525
+ - **32 steps** for slice re-sequencing.
526
+ - **Probability lanes** — Add variation per step.
527
+ - **Snapshots** — Store and recall slice arrangements.
528
+ - **Real-time** — Hitless, instantaneous changes for live performance.
529
+ - **Use cases:** Live beat chopping, glitch performance, audio remix, drum break rearrangement.
530
+ - **Reach for this when:** "chop audio", "rearrange slices", "beat shuffle", "live audio remix".
531
+ - **Pairs well with:** Drum breaks, rhythmic audio material.
532
+ - **Note:** This is an *audio effect*, not a MIDI effect. Included here as part of J74 Suite.
533
+
534
+ ---
535
+
536
+ ## CLX_03 MIDI Collection
537
+
538
+ ### LDM Design Devices
539
+
540
+ ---
541
+
542
+ ### Afterburner
543
+ - **Type:** M4L User (CLX_03)
544
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
545
+ - **What it does:** Reverse-trigger MIDI effect — notes are triggered by Note OFF instead of Note ON. Hold duration charges velocity.
546
+ - **Key parameters:**
547
+ - **Velocity charging** — Longer hold = higher velocity on release-triggered note.
548
+ - **Parameter mapping** — Map charged velocity to any Live parameter.
549
+ - **Use cases:** Unconventional sequencing, velocity-through-duration control, performance technique, reverse feel.
550
+ - **Reach for this when:** "trigger on note off", "reverse trigger", "hold-to-charge velocity".
551
+ - **Pairs well with:** Note Length (control input durations), any expressive instrument.
552
+
553
+ ---
554
+
555
+ ### AutoSputter
556
+ - **Type:** M4L User (CLX_03)
557
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
558
+ - **What it does:** 4-button stutter/glitch looper. Each button captures and loops audio at a different note length, with reverse, half-speed, and double-speed options.
559
+ - **Key parameters:**
560
+ - **4 stutter buttons** — Each assignable to a different note division.
561
+ - **Reverse** — Play stutter backward.
562
+ - **Half / Double speed** — Time-stretch stutter.
563
+ - **Use cases:** Live glitch performance, stutter fills, beat repeat alternatives, DJ-style effects.
564
+ - **Reach for this when:** "stutter", "glitch", "loop a moment", "beat repeat".
565
+ - **Note:** Audio effect, not MIDI. Included as part of CLX_03.
566
+
567
+ ---
568
+
569
+ ### Drumfoldr
570
+ - **Type:** M4L User (CLX_03)
571
+ - **Load via:** Load `.amxd` in a Drum Rack cell
572
+ - **What it does:** Overcomes Sampler's 128-sample chain limit. Point at a folder of drum samples and browse/select any hit from the folder.
573
+ - **Key parameters:**
574
+ - **Folder path** — Select source folder.
575
+ - **Sample browser** — Scroll through all hits in folder.
576
+ - **Auto-update** — Detects new files added to folder.
577
+ - **Use cases:** Large drum libraries, sample auditioning, rapid sound design iteration.
578
+ - **Reach for this when:** "browse drum folder", "lots of samples", "sample browser in rack".
579
+
580
+ ---
581
+
582
+ ### G_Delay / G_Ripplecoil / G_Rippler (Gravity Pack)
583
+ - **Type:** M4L User (CLX_03)
584
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
585
+ - **What they do:** Polyphonic MIDI delay devices simulating bouncing ball physics.
586
+ - **G_Delay** — Multi-tap delay (up to 24 taps) with gravitational deceleration. Notes bounce closer together like a ball losing energy.
587
+ - **G_Rippler** — Inverse gravity. Notes expand outward, accelerating apart.
588
+ - **G_Ripplecoil** — Combines both: expand then contract in one cycle (Rippler then G_Delay in sequence).
589
+ - **Key parameters:**
590
+ - **Time** — Base delay time.
591
+ - **Taps** — Number of echoes (up to 24).
592
+ - **Gravity** — Physics simulation strength.
593
+ - **Pitch** — Transposition per tap.
594
+ - **Velocity decay** — Echo fadeout.
595
+ - **Use cases:** Bouncing ball fills, organic MIDI delays, cinematic tension builds, natural-feeling echo patterns.
596
+ - **Reach for this when:** "bouncing ball", "gravity delay", "accelerating/decelerating echoes", "physics-based delay".
597
+ - **Pairs well with:** Pitched instruments (melodic bouncing), drums (fills), Scale (constrain pitched echoes).
598
+ - **vs Note Echo (Native):** Gravity devices use *physics-based timing*; Note Echo uses *constant timing*.
599
+
600
+ ---
601
+
602
+ ### MIDIHack (Pro)
603
+ - **Type:** M4L User (CLX_03)
604
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
605
+ - **What it does:** Probability-driven MIDI processor. Each incoming note passes through randomized filters for pitch, octave, repetition, arpeggio generation, with controllable probability per effect.
606
+ - **Key parameters:**
607
+ - **Probability sliders** — Per-effect chance of activation.
608
+ - **Note repeater** — 10 speed options with velocity ramping and per-speed probability.
609
+ - **Delay** — Adjustable note delay.
610
+ - **Velocity randomization** — Random dynamics.
611
+ - **Swing** — Timing humanization.
612
+ - **Two sequencers** — One bypasses filters; another routes to up to 3 Return Tracks.
613
+ - **Scale/Mode filtering** — Constrain output to scales.
614
+ - **Block section** — Gate notes in/out.
615
+ - **Use cases:** Semi-generative MIDI processing, probability-based variations, chance-based arpeggiation, live improvisation aid.
616
+ - **Reach for this when:** "probability MIDI", "random chance effects", "semi-generative processor".
617
+ - **Pairs well with:** Any melodic instrument, Scale (double-constrain output).
618
+ - **vs Random (Native):** MIDIHack affects *multiple* note attributes with independent probabilities; Random only affects pitch.
619
+
620
+ ---
621
+
622
+ ### mLPr
623
+ - **Type:** M4L User (CLX_03)
624
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
625
+ - **What it does:** Live looping performance tool based on the MLR monome patch. Record and manipulate audio loops in real time.
626
+ - **Use cases:** Live looping, performance sampling, monome-style grid performance without hardware.
627
+ - **Note:** Audio looper, not MIDI effect. Included as part of CLX_03.
628
+
629
+ ---
630
+
631
+ ### zsteinkamp Devices
632
+
633
+ ---
634
+
635
+ ### ChordRipper
636
+ - **Type:** M4L User (CLX_03)
637
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
638
+ - **What it does:** Decomposes chords across multiple tracks. Each instance receives one voice from any chord played into any instance in the same group.
639
+ - **Key parameters:**
640
+ - **Voice** — Which note in the chord this instance receives (1st, 2nd, 3rd, etc.).
641
+ - **Group** — Independent chord groups for multiple simultaneous decompositions.
642
+ - **Broadcasting** — Any instance can receive the chord; all instances in group get their assigned voice.
643
+ - **Use cases:** Send chord root to bass track, third to pad, fifth to lead. Decompose piano chords across an ensemble.
644
+ - **Reach for this when:** "split chord across tracks", "decompose chord", "voice separation", "orchestrate a chord".
645
+ - **Pairs well with:** Any chord-generating device, J74 Progressive, Chord-O-Mat 3.
646
+
647
+ ---
648
+
649
+ ### FibonacciNoteEcho
650
+ - **Type:** M4L User (CLX_03)
651
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
652
+ - **What it does:** MIDI note echo where delay times follow the Fibonacci sequence (1, 1, 2, 3, 5, 8, 13...). Creates naturally accelerating/decelerating patterns.
653
+ - **Key parameters:**
654
+ - **Time Base** — Base delay unit that Fibonacci numbers multiply.
655
+ - **Repeats** — Number of echoes.
656
+ - **Pitch shift** — Transposition per echo.
657
+ - **Velocity decay** — Fadeout per echo.
658
+ - **Use cases:** Organic-feeling echoes, golden ratio rhythms, ambient cascades, nature-inspired patterns.
659
+ - **Reach for this when:** "fibonacci", "golden ratio rhythm", "organic echo", "natural delay pattern".
660
+ - **Pairs well with:** Scale (constrain pitch shifts), ambient instruments.
661
+ - **vs Note Echo (Native):** Fibonacci creates *mathematically organic* spacing; Native Note Echo is *uniform*.
662
+
663
+ ---
664
+
665
+ ### FractalNoteEcho
666
+ - **Type:** M4L User (CLX_03)
667
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
668
+ - **What it does:** Triggers notes in fractal patterns with configurable base shape, iterations, and scaling. Each echo triggers further sub-echoes.
669
+ - **Key parameters:**
670
+ - **Base shape** — Define the initial timing pattern between echo taps.
671
+ - **Iterations** — Fractal depth (each echo spawns sub-echoes).
672
+ - **Scale** — Size reduction per iteration.
673
+ - **Pitch / Velocity** — Per-iteration transposition and decay.
674
+ - **Use cases:** Self-similar rhythmic textures, complex cascading patterns, ambient generative textures, fractal-inspired composition.
675
+ - **Reach for this when:** "fractal", "self-similar echo", "cascading pattern", "recursive delay".
676
+ - **Pairs well with:** Scale (keep fractal output in key), ambient/textural instruments.
677
+ - **vs FibonacciNoteEcho:** Fractal creates *recursive branching* patterns; Fibonacci follows a *single sequence*.
678
+
679
+ ---
680
+
681
+ ### Modulation Delay / Lerp / Math / Stepper
682
+ - **Type:** M4L User (CLX_03)
683
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
684
+ - **What they do:** Modulation signal processing utilities.
685
+ - **Modulation Delay** — Feedback echo for modulation data. Turns pulses into evolving modulation waves.
686
+ - **Modulation Lerp** — Constrains modulation between adjustable high/low boundaries.
687
+ - **Modulation Math** — Combines two modulation signals (Min, Avg, Max operators) with mappable output.
688
+ - **Modulation Stepper** — Converts continuous modulation into stair-stepped output at chosen frequency.
689
+ - **Use cases:** Complex modulation routing, S&H effects (Stepper), modulation mixing (Math), smoothing (Lerp), echo effects on automation (Delay).
690
+ - **Reach for this when:** "process modulation", "step modulation", "combine LFOs", "modulation delay".
691
+ - **Pairs well with:** Shaper MIDI, Expression Control, any modulation source.
692
+
693
+ ---
694
+
695
+ ### Other CLX_03 Devices
696
+
697
+ ---
698
+
699
+ ### CHORDimist
700
+ - **Type:** M4L User (CLX_03)
701
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
702
+ - **What it does:** Advanced chord generator and arpeggiator. Design custom chords, fire off harmonies, sustain them, or arpeggiate them with extensive direction and variation controls.
703
+ - **Key parameters:**
704
+ - **Chord design** — Build custom chord shapes.
705
+ - **Modes** — Fire (instant), Sustain (hold), Arpeggiate (cycle).
706
+ - **Arpeggio direction** — Up, down, random, various patterns.
707
+ - **Variation controls** — Modify chord voicings and patterns over time.
708
+ - **Use cases:** One-finger chord performance, advanced arpeggio design, harmonic exploration, live chord improvisation.
709
+ - **Reach for this when:** "design chords", "custom arpeggio", "chord generator", "one-finger chords".
710
+ - **Pairs well with:** Scale (constrain), any polyphonic instrument.
711
+ - **vs Chord (Native):** CHORDimist has modes (fire/sustain/arp) and variation; Native Chord is simpler fixed-interval stacking.
712
+
713
+ ---
714
+
715
+ ### ChordsInKey
716
+ - **Type:** M4L User (CLX_03)
717
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
718
+ - **What it does:** Converts single notes into appropriate diatonic chords within a selected key. Play one note, get the correct chord for that scale degree.
719
+ - **Key parameters:**
720
+ - **Scale modes** — All 7 modes (Ionian through Locrian).
721
+ - **Chord types** — Multiple voicing options.
722
+ - **Inversions** — Automatic voicing spread.
723
+ - **Strumming** — Guitar-like note offset.
724
+ - **Randomization** — Strum pattern variation.
725
+ - **Use cases:** Theory-free chord playing, diatonic harmony from single keys, live harmonic exploration.
726
+ - **Reach for this when:** "chords in key", "diatonic chords from single notes", "one-finger diatonic".
727
+ - **Pairs well with:** Arpeggiator (arpeggiate diatonic chords), any polyphonic instrument.
728
+ - **vs Chord-O-Mat 3:** ChordsInKey is simpler (automatic diatonic mapping); Chord-O-Mat has library + Push integration + slave devices.
729
+
730
+ ---
731
+
732
+ ### Deviate
733
+ - **Type:** M4L User (CLX_03)
734
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
735
+ - **What it does:** Creates endless stochastic variations on MIDI clips or live MIDI input. Uses a 128-step memory buffer for controlled deviation. Part of the SEEDS collection (8 devices).
736
+ - **Key parameters:**
737
+ - **Deviation amount** — How far from the original the variations drift.
738
+ - **Pattern soft lock** — 128-step memory buffer for semi-predictable deviations.
739
+ - **4 parameter mappings** — Map deviation to other Live parameters.
740
+ - **Push 2/3 support** — Full control surface integration.
741
+ - **Use cases:** Humanize MIDI, generate arrangement variations, evolving loops, controlled randomness, organic builds.
742
+ - **Reach for this when:** "create variations", "humanize MIDI", "evolve this clip", "make it organic".
743
+ - **Pairs well with:** Any MIDI clip, Scale (constrain variations).
744
+ - **vs Random (Native):** DEVIATE transforms *entire clip attributes* with memory; Random changes *individual note pitch* statelessly.
745
+
746
+ ---
747
+
748
+ ### MIDI Tenderizer
749
+ - **Type:** M4L User (CLX_03)
750
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
751
+ - **What it does:** MIDI velocity and timing humanization tool. "Tenderizes" rigid MIDI by adding subtle velocity and timing variations.
752
+ - **Key parameters:**
753
+ - **Velocity variation** — Amount of random velocity offset.
754
+ - **Timing variation** — Amount of random timing offset.
755
+ - **Character** — Shape of randomization distribution.
756
+ - **Use cases:** Humanize quantized MIDI, add organic feel, soften rigid sequences.
757
+ - **Reach for this when:** "humanize", "tenderize", "make less mechanical", "add feel".
758
+ - **Pairs well with:** Any quantized MIDI clip, sequenced instruments.
759
+ - **vs Feel (Meyer):** Tenderizer adds *random* timing variation; Feel applies *structured* swing/groove.
760
+
761
+ ---
762
+
763
+ ### Sting 2 (by Iftah)
764
+ - **Type:** M4L User (CLX_03)
765
+ - **Load via:** Load `.amxd` from `CLX_03/` folder
766
+ - **What it does:** Expressive acid line performance system and pattern generator. Generates and morphs between random and classic acid patterns with 16-step sequencing across note, velocity, gate, and octave lanes.
767
+ - **Key parameters:**
768
+ - **Type / Density knobs** — Control pattern character from structured acid to random.
769
+ - **16 steps** — Note, velocity, gate, and octave per step.
770
+ - **Accent / Gate / Slide** — Classic TB-303 sequencer parameters.
771
+ - **Generation algorithm** — Morphs fluidly between pattern types.
772
+ - **Push takeover mode** — Dedicated Push 2/3/Standalone control surface.
773
+ - **Use cases:** Acid lines, TB-303 emulation, generative bass patterns, live acid performance, improvisation.
774
+ - **Reach for this when:** "acid line", "303 pattern", "acid bass", "generate bass sequence", "acid techno".
775
+ - **Pairs well with:** Any 303-style synth (TAL-BassLine, ABL3, Wavetable in acid mode), distortion/filter effects.
776
+ - **vs Arpeggiator:** Sting is specialized for *acid patterns* with accent/slide; Arpeggiator is general-purpose.
777
+
778
+ ---
779
+
780
+ ## Soundmanufacture Devices
781
+
782
+ ---
783
+
784
+ ### Chord-O-Mat 3
785
+ - **Type:** M4L User (Soundmanufacture)
786
+ - **Load via:** Load `.amxd` from Soundmanufacture folder
787
+ - **What it does:** Chord library and trigger device. Maps all diatonic chords of a scale to individual keys for one-finger chord performance. Includes Push integration and slave devices for project-wide harmony control.
788
+ - **Key parameters:**
789
+ - **Scale library** — 40+ scales including all Push 1+2 scales, plus Tobias Hunke collection.
790
+ - **Auto-mapping** — All chords from selected scale mapped to keyboard.
791
+ - **Octave Designer** — Add/remove notes from chord voicings.
792
+ - **Slave Devices** — Control harmony changes across entire Live project.
793
+ - **Push integration** — Direct mapping to Push pads.
794
+ - **Use cases:** Live chord performance, one-finger harmony, project-wide key changes, Push-based composition.
795
+ - **Reach for this when:** "one-finger chords in scale", "chord trigger", "Push chord performance", "project-wide harmony".
796
+ - **Pairs well with:** Scale-O-Mat (project scale control), ChordRipper (decompose triggered chords), ARPlines.
797
+ - **vs Chord (Native):** Chord-O-Mat knows *music theory* (scale-aware chords); Native Chord stacks *fixed intervals*.
798
+
799
+ ---
800
+
801
+ ### InstantScale
802
+ - **Type:** M4L User (Soundmanufacture)
803
+ - **Load via:** Load `.amxd` from Soundmanufacture folder
804
+ - **What it does:** Quick scale correction and display tool. Shows the current scale on a keyboard display and corrects incoming MIDI to fit.
805
+ - **Key parameters:**
806
+ - **Scale selection** — Preset scales and custom.
807
+ - **Correction mode** — Nearest note correction.
808
+ - **Display** — Visual keyboard showing active scale notes.
809
+ - **Use cases:** Quick scale lock, visual scale reference, simple correction without full Scale-O-Mat setup.
810
+ - **Reach for this when:** "quick scale lock", "show me the scale", "simple scale correction".
811
+ - **Pairs well with:** Any MIDI input, Scale-O-Mat (for more complex setups).
812
+ - **vs Scale (Native):** InstantScale provides better *visual feedback*; Native Scale has more *remapping options*.
813
+
814
+ ---
815
+
816
+ ### Modular Sequencer
817
+ - **Type:** M4L User (Soundmanufacture)
818
+ - **Load via:** Load `.amxd` from Soundmanufacture folder
819
+ - **What it does:** Fully patchable modular step sequencer with 8 sequencers, cross-modulation, logical operators, and 4 outputs with scale correction.
820
+ - **Key parameters:**
821
+ - **8 sequencers** — 4 trigger + 4 value sequencers. Sync or independent tempo per sequencer.
822
+ - **Patch chords** — Route any output to any input via visual patching.
823
+ - **4 outputs** — Each with assignable note/velocity/octave/length control and scale correction.
824
+ - **8 modulators** — Signal inversion, probability, trigger-step filtering.
825
+ - **4 logical operators** — Combine two sequence values (AND, OR, XOR, etc.).
826
+ - **Scale correction** — Per-output. Learns scales from incoming MIDI. Integrates with Chord-O-Mat 3 and Scale-O-Mat.
827
+ - **Randomization** — Per-parameter generative capability.
828
+ - **Use cases:** Complex generative sequencing, modular-style patching in software, polyrhythmic generation, experimental composition.
829
+ - **Reach for this when:** "modular sequencer", "patch cables", "cross-modulation sequencer", "generative patching".
830
+ - **Pairs well with:** Chord-O-Mat 3 (harmonic input), Scale-O-Mat (project-wide scale), any instrument.
831
+ - **vs J74 StepSequencer64:** Modular Sequencer is *fully patchable* with cross-modulation; StepSequencer64 is *linear* with deeper per-step control.
832
+
833
+ ---
834
+
835
+ ### Scale-O-Mat 4
836
+ - **Type:** M4L User (Soundmanufacture)
837
+ - **Load via:** Load `.amxd` from Soundmanufacture folder
838
+ - **What it does:** Project-wide scale library controller. One device controls ALL native Scale MIDI effects in your entire Live set. Switch scales globally with one action.
839
+ - **Key parameters:**
840
+ - **40+ scales** — Full library including Push scales and Tobias Hunke collection.
841
+ - **Device detection** — Automatically finds all Scale MIDI effects in project.
842
+ - **Groups** — Assign different scales to different track groups.
843
+ - **Filter / Pitch modes** — Filter out-of-scale notes or pitch them to nearest scale note.
844
+ - **Transpose** — Global key shifting.
845
+ - **Two preset systems** — 128 mapping presets + 128 scale presets.
846
+ - **MPE support** — Works with MPE controllers.
847
+ - **MIDI learn** — Learn scales from incoming MIDI.
848
+ - **Use cases:** Live performance key changes, project-wide scale management, global harmonic control, multi-track scale enforcement.
849
+ - **Reach for this when:** "change scale globally", "project-wide key", "control all scales at once", "global scale management".
850
+ - **Pairs well with:** Chord-O-Mat 3 (chord triggering), Modular Sequencer (scale input), all Scale devices.
851
+ - **vs Scale (Native):** Scale-O-Mat controls *all Scale devices project-wide*; Native Scale works *per-track only*.
852
+
853
+ ---
854
+
855
+ ## Generative M4L Devices
856
+
857
+ ---
858
+
859
+ ### Euclidean Sequencer Pro (Alkman)
860
+ - **Type:** M4L User (Generative)
861
+ - **Load via:** Load `.amxd` from generative M4L folder
862
+ - **What it does:** 4-voice Euclidean rhythm generator with polyrhythm/polymeter switching, per-voice clock division, swing, and Juno-style arpeggiator.
863
+ - **Key parameters:**
864
+ - **4 voices** — Each with steps, pulses, rotation, and independent clock divider/multiplier.
865
+ - **Euclidean algorithm** — Distributes pulses as evenly as possible across steps.
866
+ - **Polyrhythm / Polymeter toggle** — Switch between common timebase and independent lengths.
867
+ - **Clock divider/multiplier** — Common multiple or non-divisible values per voice.
868
+ - **Note duration** — Per-voice, measured in step multiples/divisors.
869
+ - **Swing** — Per-voice swing amount.
870
+ - **Arpeggiator** — Juno-style per-voice arp.
871
+ - **Euclidean Out** — Companion device for routing voices to separate tracks.
872
+ - **Use cases:** Euclidean drum patterns, polyrhythmic percussion, generative rhythms, West African/electronic rhythm exploration.
873
+ - **Reach for this when:** "euclidean rhythm", "Bjorklund algorithm", "even pulse distribution", "polyrhythmic drums".
874
+ - **Pairs well with:** Drum Racks, any percussion instrument, Scale (for melodic Euclidean patterns).
875
+ - **vs Polyrhythm (Meyer):** Alkman is *real-time* with per-voice routing; Meyer's is a *clip-based MIDI Tool*.
876
+
877
+ ---
878
+
879
+ ### Grids (Mutable Instruments)
880
+ - **Type:** M4L User (Generative)
881
+ - **Load via:** Load `.amxd` from generative M4L folder
882
+ - **What it does:** Topographic drum sequencer ported from Mutable Instruments eurorack module. Navigates a learned map of thousands of drum patterns; moving through X/Y coordinates morphs between rhythms.
883
+ - **Key parameters:**
884
+ - **X / Y position** — Navigate the pattern map. Different coordinates = different rhythms.
885
+ - **Density (Kick / Snare / HiHat)** — Three knobs controlling event density per drum voice.
886
+ - **Chaos** — Amount of random variation.
887
+ - **Accent** — Extends to 6 voices (3 base + 3 accent variations).
888
+ - **Map interpolation** — 5x5 grid of static patterns with linear interpolation between them.
889
+ - **Use cases:** Instant drum patterns, morphing between styles, live beat exploration, generative percussion.
890
+ - **Reach for this when:** "topographic drums", "morph between patterns", "Grids", "drum map", "instant beat".
891
+ - **Pairs well with:** Drum Racks, any percussion kit.
892
+ - **vs PatDrummer (J74):** Grids *morphs continuously* through a pattern space; PatDrummer *mixes discrete* pattern presets.
893
+
894
+ ---
895
+
896
+ ### TOPO SEQ
897
+ - **Type:** M4L User (Generative)
898
+ - **Load via:** Load `.amxd` from generative M4L folder
899
+ - **What it does:** Topographic sequencer variant. Generates patterns by navigating a multi-dimensional map of rhythmic possibilities, similar in concept to Grids but with different topology.
900
+ - **Key parameters:**
901
+ - **Map navigation** — X/Y coordinates for pattern selection.
902
+ - **Density** — Per-voice event density.
903
+ - **Variation** — Pattern mutation amount.
904
+ - **Use cases:** Generative drum patterns, beat exploration, pattern morphing.
905
+ - **Reach for this when:** "topographic sequencer", "pattern map", "morph drums".
906
+ - **Pairs well with:** Drum Racks, Grids (compare approaches).
907
+ - **vs Grids:** Both use topographic approaches; TOPO SEQ may offer different map topology and interface.
908
+
909
+ ---
910
+
911
+ ### Natural Selection P / S
912
+ - **Type:** M4L User (Generative)
913
+ - **Load via:** Load `.amxd` from generative M4L folder
914
+ - **What they do:** Genetic algorithm-based preset evolution. Treat synth parameters as DNA — breed, mutate, and evolve sounds across generations.
915
+ - **Natural Selection P** — Evolves parameters of *external* devices/racks in Live. Maps to any automatable parameter.
916
+ - **Natural Selection S** — Internal poly synth + rhythm engine. Built-in oscillators (morphable FM, resonator, Karplus-Strong, wavetable, noise), filters, and note generator.
917
+ - **Key parameters (both):**
918
+ - **Mutation amount** — How much offspring deviate from parents. Two mutation modes.
919
+ - **Generation limits** — Control which ancestors can breed.
920
+ - **Family tree** — Visual lineage tracking.
921
+ - **Rating system** — Bias selection toward preferred sounds.
922
+ - **Morphing** — 8-preset XY quadrant blending.
923
+ - **Seed methods** — Random or device-value-based initialization.
924
+ - **Key parameters (S only):**
925
+ - **5 oscillator types** — Morphable FM, resonator+mallet, Karplus-Strong+mallet, wavetable (user-droppable), noise.
926
+ - **Partials system** — Harmonic distribution manipulation.
927
+ - **2 filters** — Basic, ladder, vowel/formant.
928
+ - **Note generator** — Euclidean + random gating, pitch, velocity, duration randomization, scale/tonic locking.
929
+ - **Use cases:** Sound design exploration, evolving presets over time, discovering unexpected timbres, algorithmic composition.
930
+ - **Reach for this when:** "evolve sounds", "genetic algorithm", "breed presets", "mutate parameters", "sound evolution".
931
+ - **Pairs well with:** Natural Selection P with any instrument/rack; S is self-contained.
932
+ - **vs Turing Machine (Meyer):** Natural Selection evolves *entire parameter sets*; Turing Machine generates *pitch/rhythm sequences*.
933
+
934
+ ---
935
+
936
+ ## Quick Decision Matrix
937
+
938
+ | I want to... | Reach for | Why |
939
+ |---|---|---|
940
+ | Arpeggiate a chord | **Arpeggiator** (simple) / **ARPlines** (complex polymetric) | Native for basics; ARPlines for 4 independent lines |
941
+ | Build chords from single notes | **Chord** (fixed intervals) / **ChordsInKey** (diatonic) / **Chord-O-Mat 3** (library + Push) | Chord for parallel intervals; ChordsInKey for theory-free; Chord-O-Mat for performance |
942
+ | Echo/delay MIDI notes | **Note Echo** (regular) / **Fibonacci/Fractal** (organic) / **Gravity Pack** (physics) | Note Echo for standard delays; math echoes for texture; Gravity for bouncing ball |
943
+ | Force notes to a scale | **Scale** (per-track) / **Scale-O-Mat** (project-wide) / **InstantScale** (quick visual) | Scale for simple; Scale-O-Mat for global control |
944
+ | Generate drum patterns | **Grids** (topographic) / **PatDrummer** (preset mixing) / **Euclidean Pro** (algorithmic) / **Polyrhythm** (clip-based) | Grids for exploration; PatDrummer for curated; Euclidean for math; Polyrhythm for MIDI Tools |
945
+ | Add randomness/variation | **Random** (pitch only) / **DEVIATE** (whole clip) / **MIDIHack** (probability chains) / **Turing Machine** (evolving) | Random for simple; DEVIATE for subtle; MIDIHack for wild; Turing for memory |
946
+ | Generate acid lines | **Sting 2** | Purpose-built TB-303 pattern generator with Push integration |
947
+ | Humanize timing | **Feel** (structured groove) / **MIDI Tenderizer** (random variation) | Feel for deliberate swing; Tenderizer for organic randomness |
948
+ | Subdivide/ratchet notes | **Divs** (pure subdivision) / **Segment** (duration-filtered) / **Condition Transform** (conditional) | Divs for simple; Segment for smart; Condition Transform for selective |
949
+ | Create generative melodies | **Turing Machine** (shift register) / **Random** + **Scale** (simple) / **Swarmalators** (agent-based) | Turing for evolving; Random+Scale for quick; Swarmalators for emergent |
950
+ | Chord progression writing | **J74 Progressive** (analysis + editor) / **Chord-O-Mat 3** (trigger + library) | Progressive for composition; Chord-O-Mat for performance |
951
+ | Modular-style sequencing | **Modular Sequencer** (patchable) / **StepSequencer64** (deep linear) | Modular for patching; StepSequencer for per-step detail |
952
+ | Evolve sounds over time | **Natural Selection P/S** (genetic) / **Develop** (complexity curve) | Natural Selection for timbre; Develop for density |
953
+ | Split chords across tracks | **ChordRipper** | Purpose-built for voice decomposition |
954
+ | Control hardware CC | **CC Control** | Native Live 12 CC automation surface |
955
+ | Map expression to parameters | **Expression Control** (incoming MIDI) / **Shaper MIDI** (generated envelopes) | Expression Control for controllers; Shaper for designed modulation |
956
+ | Debug MIDI signal | **MIDI Monitor** | Drop anywhere in chain to inspect |
957
+ | Build up/break down patterns | **Develop** (density over time) / **Condition Transform** (selective removal) | Develop for gradual; Condition for targeted |
958
+ | Euclidean rhythms (real-time) | **Euclidean Sequencer Pro** | 4-voice real-time with per-voice routing |
959
+ | Euclidean rhythms (clip-based) | **Polyrhythm** | MIDI Tool with Euclidean + Omni algorithms |
960
+ | Phase shifting / bouncing ball (clip) | **Phase Pattern** / **Micro Stretch** | Phase Pattern for time-warp; Micro Stretch for Steve Reich |
961
+ | Phase shifting (real-time) | **G_Ripplecoil** / **G_Rippler** / **G_Delay** | Physics-based real-time MIDI delays |
962
+ | Draw custom modulation | **Shaper MIDI** (native) / **Envelope MIDI** (ADSR-style) | Shaper for freeform; Envelope for ADSR |
963
+ | Process modulation signals | **Modulation Delay/Lerp/Math/Stepper** (zsteinkamp) | Utility suite for modulation routing and processing |