livepilot 1.16.1 → 1.17.1

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 (52) hide show
  1. package/CHANGELOG.md +311 -0
  2. package/README.md +16 -15
  3. package/installer/codex.js +14 -0
  4. package/m4l_device/LivePilot_Analyzer.amxd +0 -0
  5. package/m4l_device/livepilot_bridge.js +1 -1
  6. package/mcp_server/__init__.py +1 -1
  7. package/mcp_server/atlas/__init__.py +85 -0
  8. package/mcp_server/atlas/device_atlas.json +3183 -382
  9. package/mcp_server/atlas/device_techniques_index.json +1510 -0
  10. package/mcp_server/atlas/enrichments/__init__.py +1 -0
  11. package/mcp_server/atlas/enrichments/audio_effects/amp.yaml +112 -0
  12. package/mcp_server/atlas/enrichments/audio_effects/audio_effect_rack.yaml +77 -0
  13. package/mcp_server/atlas/enrichments/audio_effects/cabinet.yaml +81 -0
  14. package/mcp_server/atlas/enrichments/audio_effects/corpus.yaml +128 -0
  15. package/mcp_server/atlas/enrichments/audio_effects/envelope_follower.yaml +99 -0
  16. package/mcp_server/atlas/enrichments/audio_effects/external_audio_effect.yaml +64 -0
  17. package/mcp_server/atlas/enrichments/audio_effects/looper.yaml +85 -0
  18. package/mcp_server/atlas/enrichments/audio_effects/resonators.yaml +121 -0
  19. package/mcp_server/atlas/enrichments/audio_effects/snipper.yaml +17 -0
  20. package/mcp_server/atlas/enrichments/audio_effects/spectrum.yaml +61 -0
  21. package/mcp_server/atlas/enrichments/audio_effects/tuner.yaml +43 -0
  22. package/mcp_server/atlas/enrichments/audio_effects/utility.yaml +118 -0
  23. package/mcp_server/atlas/enrichments/audio_effects/vocoder.yaml +94 -0
  24. package/mcp_server/atlas/enrichments/instruments/analog.yaml +11 -0
  25. package/mcp_server/atlas/enrichments/instruments/bass.yaml +11 -0
  26. package/mcp_server/atlas/enrichments/instruments/bell_tower.yaml +38 -0
  27. package/mcp_server/atlas/enrichments/instruments/collision.yaml +11 -0
  28. package/mcp_server/atlas/enrichments/instruments/drift.yaml +11 -0
  29. package/mcp_server/atlas/enrichments/instruments/drum_rack.yaml +142 -0
  30. package/mcp_server/atlas/enrichments/instruments/electric.yaml +11 -0
  31. package/mcp_server/atlas/enrichments/instruments/emit.yaml +11 -0
  32. package/mcp_server/atlas/enrichments/instruments/meld.yaml +11 -0
  33. package/mcp_server/atlas/enrichments/instruments/operator.yaml +11 -0
  34. package/mcp_server/atlas/enrichments/instruments/poli.yaml +11 -0
  35. package/mcp_server/atlas/enrichments/instruments/sampler.yaml +12 -0
  36. package/mcp_server/atlas/enrichments/instruments/simpler.yaml +15 -0
  37. package/mcp_server/atlas/enrichments/instruments/tension.yaml +11 -0
  38. package/mcp_server/atlas/enrichments/instruments/vector_fm.yaml +11 -0
  39. package/mcp_server/atlas/enrichments/instruments/vector_grain.yaml +11 -0
  40. package/mcp_server/atlas/enrichments/instruments/wavetable.yaml +11 -0
  41. package/mcp_server/atlas/enrichments/midi_effects/filler.yaml +17 -0
  42. package/mcp_server/atlas/enrichments/utility/performer.yaml +15 -0
  43. package/mcp_server/atlas/enrichments/utility/vector_map.yaml +21 -0
  44. package/mcp_server/atlas/tools.py +291 -0
  45. package/mcp_server/m4l_bridge.py +19 -2
  46. package/mcp_server/sample_engine/tools.py +201 -128
  47. package/mcp_server/splice_client/http_bridge.py +319 -116
  48. package/mcp_server/tools/automation.py +168 -0
  49. package/package.json +2 -2
  50. package/remote_script/LivePilot/__init__.py +1 -1
  51. package/remote_script/LivePilot/arrangement.py +216 -1
  52. package/server.json +3 -3
@@ -926,19 +926,49 @@
926
926
  "category": "instruments",
927
927
  "subcategory": "other",
928
928
  "source": "native",
929
- "enriched": false,
930
- "character_tags": [],
931
- "use_cases": [],
929
+ "enriched": true,
930
+ "character_tags": [
931
+ "cv",
932
+ "modular",
933
+ "pitch_out",
934
+ "gate_out"
935
+ ],
936
+ "use_cases": [
937
+ "modular_voice_from_live",
938
+ "hybrid_rig"
939
+ ],
932
940
  "genre_affinity": {
933
- "primary": [],
934
- "secondary": []
941
+ "primary": [
942
+ "modular",
943
+ "experimental"
944
+ ],
945
+ "secondary": [
946
+ "all"
947
+ ]
935
948
  },
936
949
  "self_contained": true,
937
- "key_parameters": [],
950
+ "key_parameters": [
951
+ {
952
+ "name": "Pitch Output",
953
+ "description": "V/oct or Hz/V tuning curve."
954
+ },
955
+ {
956
+ "name": "Gate Output",
957
+ "description": "Gate signal when note plays."
958
+ },
959
+ {
960
+ "name": "Modulation Outputs",
961
+ "description": "Velocity, aftertouch, mod wheel as CV."
962
+ }
963
+ ],
938
964
  "pairs_well_with": [],
939
965
  "starter_recipes": [],
940
966
  "gotchas": [],
941
- "health_flags": []
967
+ "health_flags": [],
968
+ "pack": "CV Tools",
969
+ "introduced_in": "10.0",
970
+ "complexity": "intermediate",
971
+ "sonic_description": "Sends pitch + gate CV from Live to a modular synth. Cent-accurate tuning with flexible modulation routing. Turns any modular voice into a MIDI-playable instrument from Live's sequencer. Requires DC-coupled audio interface.\n"
942
972
  },
943
973
  {
944
974
  "id": "cv_triggers",
@@ -947,19 +977,42 @@
947
977
  "category": "instruments",
948
978
  "subcategory": "other",
949
979
  "source": "native",
950
- "enriched": false,
951
- "character_tags": [],
952
- "use_cases": [],
980
+ "enriched": true,
981
+ "character_tags": [
982
+ "cv",
983
+ "modular",
984
+ "drum_trigger",
985
+ "gate_out"
986
+ ],
987
+ "use_cases": [
988
+ "modular_drums_from_live"
989
+ ],
953
990
  "genre_affinity": {
954
- "primary": [],
955
- "secondary": []
991
+ "primary": [
992
+ "modular",
993
+ "experimental",
994
+ "hybrid_techno"
995
+ ]
956
996
  },
957
997
  "self_contained": true,
958
- "key_parameters": [],
998
+ "key_parameters": [
999
+ {
1000
+ "name": "Pad Count",
1001
+ "description": "Up to 8 independent gate outputs."
1002
+ },
1003
+ {
1004
+ "name": "Per-pad MIDI note assignment",
1005
+ "description": "Which note triggers which pad."
1006
+ }
1007
+ ],
959
1008
  "pairs_well_with": [],
960
1009
  "starter_recipes": [],
961
1010
  "gotchas": [],
962
- "health_flags": []
1011
+ "health_flags": [],
1012
+ "pack": "CV Tools",
1013
+ "introduced_in": "10.0",
1014
+ "complexity": "intermediate",
1015
+ "sonic_description": "Sends per-pad trigger CV to modular drum modules. Each of 8 pads outputs its own gate. Map MIDI notes to pads, sequence modular drums from Live's clip view.\n"
963
1016
  },
964
1017
  {
965
1018
  "id": "drift",
@@ -1225,19 +1278,186 @@
1225
1278
  "category": "instruments",
1226
1279
  "subcategory": "drums",
1227
1280
  "source": "native",
1228
- "enriched": false,
1229
- "character_tags": [],
1230
- "use_cases": [],
1281
+ "enriched": true,
1282
+ "character_tags": [
1283
+ "container",
1284
+ "infrastructure",
1285
+ "kit_builder",
1286
+ "per_pad_chain",
1287
+ "macro_addressable"
1288
+ ],
1289
+ "use_cases": [
1290
+ "build_drum_kit_from_loose_samples",
1291
+ "per_pad_effects_processing",
1292
+ "choke_groups_for_hat_pairs",
1293
+ "macro_controlled_drum_performance",
1294
+ "parallel_sample_layering_on_a_single_pad",
1295
+ "host_for_sliced_break_recomposition"
1296
+ ],
1231
1297
  "genre_affinity": {
1232
- "primary": [],
1233
- "secondary": []
1298
+ "primary": [
1299
+ "hip_hop",
1300
+ "electronic",
1301
+ "techno",
1302
+ "house",
1303
+ "trap"
1304
+ ],
1305
+ "secondary": [
1306
+ "dnb",
1307
+ "footwork",
1308
+ "ambient",
1309
+ "experimental",
1310
+ "all"
1311
+ ]
1234
1312
  },
1235
- "self_contained": true,
1236
- "key_parameters": [],
1237
- "pairs_well_with": [],
1238
- "starter_recipes": [],
1239
- "gotchas": [],
1240
- "health_flags": []
1313
+ "self_contained": false,
1314
+ "key_parameters": [
1315
+ {
1316
+ "name": "Pad Note Assignment",
1317
+ "description": "Each pad is assigned a MIDI note (C1=36 by convention for the kick). Programmatic: use `set_drum_chain_note(track, chain_index, note)` rather than GUI drag. The Live 12.4+ drum-map uses note 36 for the bottom-left pad by default.\n",
1318
+ "range": [
1319
+ 0,
1320
+ 127
1321
+ ],
1322
+ "type": "int",
1323
+ "sweet_spots": {
1324
+ "kick": 36,
1325
+ "snare": 38,
1326
+ "closed_hat": 42,
1327
+ "open_hat": 46,
1328
+ "clap": 39,
1329
+ "ride": 51
1330
+ }
1331
+ },
1332
+ {
1333
+ "name": "Pad Volume (per chain)",
1334
+ "description": "Each pad has its own volume fader on the chain",
1335
+ "range": [
1336
+ 0.0,
1337
+ 1.0
1338
+ ],
1339
+ "type": "float",
1340
+ "sweet_spots": {
1341
+ "anchor_kick": 0.85,
1342
+ "accent_snare": 0.75,
1343
+ "ghost_hat": 0.35
1344
+ }
1345
+ },
1346
+ {
1347
+ "name": "Pad Pan (per chain)",
1348
+ "description": "Stereo placement per pad \u2014 crucial for width on hats/percs",
1349
+ "range": [
1350
+ -1.0,
1351
+ 1.0
1352
+ ],
1353
+ "type": "float",
1354
+ "sweet_spots": {
1355
+ "center": 0.0,
1356
+ "hat_right": 0.25,
1357
+ "perc_wide": 0.6
1358
+ }
1359
+ },
1360
+ {
1361
+ "name": "Choke Group",
1362
+ "description": "Pads in the same choke group cut each other off (pair hats so closed cuts open, or group percussion so overlapping hits don't stack).\n",
1363
+ "range": [
1364
+ 0,
1365
+ 16
1366
+ ],
1367
+ "type": "int",
1368
+ "sweet_spots": {
1369
+ "hat_pair": 1,
1370
+ "percussion_cluster": 2
1371
+ }
1372
+ },
1373
+ {
1374
+ "name": "Macro 1-8",
1375
+ "description": "Drum Rack macros address any parameter across any pad chain. Use for performance gestures (global dust filter, global saturation, pad volumes collected onto one knob).\n",
1376
+ "range": [
1377
+ 0.0,
1378
+ 127.0
1379
+ ],
1380
+ "type": "float"
1381
+ }
1382
+ ],
1383
+ "pairs_well_with": [
1384
+ {
1385
+ "device": "Drum Buss",
1386
+ "reason": "The native glue \u2014 shape/boom/transients for the whole kit post-rack. Often the entire mix tool a drum rack needs"
1387
+ },
1388
+ {
1389
+ "device": "Compressor",
1390
+ "reason": "Glue the kit into one punch \u2014 2-4 dB gain reduction with a medium attack"
1391
+ },
1392
+ {
1393
+ "device": "EQ Eight",
1394
+ "reason": "High-pass below 30 Hz, notch masking from kick/snare"
1395
+ },
1396
+ {
1397
+ "device": "Saturator",
1398
+ "reason": "Add harmonic weight without gain staging pain. Especially on sampled kits that sound sterile"
1399
+ },
1400
+ {
1401
+ "device": "Reverb",
1402
+ "reason": "Per-pad sends (build a reverb return) rather than stacking on the master"
1403
+ },
1404
+ {
1405
+ "device": "Gate",
1406
+ "reason": "Tighten room-mic'd one-shots or trim bleed from multi-sampled kits"
1407
+ }
1408
+ ],
1409
+ "starter_recipes": [
1410
+ {
1411
+ "name": "Empty Kit for Sample Programming",
1412
+ "description": "Build from scratch \u2014 use add_drum_rack_pad for each slot",
1413
+ "genre": "electronic",
1414
+ "steps": [
1415
+ "Create empty Drum Rack on a MIDI track",
1416
+ "For each sample: add_drum_rack_pad(track, note=36+i, sample_path=...)",
1417
+ "Verify each pad landed: get_track_info, check chain count",
1418
+ "Set pad volumes by role: kick 0.85, snare 0.75, hats 0.4"
1419
+ ]
1420
+ },
1421
+ {
1422
+ "name": "Sliced-Break Reprogram",
1423
+ "description": "Take a break loop, slice it, reroute to a Drum Rack for MIDI programming",
1424
+ "genre": "dnb",
1425
+ "steps": [
1426
+ "Load break to Simpler in Slicing mode",
1427
+ "classify_simpler_slices to identify kick/snare/hat roles",
1428
+ "Recreate as Drum Rack with each slice as its own pad",
1429
+ "Program new pattern \u2014 you now have MIDI control of the break"
1430
+ ]
1431
+ },
1432
+ {
1433
+ "name": "Layered Kick (sub + click + body)",
1434
+ "description": "Single kick pad with three parallel instruments for fullness",
1435
+ "genre": "techno",
1436
+ "steps": [
1437
+ "Drum Rack \u2192 pad 36 (kick) \u2192 add 3 chains within that pad",
1438
+ "Chain 1: sub sine (Operator sine wave)",
1439
+ "Chain 2: transient click (short sample)",
1440
+ "Chain 3: body (sampled kick tail)",
1441
+ "Balance chain volumes \u2014 sub first, body second, click last"
1442
+ ]
1443
+ }
1444
+ ],
1445
+ "gotchas": [
1446
+ "A Drum Rack with no pads produces nothing \u2014 loading the container alone is not enough. Always verify at least one chain exists via get_track_info before firing notes",
1447
+ "Pad 36 (C1) is the bottom-left in the default view and the conventional kick slot. Live 12's auto-mapping assumes this",
1448
+ "add_drum_rack_pad is the ONE reliable tool for adding pads. Using load_browser_item repeatedly to 'add' pads creates nested racks, not siblings",
1449
+ "Each pad is itself a chain with its own Volume/Pan/Solo/Mute \u2014 per-pad mute is different from muting the pad's chain. Use set_chain_volume for the pad-level fader",
1450
+ "Macros must be explicitly mapped \u2014 they don't auto-address pad volumes. Use add_rack_macro + map_plugin_parameter on the underlying instrument",
1451
+ "Choke groups 0 and 'None' are the same (no choke). Use 1-16 for actual mutual-exclusion grouping",
1452
+ "A sliced Simpler inside a Drum Rack pad responds to slice-base pitch (36+N), NOT the pad's own MIDI note. Mis-configured slicing\u2192pad routing is a common silence cause",
1453
+ "Per-pad sends can be shown/hidden by the rack's S (Send) button on the chain list. Hidden sends still work, but you can't see them \u2014 makes debugging missing reverb very hard"
1454
+ ],
1455
+ "health_flags": [],
1456
+ "synthesis_type": "sample_container",
1457
+ "sonic_description": "A container instrument that maps up to 128 drum pads \u2014 each pad hosts its own Simpler (or Sampler, Operator, or any other instrument plus effect chain) and responds to one MIDI note. Drum Rack is not a synth: its sonic character comes entirely from the samples and devices loaded into its pads. Think of it as infrastructure \u2014 the spine that turns a folder of one-shots into a playable kit with per-pad routing, choke groups, and macro control.\n",
1458
+ "pack": "Core Library",
1459
+ "introduced_in": "6.0",
1460
+ "complexity": "beginner"
1241
1461
  },
1242
1462
  {
1243
1463
  "id": "drum_sampler",
@@ -1928,19 +2148,152 @@
1928
2148
  "category": "instruments",
1929
2149
  "subcategory": "granular",
1930
2150
  "source": "native",
1931
- "enriched": false,
1932
- "character_tags": [],
1933
- "use_cases": [],
2151
+ "enriched": true,
2152
+ "character_tags": [
2153
+ "granular",
2154
+ "evolving",
2155
+ "textural",
2156
+ "atmospheric",
2157
+ "experimental",
2158
+ "organic",
2159
+ "cloud"
2160
+ ],
2161
+ "use_cases": [
2162
+ "texture",
2163
+ "drone",
2164
+ "vocal_chop",
2165
+ "evolving_pad",
2166
+ "cloud",
2167
+ "re_pitched_loop",
2168
+ "atmosphere"
2169
+ ],
1934
2170
  "genre_affinity": {
1935
- "primary": [],
1936
- "secondary": []
2171
+ "primary": [
2172
+ "deep_minimal",
2173
+ "microhouse",
2174
+ "ambient",
2175
+ "dub_techno",
2176
+ "idm"
2177
+ ],
2178
+ "secondary": [
2179
+ "experimental",
2180
+ "drone",
2181
+ "cinematic",
2182
+ "electronica"
2183
+ ]
1937
2184
  },
1938
- "self_contained": true,
1939
- "key_parameters": [],
2185
+ "self_contained": false,
2186
+ "key_parameters": [
2187
+ {
2188
+ "name": "Mode",
2189
+ "description": "Playback mode. Classic = 2 overlapping grains per channel (G II engine). Loop = rhythmic crossfaded playback synced to clip tempo. Cloud = up to 20 unsynced overlapping grains for drones/textures.",
2190
+ "range": [
2191
+ "Classic",
2192
+ "Loop",
2193
+ "Cloud"
2194
+ ],
2195
+ "type": "enum",
2196
+ "sweet_spots": {
2197
+ "rhythmic_micro_loop": "Loop",
2198
+ "drone_cloud": "Cloud",
2199
+ "classic_texture": "Classic"
2200
+ }
2201
+ },
2202
+ {
2203
+ "name": "Grain Size",
2204
+ "description": "Duration of each grain in ms. Shorter = more tonal; longer = more recognizable as source.",
2205
+ "range": [
2206
+ 1,
2207
+ 1000
2208
+ ],
2209
+ "unit": "ms",
2210
+ "type": "float",
2211
+ "sweet_spots": {
2212
+ "cloud_drone": 200,
2213
+ "vocal_grain": 500,
2214
+ "micro_stutter": 20
2215
+ }
2216
+ },
2217
+ {
2218
+ "name": "Position",
2219
+ "description": "Read-head position in the source sample. Automate this for smooth source traversal.",
2220
+ "range": [
2221
+ 0.0,
2222
+ 1.0
2223
+ ],
2224
+ "type": "float"
2225
+ },
2226
+ {
2227
+ "name": "Position Random",
2228
+ "description": "Randomness added to read-head position per grain. Essential for Cloud-mode non-repeating texture.",
2229
+ "range": [
2230
+ 0.0,
2231
+ 1.0
2232
+ ],
2233
+ "type": "float",
2234
+ "sweet_spots": {
2235
+ "locked_loop": 0.0,
2236
+ "organic_scatter": 0.3,
2237
+ "full_chaos": 1.0
2238
+ }
2239
+ },
2240
+ {
2241
+ "name": "Pitch Random",
2242
+ "description": "Per-grain pitch detune in semitones. Low values give vintage tape wobble; high values give chord-cloud effects.",
2243
+ "range": [
2244
+ 0.0,
2245
+ 24.0
2246
+ ],
2247
+ "unit": "st",
2248
+ "type": "float",
2249
+ "sweet_spots": {
2250
+ "tape_wobble": 0.15,
2251
+ "chord_cloud": 7.0,
2252
+ "octave_chaos": 12.0
2253
+ }
2254
+ },
2255
+ {
2256
+ "name": "Grain Density",
2257
+ "description": "How many grains overlap at once. Higher = denser wall of sound.",
2258
+ "range": [
2259
+ 1,
2260
+ 20
2261
+ ],
2262
+ "type": "int",
2263
+ "sweet_spots": {
2264
+ "classic": 2,
2265
+ "cloud_pad": 12,
2266
+ "wall_of_sound": 20
2267
+ }
2268
+ },
2269
+ {
2270
+ "name": "Spray",
2271
+ "description": "Time randomization of grain onsets. Prevents periodic artifacts that make granular sound 'machine-like'.",
2272
+ "range": [
2273
+ 0.0,
2274
+ 1.0
2275
+ ],
2276
+ "type": "float",
2277
+ "sweet_spots": {
2278
+ "organic": 0.2,
2279
+ "fully_asynchronous": 0.6
2280
+ }
2281
+ }
2282
+ ],
1940
2283
  "pairs_well_with": [],
1941
2284
  "starter_recipes": [],
1942
- "gotchas": [],
1943
- "health_flags": []
2285
+ "gotchas": [
2286
+ "Cloud mode with 20 grains + 500ms size is CPU-heavy \u2014 freeze the track after print",
2287
+ "Real-time Capture samples whatever routes to the track \u2014 put on a return to grain a single source cleanly",
2288
+ "Position at 1.0 (end of sample) goes silent \u2014 keep Position + Grain Size below 1.0 of the sample duration",
2289
+ "Grain Size below 20ms starts producing audible tonal artifacts \u2014 good for FM-like textures, bad for 'natural' grain"
2290
+ ],
2291
+ "health_flags": [],
2292
+ "pack": "Granulator III",
2293
+ "introduced_in": "12.0",
2294
+ "synthesis_type": "granular",
2295
+ "complexity": "intermediate",
2296
+ "sonic_description": "Robert Henke's (Monolake) reimagined granular synth. Three playback modes \u2014 Classic (2 overlapping grains per stereo channel, the Granulator II engine), Loop (rhythmic crossfaded sample playback), Cloud (up to 20 unsynced overlapping grains). Full MPE for per-note control of grain size, shape, and position. Real-time audio capture samples any source in one click. The single most-used instrument for evolving texture, drone beds, and vocal-chop clouds in deep minimal / microhouse / ambient.\n"
1944
2297
  },
1945
2298
  {
1946
2299
  "id": "impulse",
@@ -1949,19 +2302,64 @@
1949
2302
  "category": "instruments",
1950
2303
  "subcategory": "drums",
1951
2304
  "source": "native",
1952
- "enriched": false,
1953
- "character_tags": [],
1954
- "use_cases": [],
2305
+ "enriched": true,
2306
+ "character_tags": [
2307
+ "drum",
2308
+ "sample_player",
2309
+ "lightweight",
2310
+ "8_pad"
2311
+ ],
2312
+ "use_cases": [
2313
+ "quick_drums",
2314
+ "single_kit",
2315
+ "lightweight_programming"
2316
+ ],
1955
2317
  "genre_affinity": {
1956
- "primary": [],
1957
- "secondary": []
2318
+ "primary": [
2319
+ "house",
2320
+ "techno",
2321
+ "all_electronic_drums"
2322
+ ],
2323
+ "secondary": [
2324
+ "all"
2325
+ ]
1958
2326
  },
1959
- "self_contained": true,
1960
- "key_parameters": [],
2327
+ "self_contained": false,
2328
+ "key_parameters": [
2329
+ {
2330
+ "name": "Per-pad sample slot (8 pads)",
2331
+ "description": "Each pad holds one sample, mapped to a MIDI note."
2332
+ },
2333
+ {
2334
+ "name": "Start / Transpose / Stretch",
2335
+ "description": "Per-pad playback controls."
2336
+ },
2337
+ {
2338
+ "name": "Saturator",
2339
+ "description": "Per-pad one-knob saturator."
2340
+ },
2341
+ {
2342
+ "name": "Filter",
2343
+ "description": "Per-pad LP/HP filter with envelope."
2344
+ },
2345
+ {
2346
+ "name": "Decay / Mute Group",
2347
+ "description": "Decay envelope; mute group for hi-hat choke patterns."
2348
+ }
2349
+ ],
1961
2350
  "pairs_well_with": [],
1962
2351
  "starter_recipes": [],
1963
- "gotchas": [],
1964
- "health_flags": []
2352
+ "gotchas": [
2353
+ "Only 8 pads \u2014 for bigger kits, use Drum Rack",
2354
+ "No per-pad chain = no per-pad effect insert \u2014 use return sends instead",
2355
+ "No MPE support"
2356
+ ],
2357
+ "health_flags": [],
2358
+ "pack": "Core Library",
2359
+ "introduced_in": "7.0",
2360
+ "synthesis_type": "drum_sampler",
2361
+ "complexity": "beginner",
2362
+ "sonic_description": "Ableton's original drum sampler \u2014 8-pad sample player with per-pad pitch, pan, volume, and simple filter/saturator/envelope. Older than Drum Rack but still ships with Live; lighter CPU, simpler interface. Good for quick one-shot drums when you don't need Drum Rack's full chain architecture. The understated alternative when a full Drum Rack is overkill.\n"
1965
2363
  },
1966
2364
  {
1967
2365
  "id": "instrument_rack",
@@ -3196,7 +3594,8 @@
3196
3594
  "sonic_description": "Full-featured multi-zone sampler with velocity layers, key zones, round-robin selection, and a deep modulation matrix. The most powerful sampling instrument in Live, designed for building realistic multi-sampled instruments with complex modulation routing, multiple filter types, and three LFOs.\n",
3197
3595
  "complexity": "advanced",
3198
3596
  "introduced_in": "1.0",
3199
- "synthesis_type": "sampling"
3597
+ "synthesis_type": "sampling",
3598
+ "pack": "Core Library"
3200
3599
  },
3201
3600
  {
3202
3601
  "id": "simpler",
@@ -3540,13 +3939,17 @@
3540
3939
  "Warp must be ON for the sample to follow session tempo \u2014 off by default for pitched samples",
3541
3940
  "Transpose shifts pitch in semitones, not time \u2014 use Warp for time-stretching without pitch change",
3542
3941
  "crop_simpler and reverse_simpler are available as LivePilot tools for destructive sample editing",
3543
- "replace_simpler_sample only works if a sample is already loaded \u2014 cannot replace an empty Simpler"
3942
+ "replace_simpler_sample only works if a sample is already loaded \u2014 cannot replace an empty Simpler",
3943
+ "Snap must be OFF after load_sample_to_simpler, or the sample plays silently (known Live bug). LivePilot auto-clears Snap in the role-aware load path",
3944
+ "load_browser_item Simplers come up at Volume=-12 dB and Ve Mode=None; track meter reads normal but master reads silence. Set Volume=0 dB on sustained tracks",
3945
+ "Slice mode maps slice N to MIDI pitch 36+N (base C1), NOT 60+C3 \u2014 notes at pitch 60+ produce silence. See `get_simpler_slices` doesn't disclose the base pitch"
3544
3946
  ],
3545
3947
  "health_flags": [],
3546
3948
  "sonic_description": "Streamlined sample-based instrument with three playback modes: Classic for chromatic pitched playback, One-Shot for triggered samples, and Slicing for beat chopping. The workhorse sampler for quick sample loading and manipulation with built-in filter, envelope, and LFO \u2014 faster and simpler than Sampler for most tasks.\n",
3547
3949
  "complexity": "beginner",
3548
3950
  "introduced_in": "1.0",
3549
- "synthesis_type": "sampling"
3951
+ "synthesis_type": "sampling",
3952
+ "pack": "Core Library"
3550
3953
  },
3551
3954
  {
3552
3955
  "id": "tension",
@@ -5104,19 +5507,45 @@
5104
5507
  "category": "audio_effects",
5105
5508
  "subcategory": "performance",
5106
5509
  "source": "native",
5107
- "enriched": false,
5108
- "character_tags": [],
5109
- "use_cases": [],
5510
+ "enriched": true,
5511
+ "character_tags": [
5512
+ "loop",
5513
+ "performance",
5514
+ "arrangement"
5515
+ ],
5516
+ "use_cases": [
5517
+ "extended_breakdown",
5518
+ "live_remix",
5519
+ "arrangement_sketch"
5520
+ ],
5110
5521
  "genre_affinity": {
5111
- "primary": [],
5112
- "secondary": []
5522
+ "primary": [
5523
+ "live_performance",
5524
+ "dj_sets"
5525
+ ],
5526
+ "secondary": [
5527
+ "all"
5528
+ ]
5113
5529
  },
5114
5530
  "self_contained": true,
5115
- "key_parameters": [],
5531
+ "key_parameters": [
5532
+ {
5533
+ "name": "Loop Lengths",
5534
+ "description": "Up to 4 customizable lengths (1/2 bar, 1 bar, 2 bars, 4 bars typical)."
5535
+ },
5536
+ {
5537
+ "name": "Toggle Buttons",
5538
+ "description": "Enable each loop length individually."
5539
+ }
5540
+ ],
5116
5541
  "pairs_well_with": [],
5117
5542
  "starter_recipes": [],
5118
5543
  "gotchas": [],
5119
- "health_flags": []
5544
+ "health_flags": [],
5545
+ "pack": "Performance Pack",
5546
+ "introduced_in": "11.0",
5547
+ "complexity": "beginner",
5548
+ "sonic_description": "Quick-toggle loop-length device for Arrangement View (Performance Pack). Four customizable loop lengths, switchable on/off mid-performance. Studio use: rapid arrangement experimentation without manual timeline manipulation. Live/DJ use: extended breakdowns and remix sections.\n"
5120
5549
  },
5121
5550
  {
5122
5551
  "id": "audio_effect_rack",
@@ -5125,19 +5554,109 @@
5125
5554
  "category": "audio_effects",
5126
5555
  "subcategory": "racks",
5127
5556
  "source": "native",
5128
- "enriched": false,
5129
- "character_tags": [],
5130
- "use_cases": [],
5557
+ "enriched": true,
5558
+ "character_tags": [
5559
+ "container",
5560
+ "macro",
5561
+ "chain",
5562
+ "parallel",
5563
+ "infrastructure"
5564
+ ],
5565
+ "use_cases": [
5566
+ "parallel_effect_processing",
5567
+ "macro_controlled_effect_chain",
5568
+ "signature_reusable_chain_presets",
5569
+ "chain_selector_a_b_swap",
5570
+ "preset_friendly_complex_effect_setup"
5571
+ ],
5131
5572
  "genre_affinity": {
5132
- "primary": [],
5573
+ "primary": [
5574
+ "all"
5575
+ ],
5133
5576
  "secondary": []
5134
5577
  },
5135
- "self_contained": true,
5136
- "key_parameters": [],
5137
- "pairs_well_with": [],
5138
- "starter_recipes": [],
5139
- "gotchas": [],
5140
- "health_flags": []
5578
+ "self_contained": false,
5579
+ "key_parameters": [
5580
+ {
5581
+ "name": "Macro 1-8",
5582
+ "description": "Rack macros \u2014 map each to parameter(s) in any chain. Most-mapped rack knob is a performance gesture",
5583
+ "range": [
5584
+ 0.0,
5585
+ 127.0
5586
+ ],
5587
+ "type": "float"
5588
+ },
5589
+ {
5590
+ "name": "Chain Volume (per chain)",
5591
+ "description": "Per-chain output level for parallel blending",
5592
+ "range": [
5593
+ -70.0,
5594
+ 6.0
5595
+ ],
5596
+ "unit": "dB",
5597
+ "type": "float"
5598
+ },
5599
+ {
5600
+ "name": "Chain Solo/Mute",
5601
+ "description": "Isolate one chain or disable it",
5602
+ "range": [
5603
+ 0,
5604
+ 1
5605
+ ],
5606
+ "type": "int"
5607
+ },
5608
+ {
5609
+ "name": "Chain Selector",
5610
+ "description": "Gate chains based on a zone \u2014 useful for 'only chain A plays in zone 0-63, only chain B plays in 64-127'",
5611
+ "range": [
5612
+ 0,
5613
+ 127
5614
+ ],
5615
+ "type": "int"
5616
+ }
5617
+ ],
5618
+ "pairs_well_with": [
5619
+ {
5620
+ "device": "Any audio effect",
5621
+ "reason": "Drop any effect into a chain \u2014 Rack is just the scaffolding"
5622
+ }
5623
+ ],
5624
+ "starter_recipes": [
5625
+ {
5626
+ "name": "Signature Vocal Chain",
5627
+ "description": "EQ \u2192 De-esser \u2192 Compressor \u2192 Reverb send, with Macro 1 = reverb amount",
5628
+ "genre": "all",
5629
+ "steps": [
5630
+ "Create Audio Effect Rack on vocal track",
5631
+ "Chain 1: EQ Eight \u2192 Multiband Dynamics (de-esser) \u2192 Compressor \u2192 Reverb",
5632
+ "Map Macro 1 to Reverb Dry/Wet",
5633
+ "Map Macro 2 to Compressor Threshold"
5634
+ ]
5635
+ },
5636
+ {
5637
+ "name": "Parallel Saturation",
5638
+ "description": "Two chains \u2014 clean and heavily saturated \u2014 blended via macro",
5639
+ "genre": "rock",
5640
+ "steps": [
5641
+ "Chain 1: clean pass-through",
5642
+ "Chain 2: Saturator (warm) + Limiter",
5643
+ "Map Macro 1 to Chain 2 Volume \u2014 sweep from clean to dirty"
5644
+ ]
5645
+ }
5646
+ ],
5647
+ "gotchas": [
5648
+ "Chains are PARALLEL by default \u2014 all chains receive the input and sum to the output. Don't confuse with serial",
5649
+ "Chain output level is post-chain-effects \u2014 you can saturate heavily and then pull Chain Volume down to keep master level sane",
5650
+ "Rack Variations (store_rack_variation / recall_rack_variation) capture the full state for A/B swap \u2014 essential for workflow",
5651
+ "Macros don't auto-map \u2014 use add_rack_macro + map_plugin_parameter explicitly. Naming macros after mapping is also worth the extra call",
5652
+ "For MIDI-effect containers use Instrument Rack or MIDI Effect Rack \u2014 this rack is audio-only"
5653
+ ],
5654
+ "health_flags": [],
5655
+ "sonic_description": "Container for audio effects with up to 8 macro knobs mapped to any parameters across any chain. Parallel chains, chain selector, A/B morphing via Rack Variations. Not an effect itself \u2014 the infrastructure that makes complex effect sculpting macro-addressable. Essential for building \"signature chains\" you can reuse, and for Akufen-style parallel-chain routing.\n",
5656
+ "pack": "Core Library",
5657
+ "introduced_in": "4.0",
5658
+ "complexity": "intermediate",
5659
+ "effect_type": "container"
5141
5660
  },
5142
5661
  {
5143
5662
  "id": "auto_filter",
@@ -7506,19 +8025,41 @@
7506
8025
  "category": "audio_effects",
7507
8026
  "subcategory": "other",
7508
8027
  "source": "native",
7509
- "enriched": false,
7510
- "character_tags": [],
7511
- "use_cases": [],
8028
+ "enriched": true,
8029
+ "character_tags": [
8030
+ "cv",
8031
+ "sync",
8032
+ "tempo",
8033
+ "slave"
8034
+ ],
8035
+ "use_cases": [
8036
+ "modular_master_daw_slave"
8037
+ ],
7512
8038
  "genre_affinity": {
7513
- "primary": [],
7514
- "secondary": []
8039
+ "primary": [
8040
+ "modular",
8041
+ "experimental"
8042
+ ]
7515
8043
  },
7516
8044
  "self_contained": true,
7517
- "key_parameters": [],
8045
+ "key_parameters": [
8046
+ {
8047
+ "name": "Clock Rate",
8048
+ "description": "PPQN \u2014 pulses per quarter note."
8049
+ },
8050
+ {
8051
+ "name": "Source Channel",
8052
+ "description": "Which audio input receives the clock."
8053
+ }
8054
+ ],
7518
8055
  "pairs_well_with": [],
7519
8056
  "starter_recipes": [],
7520
8057
  "gotchas": [],
7521
- "health_flags": []
8058
+ "health_flags": [],
8059
+ "pack": "CV Tools",
8060
+ "introduced_in": "10.0",
8061
+ "complexity": "intermediate",
8062
+ "sonic_description": "Synchronizes Live's tempo from an incoming clock signal (from Eurorack). Use when the modular is the master timekeeper and Live follows.\n"
7522
8063
  },
7523
8064
  {
7524
8065
  "id": "cv_clock_out",
@@ -7527,19 +8068,42 @@
7527
8068
  "category": "audio_effects",
7528
8069
  "subcategory": "other",
7529
8070
  "source": "native",
7530
- "enriched": false,
7531
- "character_tags": [],
7532
- "use_cases": [],
8071
+ "enriched": true,
8072
+ "character_tags": [
8073
+ "cv",
8074
+ "sync",
8075
+ "tempo",
8076
+ "master"
8077
+ ],
8078
+ "use_cases": [
8079
+ "daw_master_modular_slave"
8080
+ ],
7533
8081
  "genre_affinity": {
7534
- "primary": [],
7535
- "secondary": []
8082
+ "primary": [
8083
+ "modular",
8084
+ "experimental",
8085
+ "hybrid_techno"
8086
+ ]
7536
8087
  },
7537
8088
  "self_contained": true,
7538
- "key_parameters": [],
8089
+ "key_parameters": [
8090
+ {
8091
+ "name": "Clock Rate",
8092
+ "description": "PPQN \u2014 typically 4 PPQN for Eurorack."
8093
+ },
8094
+ {
8095
+ "name": "Output Channel",
8096
+ "description": "Which audio output carries the clock."
8097
+ }
8098
+ ],
7539
8099
  "pairs_well_with": [],
7540
8100
  "starter_recipes": [],
7541
8101
  "gotchas": [],
7542
- "health_flags": []
8102
+ "health_flags": [],
8103
+ "pack": "CV Tools",
8104
+ "introduced_in": "10.0",
8105
+ "complexity": "beginner",
8106
+ "sonic_description": "Sends Live's tempo as a clock signal out to modular gear. Live is the master, modular follows. The more common direction in hybrid setups.\n"
7543
8107
  },
7544
8108
  {
7545
8109
  "id": "cv_envelope_follower",
@@ -7548,19 +8112,50 @@
7548
8112
  "category": "audio_effects",
7549
8113
  "subcategory": "other",
7550
8114
  "source": "native",
7551
- "enriched": false,
7552
- "character_tags": [],
7553
- "use_cases": [],
8115
+ "enriched": true,
8116
+ "character_tags": [
8117
+ "envelope_follower",
8118
+ "dynamic_modulation",
8119
+ "audio_to_cv"
8120
+ ],
8121
+ "use_cases": [
8122
+ "dynamic_filter",
8123
+ "audio_driven_modulation",
8124
+ "creative_sidechain"
8125
+ ],
7554
8126
  "genre_affinity": {
7555
- "primary": [],
7556
- "secondary": []
8127
+ "primary": [
8128
+ "deep_minimal",
8129
+ "dub_techno",
8130
+ "electronic"
8131
+ ],
8132
+ "secondary": [
8133
+ "all"
8134
+ ]
7557
8135
  },
7558
8136
  "self_contained": true,
7559
- "key_parameters": [],
8137
+ "key_parameters": [
8138
+ {
8139
+ "name": "Rise / Fall",
8140
+ "description": "Envelope attack and release times."
8141
+ },
8142
+ {
8143
+ "name": "Scale",
8144
+ "description": "Output depth."
8145
+ },
8146
+ {
8147
+ "name": "Invert",
8148
+ "description": "Flip envelope polarity \u2014 modulation reduces instead of increases."
8149
+ }
8150
+ ],
7560
8151
  "pairs_well_with": [],
7561
8152
  "starter_recipes": [],
7562
8153
  "gotchas": [],
7563
- "health_flags": []
8154
+ "health_flags": [],
8155
+ "pack": "CV Tools",
8156
+ "introduced_in": "10.0",
8157
+ "complexity": "intermediate",
8158
+ "sonic_description": "Tracks the amplitude envelope of an audio signal and emits CV. Can modulate modular gear OR, crucially, any internal Live parameter \u2014 kick drum \u2192 CV Envelope Follower \u2192 modulates pad filter cutoff \u2192 pad opens up on every kick. Creative sidechain alternative that gives CV shape, not just gain reduction.\n"
7564
8159
  },
7565
8160
  {
7566
8161
  "id": "cv_in",
@@ -7569,19 +8164,40 @@
7569
8164
  "category": "audio_effects",
7570
8165
  "subcategory": "other",
7571
8166
  "source": "native",
7572
- "enriched": false,
7573
- "character_tags": [],
7574
- "use_cases": [],
8167
+ "enriched": true,
8168
+ "character_tags": [
8169
+ "cv",
8170
+ "audio_to_control",
8171
+ "modular"
8172
+ ],
8173
+ "use_cases": [
8174
+ "modular_modulator_for_daw"
8175
+ ],
7575
8176
  "genre_affinity": {
7576
- "primary": [],
7577
- "secondary": []
8177
+ "primary": [
8178
+ "modular",
8179
+ "experimental"
8180
+ ]
7578
8181
  },
7579
8182
  "self_contained": true,
7580
- "key_parameters": [],
8183
+ "key_parameters": [
8184
+ {
8185
+ "name": "Input Channel",
8186
+ "description": "Audio input carrying CV."
8187
+ },
8188
+ {
8189
+ "name": "Scale / Offset",
8190
+ "description": "Normalize CV range to 0-1 for Live parameter mapping."
8191
+ }
8192
+ ],
7581
8193
  "pairs_well_with": [],
7582
8194
  "starter_recipes": [],
7583
8195
  "gotchas": [],
7584
- "health_flags": []
8196
+ "health_flags": [],
8197
+ "pack": "CV Tools",
8198
+ "introduced_in": "10.0",
8199
+ "complexity": "intermediate",
8200
+ "sonic_description": "Route incoming CV from modular gear to modulate any Live parameter. Turn a modular LFO or envelope follower into a control source for internal Live plugins.\n"
7585
8201
  },
7586
8202
  {
7587
8203
  "id": "cv_lfo",
@@ -7590,19 +8206,55 @@
7590
8206
  "category": "audio_effects",
7591
8207
  "subcategory": "other",
7592
8208
  "source": "native",
7593
- "enriched": false,
7594
- "character_tags": [],
7595
- "use_cases": [],
8209
+ "enriched": true,
8210
+ "character_tags": [
8211
+ "lfo",
8212
+ "modulation",
8213
+ "cv",
8214
+ "internal_modulation"
8215
+ ],
8216
+ "use_cases": [
8217
+ "extra_lfo",
8218
+ "modular_cv",
8219
+ "parameter_modulation"
8220
+ ],
7596
8221
  "genre_affinity": {
7597
- "primary": [],
7598
- "secondary": []
8222
+ "primary": [
8223
+ "modular",
8224
+ "experimental",
8225
+ "deep_minimal"
8226
+ ],
8227
+ "secondary": [
8228
+ "all"
8229
+ ]
7599
8230
  },
7600
8231
  "self_contained": true,
7601
- "key_parameters": [],
8232
+ "key_parameters": [
8233
+ {
8234
+ "name": "Rate",
8235
+ "description": "LFO frequency \u2014 Hz or tempo-synced."
8236
+ },
8237
+ {
8238
+ "name": "Waveform",
8239
+ "description": "Sine / Triangle / Saw / Square / Random / custom shape."
8240
+ },
8241
+ {
8242
+ "name": "Depth",
8243
+ "description": "Output amplitude \u2014 controls modulation depth at the destination."
8244
+ },
8245
+ {
8246
+ "name": "Offset",
8247
+ "description": "DC offset \u2014 pre-bias the modulation range."
8248
+ }
8249
+ ],
7602
8250
  "pairs_well_with": [],
7603
8251
  "starter_recipes": [],
7604
8252
  "gotchas": [],
7605
- "health_flags": []
8253
+ "health_flags": [],
8254
+ "pack": "CV Tools",
8255
+ "introduced_in": "10.0",
8256
+ "complexity": "beginner",
8257
+ "sonic_description": "M4L LFO generator from CV Tools. Originally designed to send CV to modular systems via a DC-coupled audio interface, but equally useful as an extra LFO inside Live \u2014 route its output audio to modulate any Live parameter via a return-track sidechain or internal MIDI mapping. When you want more LFOs than a synth natively provides, CV LFO is the answer.\n"
7606
8258
  },
7607
8259
  {
7608
8260
  "id": "cv_shaper",
@@ -7611,19 +8263,51 @@
7611
8263
  "category": "audio_effects",
7612
8264
  "subcategory": "other",
7613
8265
  "source": "native",
7614
- "enriched": false,
7615
- "character_tags": [],
7616
- "use_cases": [],
8266
+ "enriched": true,
8267
+ "character_tags": [
8268
+ "cv",
8269
+ "custom_shape",
8270
+ "envelope",
8271
+ "lfo"
8272
+ ],
8273
+ "use_cases": [
8274
+ "custom_envelope",
8275
+ "bespoke_lfo",
8276
+ "parameter_modulation"
8277
+ ],
7617
8278
  "genre_affinity": {
7618
- "primary": [],
7619
- "secondary": []
8279
+ "primary": [
8280
+ "modular",
8281
+ "experimental",
8282
+ "deep_minimal"
8283
+ ],
8284
+ "secondary": [
8285
+ "all"
8286
+ ]
7620
8287
  },
7621
8288
  "self_contained": true,
7622
- "key_parameters": [],
8289
+ "key_parameters": [
8290
+ {
8291
+ "name": "Shape Canvas",
8292
+ "description": "Draw the CV curve graphically."
8293
+ },
8294
+ {
8295
+ "name": "Rate",
8296
+ "description": "Cycle time \u2014 tempo-sync or free."
8297
+ },
8298
+ {
8299
+ "name": "Scale / Offset",
8300
+ "description": "Output amplitude and DC offset."
8301
+ }
8302
+ ],
7623
8303
  "pairs_well_with": [],
7624
8304
  "starter_recipes": [],
7625
8305
  "gotchas": [],
7626
- "health_flags": []
8306
+ "health_flags": [],
8307
+ "pack": "CV Tools",
8308
+ "introduced_in": "10.0",
8309
+ "complexity": "intermediate",
8310
+ "sonic_description": "Create flexible CV shapes inside Live, then send to modular OR use internally. Draw custom envelopes/LFOs on a graphical canvas. Useful WITHOUT modular hardware as a free-form envelope/LFO source for any Live parameter.\n"
7627
8311
  },
7628
8312
  {
7629
8313
  "id": "cv_utility",
@@ -7632,19 +8316,55 @@
7632
8316
  "category": "audio_effects",
7633
8317
  "subcategory": "other",
7634
8318
  "source": "native",
7635
- "enriched": false,
7636
- "character_tags": [],
7637
- "use_cases": [],
8319
+ "enriched": true,
8320
+ "character_tags": [
8321
+ "cv_processing",
8322
+ "scale",
8323
+ "offset",
8324
+ "invert",
8325
+ "quantize"
8326
+ ],
8327
+ "use_cases": [
8328
+ "curve_shaping",
8329
+ "modulation_scaling",
8330
+ "parameter_processing"
8331
+ ],
7638
8332
  "genre_affinity": {
7639
- "primary": [],
7640
- "secondary": []
8333
+ "primary": [
8334
+ "modular",
8335
+ "experimental"
8336
+ ],
8337
+ "secondary": [
8338
+ "all"
8339
+ ]
7641
8340
  },
7642
8341
  "self_contained": true,
7643
- "key_parameters": [],
8342
+ "key_parameters": [
8343
+ {
8344
+ "name": "Scale",
8345
+ "description": "Multiply incoming CV by a factor."
8346
+ },
8347
+ {
8348
+ "name": "Offset",
8349
+ "description": "Add a DC offset."
8350
+ },
8351
+ {
8352
+ "name": "Invert",
8353
+ "description": "Flip the signal polarity."
8354
+ },
8355
+ {
8356
+ "name": "Quantize",
8357
+ "description": "Snap CV to discrete steps \u2014 useful for pitched CV."
8358
+ }
8359
+ ],
7644
8360
  "pairs_well_with": [],
7645
8361
  "starter_recipes": [],
7646
8362
  "gotchas": [],
7647
- "health_flags": []
8363
+ "health_flags": [],
8364
+ "pack": "CV Tools",
8365
+ "introduced_in": "10.0",
8366
+ "complexity": "beginner",
8367
+ "sonic_description": "Process control voltages via automation curves. Scale, offset, invert, quantize CV signals. Works standalone even without modular gear \u2014 use to shape Live's internal automation before it hits the destination parameter. Acts as a curve-shaper between a source LFO/envelope and the modulated parameter.\n"
7648
8368
  },
7649
8369
  {
7650
8370
  "id": "delay",
@@ -8633,19 +9353,151 @@
8633
9353
  "category": "audio_effects",
8634
9354
  "subcategory": "modulation",
8635
9355
  "source": "native",
8636
- "enriched": false,
8637
- "character_tags": [],
8638
- "use_cases": [],
9356
+ "enriched": true,
9357
+ "character_tags": [
9358
+ "modulation",
9359
+ "sidechain",
9360
+ "follower",
9361
+ "routing",
9362
+ "audio_reactive"
9363
+ ],
9364
+ "use_cases": [
9365
+ "audio_reactive_filter_opening",
9366
+ "alternative_to_compressor_sidechain_ducking",
9367
+ "amplitude_to_any_parameter_mapping",
9368
+ "kick_drives_pad_filter_cutoff",
9369
+ "dynamic_send_modulation_per_hit"
9370
+ ],
8639
9371
  "genre_affinity": {
8640
- "primary": [],
8641
- "secondary": []
9372
+ "primary": [
9373
+ "techno",
9374
+ "minimal",
9375
+ "dub",
9376
+ "electronic"
9377
+ ],
9378
+ "secondary": [
9379
+ "ambient",
9380
+ "experimental",
9381
+ "house"
9382
+ ]
8642
9383
  },
8643
- "self_contained": true,
8644
- "key_parameters": [],
8645
- "pairs_well_with": [],
8646
- "starter_recipes": [],
8647
- "gotchas": [],
8648
- "health_flags": []
9384
+ "self_contained": false,
9385
+ "key_parameters": [
9386
+ {
9387
+ "name": "Gain",
9388
+ "description": "Input level \u2014 scales the detected amplitude before envelope follows",
9389
+ "range": [
9390
+ -35.0,
9391
+ 35.0
9392
+ ],
9393
+ "unit": "dB",
9394
+ "type": "float"
9395
+ },
9396
+ {
9397
+ "name": "Attack",
9398
+ "description": "Envelope rise time",
9399
+ "range": [
9400
+ 0.1,
9401
+ 1000.0
9402
+ ],
9403
+ "unit": "ms",
9404
+ "type": "float",
9405
+ "sweet_spots": {
9406
+ "instant": 0.1,
9407
+ "smooth": 30.0,
9408
+ "slow": 200.0
9409
+ }
9410
+ },
9411
+ {
9412
+ "name": "Release",
9413
+ "description": "Envelope fall time",
9414
+ "range": [
9415
+ 0.1,
9416
+ 10000.0
9417
+ ],
9418
+ "unit": "ms",
9419
+ "type": "float",
9420
+ "sweet_spots": {
9421
+ "tight": 50.0,
9422
+ "musical": 200.0,
9423
+ "long_tail": 800.0
9424
+ }
9425
+ },
9426
+ {
9427
+ "name": "Min",
9428
+ "description": "Minimum output value (modulation offset)",
9429
+ "range": [
9430
+ 0.0,
9431
+ 1.0
9432
+ ],
9433
+ "type": "float"
9434
+ },
9435
+ {
9436
+ "name": "Max",
9437
+ "description": "Maximum output value (modulation ceiling)",
9438
+ "range": [
9439
+ 0.0,
9440
+ 1.0
9441
+ ],
9442
+ "type": "float"
9443
+ },
9444
+ {
9445
+ "name": "Rise/Fall Shape",
9446
+ "description": "Curvature of attack/release \u2014 linear vs exponential",
9447
+ "range": [
9448
+ "Linear",
9449
+ "Exponential"
9450
+ ],
9451
+ "type": "enum"
9452
+ }
9453
+ ],
9454
+ "pairs_well_with": [
9455
+ {
9456
+ "device": "Auto Filter",
9457
+ "reason": "Envelope Follower mapped to Auto Filter cutoff on the same track \u2014 audio-reactive filter without sidechaining"
9458
+ },
9459
+ {
9460
+ "device": "Compressor",
9461
+ "reason": "Alternative or complement to sidechain compression \u2014 follower gives more control over the curve shape"
9462
+ }
9463
+ ],
9464
+ "starter_recipes": [
9465
+ {
9466
+ "name": "Kick-Ducked Pad Filter",
9467
+ "description": "Send kick as audio-from, follow its envelope, map to pad's filter cutoff",
9468
+ "genre": "techno",
9469
+ "params": {
9470
+ "Attack": 1.0,
9471
+ "Release": 300.0,
9472
+ "Min": 0.3,
9473
+ "Max": 1.0
9474
+ }
9475
+ },
9476
+ {
9477
+ "name": "Snare-Triggered Reverb Swell",
9478
+ "description": "Snare hits open the reverb send momentarily \u2014 rhythmic ambient texture",
9479
+ "genre": "experimental",
9480
+ "params": {
9481
+ "Attack": 5.0,
9482
+ "Release": 500.0,
9483
+ "Min": 0.0,
9484
+ "Max": 0.8
9485
+ }
9486
+ }
9487
+ ],
9488
+ "gotchas": [
9489
+ "Envelope Follower does NOT process audio \u2014 it outputs a CV-like value that must be Map-assigned to another parameter. Without a mapping, it does nothing audible",
9490
+ "Requires audio-from routing from a different track OR placement on the track whose envelope you want to follow \u2014 easy to mis-route",
9491
+ "Attack of 0.1ms tracks transients exactly; >10ms smooths and loses transient precision. Pick based on what you're mapping to",
9492
+ "Min/Max define the output range \u2014 if you want full modulation, Min=0 Max=1. For subtle modulation, narrow the range (Min=0.4 Max=0.6)",
9493
+ "For programmatic automation-like behavior without audio input, use LFO instead"
9494
+ ],
9495
+ "health_flags": [],
9496
+ "sonic_description": "M4L modulator \u2014 extracts the amplitude envelope of an incoming audio signal and maps it to ANY parameter anywhere in the live set via Map mode. The key device for audio-rate modulation: use a kick drum to open a filter on a pad, use a snare to close a reverb send on the vocal, use a sidechain key to drive automation depth on macros. Critical infrastructure for minimal/dub ducking not done via Compressor sidechain.\n",
9497
+ "pack": "Core Library",
9498
+ "introduced_in": "10.0",
9499
+ "complexity": "intermediate",
9500
+ "effect_type": "modulator"
8649
9501
  },
8650
9502
  {
8651
9503
  "id": "eq_eight",
@@ -9265,19 +10117,102 @@
9265
10117
  "category": "audio_effects",
9266
10118
  "subcategory": "routing",
9267
10119
  "source": "native",
9268
- "enriched": false,
9269
- "character_tags": [],
9270
- "use_cases": [],
10120
+ "enriched": true,
10121
+ "character_tags": [
10122
+ "hardware",
10123
+ "routing",
10124
+ "infrastructure",
10125
+ "insert",
10126
+ "hybrid_rig"
10127
+ ],
10128
+ "use_cases": [
10129
+ "outboard_compressor_insert",
10130
+ "hardware_pedal_through_daw",
10131
+ "re_amping_via_hardware_amp",
10132
+ "send_to_synth_audio_through"
10133
+ ],
9271
10134
  "genre_affinity": {
9272
- "primary": [],
10135
+ "primary": [
10136
+ "all"
10137
+ ],
9273
10138
  "secondary": []
9274
10139
  },
9275
- "self_contained": true,
9276
- "key_parameters": [],
9277
- "pairs_well_with": [],
10140
+ "self_contained": false,
10141
+ "key_parameters": [
10142
+ {
10143
+ "name": "Audio To",
10144
+ "description": "Output audio port \u2014 the physical output sent to hardware",
10145
+ "range": [
10146
+ "Ext Out 1",
10147
+ "Ext Out 2",
10148
+ "..."
10149
+ ],
10150
+ "type": "enum"
10151
+ },
10152
+ {
10153
+ "name": "Audio From",
10154
+ "description": "Input audio port \u2014 the physical return from hardware",
10155
+ "range": [
10156
+ "Ext In 1",
10157
+ "Ext In 2",
10158
+ "..."
10159
+ ],
10160
+ "type": "enum"
10161
+ },
10162
+ {
10163
+ "name": "Gain",
10164
+ "description": "Make-up gain for the returning signal",
10165
+ "range": [
10166
+ -35.0,
10167
+ 35.0
10168
+ ],
10169
+ "unit": "dB",
10170
+ "type": "float"
10171
+ },
10172
+ {
10173
+ "name": "Hardware Latency",
10174
+ "description": "Measured round-trip latency for delay compensation \u2014 auto-detected",
10175
+ "range": [
10176
+ 0.0,
10177
+ 1000.0
10178
+ ],
10179
+ "unit": "ms",
10180
+ "type": "float"
10181
+ },
10182
+ {
10183
+ "name": "Dry/Wet",
10184
+ "description": "Blend processed return with dry",
10185
+ "range": [
10186
+ 0.0,
10187
+ 1.0
10188
+ ],
10189
+ "type": "float"
10190
+ }
10191
+ ],
10192
+ "pairs_well_with": [
10193
+ {
10194
+ "device": "Utility",
10195
+ "reason": "Utility before External effect for gain staging into the hardware, after for final trim"
10196
+ },
10197
+ {
10198
+ "device": "Compressor",
10199
+ "reason": "Tracking compressor in DAW for safety, hardware compressor in External for character"
10200
+ }
10201
+ ],
9278
10202
  "starter_recipes": [],
9279
- "gotchas": [],
9280
- "health_flags": []
10203
+ "gotchas": [
10204
+ "Requires multi-channel audio interface with at least one unused input/output pair",
10205
+ "Hardware Latency must be correct or everything downstream will be phase-wrong \u2014 use Auto-Detect and trust it unless you hear smearing",
10206
+ "Don't bypass \u2014 the audio signal is physically leaving the DAW. Bypass stops the round-trip but doesn't mute your hardware",
10207
+ "For pure hardware synth MIDI \u2192 audio return, External Instrument is more appropriate than External Audio Effect",
10208
+ "Running multiple External Audio Effects on different tracks can easily saturate interface I/O \u2014 check channel availability"
10209
+ ],
10210
+ "health_flags": [],
10211
+ "sonic_description": "Infrastructure device for routing audio OUT to external hardware (a guitar pedal, an outboard compressor, a hardware synth's audio-through path) and back IN. Essential for hybrid hardware/DAW setups. Handles audio delay compensation automatically via send-receive round-trip timing.\n",
10212
+ "pack": "Core Library",
10213
+ "introduced_in": "8.0",
10214
+ "complexity": "intermediate",
10215
+ "effect_type": "hardware_insert"
9281
10216
  },
9282
10217
  {
9283
10218
  "id": "filter_delay",
@@ -10870,19 +11805,143 @@
10870
11805
  "category": "audio_effects",
10871
11806
  "subcategory": "performance",
10872
11807
  "source": "native",
10873
- "enriched": false,
10874
- "character_tags": [],
10875
- "use_cases": [],
11808
+ "enriched": true,
11809
+ "character_tags": [
11810
+ "performance",
11811
+ "overdub",
11812
+ "live",
11813
+ "tape_loop",
11814
+ "experimental"
11815
+ ],
11816
+ "use_cases": [
11817
+ "live_performance_looping",
11818
+ "studio_experiment_sample_yourself",
11819
+ "dub_style_tape_loop_emulation",
11820
+ "generative_composition_from_single_source"
11821
+ ],
10876
11822
  "genre_affinity": {
10877
- "primary": [],
10878
- "secondary": []
11823
+ "primary": [
11824
+ "indie",
11825
+ "folk",
11826
+ "experimental",
11827
+ "dub"
11828
+ ],
11829
+ "secondary": [
11830
+ "ambient",
11831
+ "live_performance",
11832
+ "electronic"
11833
+ ]
10879
11834
  },
10880
11835
  "self_contained": true,
10881
- "key_parameters": [],
10882
- "pairs_well_with": [],
10883
- "starter_recipes": [],
10884
- "gotchas": [],
10885
- "health_flags": []
11836
+ "key_parameters": [
11837
+ {
11838
+ "name": "State",
11839
+ "description": "Current state \u2014 Stop / Record / Play / Overdub",
11840
+ "range": [
11841
+ "Stop",
11842
+ "Record",
11843
+ "Play",
11844
+ "Overdub"
11845
+ ],
11846
+ "type": "enum"
11847
+ },
11848
+ {
11849
+ "name": "Tempo Mode",
11850
+ "description": "How Looper handles tempo \u2014 Set and Follow, None, Set Song, Follow Song",
11851
+ "range": [
11852
+ "None",
11853
+ "Set Song",
11854
+ "Follow Song"
11855
+ ],
11856
+ "type": "enum"
11857
+ },
11858
+ {
11859
+ "name": "Quantization",
11860
+ "description": "Quantize loop start/overdub to beat grid",
11861
+ "range": [
11862
+ "None",
11863
+ "1/4",
11864
+ "1/2",
11865
+ "1 bar",
11866
+ "2 bars",
11867
+ "4 bars",
11868
+ "8 bars"
11869
+ ],
11870
+ "type": "enum"
11871
+ },
11872
+ {
11873
+ "name": "Feedback",
11874
+ "description": "Overdub feedback \u2014 <100% fades old layers over time",
11875
+ "range": [
11876
+ 0.0,
11877
+ 1.0
11878
+ ],
11879
+ "type": "float",
11880
+ "sweet_spots": {
11881
+ "infinite_layer": 1.0,
11882
+ "tape_style_fade": 0.85,
11883
+ "fast_fade": 0.5
11884
+ }
11885
+ },
11886
+ {
11887
+ "name": "Record Dry/Wet",
11888
+ "description": "Record dry input, wet loop, or blend",
11889
+ "range": [
11890
+ 0.0,
11891
+ 1.0
11892
+ ],
11893
+ "type": "float"
11894
+ }
11895
+ ],
11896
+ "pairs_well_with": [
11897
+ {
11898
+ "device": "Reverb",
11899
+ "reason": "Post-looper reverb creates ambient soundscapes from single notes"
11900
+ },
11901
+ {
11902
+ "device": "Auto Filter",
11903
+ "reason": "Modulate looper output with LFO for evolving loop texture"
11904
+ },
11905
+ {
11906
+ "device": "Pedal",
11907
+ "reason": "Stomp-box feedback into Looper for dubby layered grit"
11908
+ }
11909
+ ],
11910
+ "starter_recipes": [
11911
+ {
11912
+ "name": "Live Performance Loop",
11913
+ "description": "4-bar loop with infinite feedback for overdub layering",
11914
+ "genre": "indie",
11915
+ "params": {
11916
+ "Tempo Mode": "Set Song",
11917
+ "Quantization": "4 bars",
11918
+ "Feedback": 1.0
11919
+ }
11920
+ },
11921
+ {
11922
+ "name": "Tape-Loop Decay",
11923
+ "description": "Dub-style decaying loop that fades over bars",
11924
+ "genre": "dub",
11925
+ "params": {
11926
+ "Tempo Mode": "Set Song",
11927
+ "Quantization": "2 bars",
11928
+ "Feedback": 0.8
11929
+ }
11930
+ }
11931
+ ],
11932
+ "gotchas": [
11933
+ "Looper is performance-focused \u2014 programming it fully via MCP is awkward. Use live triggering (foot-pedal / MIDI) for real-time control",
11934
+ "Feedback at 1.0 means infinite layering \u2014 overdubs never fade. Feedback at 0.9 or below is more musical for tape-style use",
11935
+ "Record Dry/Wet affects what's captured, not what's heard \u2014 raise the track's return to verify what's going into the loop",
11936
+ "Tempo Mode Set Song locks Looper to current session tempo; None lets Looper fall behind/ahead if tempo changes",
11937
+ "Unlike Live 11 drag-to-export, audio capture from Looper for further processing requires re-recording to an audio track"
11938
+ ],
11939
+ "health_flags": [],
11940
+ "sonic_description": "Real-time audio looper \u2014 captures a segment of audio and layers overdubs. Built around performance rather than mixing. Records at the current tempo, optional tempo detection from length, variable feedback on overdubs. Used live for build-a-song-on-stage sets (Ed Sheeran, KT Tunstall style), in studio as a creative \"sample yourself\" tool, or for dub-style tape-loop emulation.\n",
11941
+ "pack": "Core Library",
11942
+ "introduced_in": "7.0",
11943
+ "complexity": "intermediate",
11944
+ "effect_type": "looper"
10886
11945
  },
10887
11946
  {
10888
11947
  "id": "multiband_dynamics",
@@ -11578,19 +12637,46 @@
11578
12637
  "category": "audio_effects",
11579
12638
  "subcategory": "performance",
11580
12639
  "source": "native",
11581
- "enriched": false,
11582
- "character_tags": [],
11583
- "use_cases": [],
12640
+ "enriched": true,
12641
+ "character_tags": [
12642
+ "macro",
12643
+ "performance",
12644
+ "curve_shaped",
12645
+ "unifier"
12646
+ ],
12647
+ "use_cases": [
12648
+ "live_control",
12649
+ "parameter_unification",
12650
+ "curve_automation"
12651
+ ],
11584
12652
  "genre_affinity": {
11585
- "primary": [],
11586
- "secondary": []
12653
+ "primary": [
12654
+ "all"
12655
+ ]
11587
12656
  },
11588
12657
  "self_contained": true,
11589
- "key_parameters": [],
12658
+ "key_parameters": [
12659
+ {
12660
+ "name": "Control Layout",
12661
+ "description": "Add/remove/rename faders, buttons, crossfaders freely."
12662
+ },
12663
+ {
12664
+ "name": "Macro Mappings",
12665
+ "description": "Each control maps to any Live parameter (including M4L devices and plugin parameters)."
12666
+ },
12667
+ {
12668
+ "name": "Macro Editor Curve",
12669
+ "description": "Shape the response \u2014 exponential, S-curve, stepped \u2014 per macro."
12670
+ }
12671
+ ],
11590
12672
  "pairs_well_with": [],
11591
12673
  "starter_recipes": [],
11592
12674
  "gotchas": [],
11593
- "health_flags": []
12675
+ "health_flags": [],
12676
+ "pack": "Performance Pack",
12677
+ "introduced_in": "11.0",
12678
+ "complexity": "intermediate",
12679
+ "sonic_description": "Macro-control device from Performance Pack (Iftah). Multiple faders, crossfaders, buttons, dials \u2014 fully user-configurable to mirror any hardware controller. Integrated Macro Editor for curve shaping. Studio use: unify disparate parameter automation into a single interface. Live use: build a one-controller performance surface for Live + external gear.\n"
11594
12680
  },
11595
12681
  {
11596
12682
  "id": "phaser_flanger",
@@ -11848,19 +12934,82 @@
11848
12934
  "category": "audio_effects",
11849
12935
  "subcategory": "pitch",
11850
12936
  "source": "native",
11851
- "enriched": false,
11852
- "character_tags": [],
11853
- "use_cases": [],
12937
+ "enriched": true,
12938
+ "character_tags": [
12939
+ "pitched",
12940
+ "glitchy",
12941
+ "reversed",
12942
+ "randomized",
12943
+ "micro_stutter"
12944
+ ],
12945
+ "use_cases": [
12946
+ "akufen_stutter",
12947
+ "pitched_ghost",
12948
+ "reverse_echo",
12949
+ "textural_delay"
12950
+ ],
11854
12951
  "genre_affinity": {
11855
- "primary": [],
11856
- "secondary": []
12952
+ "primary": [
12953
+ "microhouse",
12954
+ "deep_minimal",
12955
+ "idm",
12956
+ "experimental"
12957
+ ],
12958
+ "secondary": [
12959
+ "dub_techno",
12960
+ "electronica"
12961
+ ]
11857
12962
  },
11858
12963
  "self_contained": true,
11859
- "key_parameters": [],
12964
+ "key_parameters": [
12965
+ {
12966
+ "name": "Transpose",
12967
+ "description": "Pitch shift in semitones + cents on the delayed signal.",
12968
+ "range": [
12969
+ -24,
12970
+ 24
12971
+ ],
12972
+ "unit": "st",
12973
+ "type": "int"
12974
+ },
12975
+ {
12976
+ "name": "Delay Time",
12977
+ "description": "Delay in ms or tempo-synced subdivisions."
12978
+ },
12979
+ {
12980
+ "name": "Feedback",
12981
+ "description": "Pitched echo feedback. Cascading when transpose is non-zero.",
12982
+ "range": [
12983
+ 0.0,
12984
+ 1.0
12985
+ ],
12986
+ "type": "float"
12987
+ },
12988
+ {
12989
+ "name": "Reverse",
12990
+ "description": "Reverse-plays the delay buffer.",
12991
+ "type": "boolean"
12992
+ },
12993
+ {
12994
+ "name": "Randomize",
12995
+ "description": "Randomizes pitch and/or reverse per repeat. The Villalobos-texture parameter.",
12996
+ "range": [
12997
+ 0.0,
12998
+ 1.0
12999
+ ],
13000
+ "type": "float"
13001
+ }
13002
+ ],
11860
13003
  "pairs_well_with": [],
11861
13004
  "starter_recipes": [],
11862
- "gotchas": [],
11863
- "health_flags": []
13005
+ "gotchas": [
13006
+ "Randomize above 0.8 can produce notes wildly out of key \u2014 gate with key-detection first if harmony matters."
13007
+ ],
13008
+ "health_flags": [],
13009
+ "pack": "Creative Extensions",
13010
+ "introduced_in": "10.0",
13011
+ "complexity": "beginner",
13012
+ "sonic_description": "Versatile pitch-shifting delay for Creative Extensions. Combines transposition, reverse, feedback, and randomization on a single delay line. Lighter-weight companion to PitchLoop89 \u2014 less of a spatial architect, more of a per-sound treatment for pitched echoes and random reversal textures. The go-to for Akufen-style micro-stutter on hats and the random-reverse pitched ghosts that Villalobos uses on every track.\n"
11864
13013
  },
11865
13014
  {
11866
13015
  "id": "pitchloop89",
@@ -11869,19 +13018,141 @@
11869
13018
  "category": "audio_effects",
11870
13019
  "subcategory": "pitch",
11871
13020
  "source": "native",
11872
- "enriched": false,
11873
- "character_tags": [],
11874
- "use_cases": [],
13021
+ "enriched": true,
13022
+ "character_tags": [
13023
+ "detuned",
13024
+ "shimmering",
13025
+ "glitchy",
13026
+ "spatial",
13027
+ "pitched",
13028
+ "experimental",
13029
+ "vintage_digital"
13030
+ ],
13031
+ "use_cases": [
13032
+ "stab_shimmer",
13033
+ "detuned_echo",
13034
+ "reverse_tail",
13035
+ "infinite_feedback",
13036
+ "glitched_texture"
13037
+ ],
11875
13038
  "genre_affinity": {
11876
- "primary": [],
11877
- "secondary": []
13039
+ "primary": [
13040
+ "deep_minimal",
13041
+ "dub_techno",
13042
+ "ambient",
13043
+ "experimental"
13044
+ ],
13045
+ "secondary": [
13046
+ "microhouse",
13047
+ "idm",
13048
+ "drone",
13049
+ "cinematic"
13050
+ ]
11878
13051
  },
11879
13052
  "self_contained": true,
11880
- "key_parameters": [],
13053
+ "key_parameters": [
13054
+ {
13055
+ "name": "Pitch A / Pitch B",
13056
+ "description": "Coarse pitch shift per voice, in semitones. Two voices mean you can split: one +0.05 cents shimmer, one -0.07 cents detune for dual-detune clouds.",
13057
+ "range": [
13058
+ -24,
13059
+ 24
13060
+ ],
13061
+ "unit": "st",
13062
+ "type": "int",
13063
+ "sweet_spots": {
13064
+ "dual_detune_cloud": "+0.05 / -0.07 cents",
13065
+ "octave_shimmer": "+12 / +0",
13066
+ "reverse_ambience": "+0 / +0 with reverse on"
13067
+ }
13068
+ },
13069
+ {
13070
+ "name": "Fine A / Fine B",
13071
+ "description": "Fine detune per voice in cents (\u00b1100).",
13072
+ "range": [
13073
+ -100,
13074
+ 100
13075
+ ],
13076
+ "unit": "cents",
13077
+ "type": "int",
13078
+ "sweet_spots": {
13079
+ "shimmer": "+5 / -7",
13080
+ "chorus_thick": "+15 / -15"
13081
+ }
13082
+ },
13083
+ {
13084
+ "name": "Feedback A / Feedback B",
13085
+ "description": "Per-voice feedback. High values (80-95%) produce infinite-ascending or descending pitch spirals. Shepard-tone territory.",
13086
+ "range": [
13087
+ 0.0,
13088
+ 1.0
13089
+ ],
13090
+ "type": "float",
13091
+ "sweet_spots": {
13092
+ "subtle_echo": 0.35,
13093
+ "pitched_spiral": 0.85,
13094
+ "near_infinite": 0.97
13095
+ }
13096
+ },
13097
+ {
13098
+ "name": "Reverse",
13099
+ "description": "Per-voice reverse playback. Reverses the delay buffer before pitch shift \u2014 creates 'reverse swell' tails from any transient.",
13100
+ "type": "boolean",
13101
+ "sweet_spots": {
13102
+ "chord_swell_in": true
13103
+ }
13104
+ },
13105
+ {
13106
+ "name": "Mode",
13107
+ "description": "Signal routing: L/R (independent), Sum (both voices sum to mono), Cross (voice A to R out, voice B to L out, stereo ping-pong at different pitches).",
13108
+ "range": [
13109
+ "L/R",
13110
+ "Sum",
13111
+ "Cross"
13112
+ ],
13113
+ "type": "enum",
13114
+ "sweet_spots": {
13115
+ "stereo_ping_pong": "Cross",
13116
+ "mono_layer": "Sum"
13117
+ }
13118
+ },
13119
+ {
13120
+ "name": "Sample Rate",
13121
+ "description": "Buffer sample rate reduction. Lower values add characterful lo-fi grit \u2014 emulates the original Publison's digital artifacts.",
13122
+ "range": [
13123
+ 1,
13124
+ 44100
13125
+ ],
13126
+ "unit": "Hz",
13127
+ "type": "int",
13128
+ "sweet_spots": {
13129
+ "vintage_89": 12000,
13130
+ "heavy_lofi": 4000
13131
+ }
13132
+ },
13133
+ {
13134
+ "name": "Vibrato LFO",
13135
+ "description": "Modulates pitch over time. Sine or square waveform; rate in Hz.",
13136
+ "type": "composite"
13137
+ },
13138
+ {
13139
+ "name": "Position LFO",
13140
+ "description": "Modulates the read position in the delay buffer. Seven waveforms including random. The source of the 'shuddering glitch' and 'fractured rhythm' textures Henke uses.",
13141
+ "type": "composite"
13142
+ }
13143
+ ],
11881
13144
  "pairs_well_with": [],
11882
13145
  "starter_recipes": [],
11883
- "gotchas": [],
11884
- "health_flags": []
13146
+ "gotchas": [
13147
+ "Feedback above 0.95 can self-oscillate into runaway loop \u2014 keep a hand on the mute",
13148
+ "Reverse mode introduces latency equal to the buffer length \u2014 sync-critical material needs delay compensation",
13149
+ "Sample Rate very low (<2000Hz) aliases heavily; character, not hi-fi"
13150
+ ],
13151
+ "health_flags": [],
13152
+ "pack": "PitchLoop89",
13153
+ "introduced_in": "11.0",
13154
+ "complexity": "intermediate",
13155
+ "sonic_description": "Robert Henke's emulation of the 1979 Publison DHM 89 B2 pitch-shifting delay. Two independent pitch-shifting delay voices per stereo channel, each with their own pitch (\u00b124 semitones), fine detune (\u00b11 semitone), feedback, pan, and reverse capability. Sample rate selection, hold function, vibrato LFO (sine/square), position modulation LFO with 7 waveforms. THE tool for Monolake-style detuned delay clouds, Basic Channel spatial signatures, and Arpiar-adjacent shimmered stabs.\n"
11885
13156
  },
11886
13157
  {
11887
13158
  "id": "prearranger",
@@ -11890,19 +13161,47 @@
11890
13161
  "category": "audio_effects",
11891
13162
  "subcategory": "utility",
11892
13163
  "source": "native",
11893
- "enriched": false,
11894
- "character_tags": [],
11895
- "use_cases": [],
13164
+ "enriched": true,
13165
+ "character_tags": [
13166
+ "performance",
13167
+ "scaffold",
13168
+ "live_recording",
13169
+ "structure"
13170
+ ],
13171
+ "use_cases": [
13172
+ "long_form_sketch",
13173
+ "hypnotic_structure",
13174
+ "set_recording"
13175
+ ],
11896
13176
  "genre_affinity": {
11897
- "primary": [],
11898
- "secondary": []
13177
+ "primary": [
13178
+ "deep_minimal",
13179
+ "live_performance",
13180
+ "ambient"
13181
+ ],
13182
+ "secondary": [
13183
+ "electronic_all"
13184
+ ]
11899
13185
  },
11900
13186
  "self_contained": true,
11901
- "key_parameters": [],
13187
+ "key_parameters": [
13188
+ {
13189
+ "name": "Slot Layout",
13190
+ "description": "Pre-place empty arrangement clips where you want recorded content to land."
13191
+ },
13192
+ {
13193
+ "name": "Auto-fill Toggle",
13194
+ "description": "Enable Prearranger \u2014 live content records into the pre-placed slots."
13195
+ }
13196
+ ],
11902
13197
  "pairs_well_with": [],
11903
13198
  "starter_recipes": [],
11904
13199
  "gotchas": [],
11905
- "health_flags": []
13200
+ "health_flags": [],
13201
+ "pack": "Performance Pack",
13202
+ "introduced_in": "11.0",
13203
+ "complexity": "intermediate",
13204
+ "sonic_description": "Structural pre-planning device from Performance Pack (Iftah). Define clip locations in Arrangement View as empty slots, then perform live and Live auto-fills them with the performance. Transforms live recording into a compositional scaffold. Ideal for sketching long hypnotic structures (deep minimal) or entire sets without mid-performance arrangement decisions.\n"
11906
13205
  },
11907
13206
  {
11908
13207
  "id": "re_enveloper",
@@ -11911,19 +13210,71 @@
11911
13210
  "category": "audio_effects",
11912
13211
  "subcategory": "dynamics",
11913
13212
  "source": "native",
11914
- "enriched": false,
11915
- "character_tags": [],
11916
- "use_cases": [],
13213
+ "enriched": true,
13214
+ "character_tags": [
13215
+ "multiband",
13216
+ "envelope_shaping",
13217
+ "transient",
13218
+ "sculpted"
13219
+ ],
13220
+ "use_cases": [
13221
+ "transient_shape",
13222
+ "decay_control",
13223
+ "per_band_dynamics",
13224
+ "micro_stab"
13225
+ ],
11917
13226
  "genre_affinity": {
11918
- "primary": [],
11919
- "secondary": []
13227
+ "primary": [
13228
+ "minimal",
13229
+ "dub_techno",
13230
+ "electronica"
13231
+ ],
13232
+ "secondary": [
13233
+ "all_genres"
13234
+ ]
11920
13235
  },
11921
13236
  "self_contained": true,
11922
- "key_parameters": [],
13237
+ "key_parameters": [
13238
+ {
13239
+ "name": "Band Split Frequencies",
13240
+ "description": "Low/Mid and Mid/High crossover points in Hz.",
13241
+ "range": [
13242
+ 20,
13243
+ 20000
13244
+ ],
13245
+ "unit": "Hz",
13246
+ "type": "float"
13247
+ },
13248
+ {
13249
+ "name": "C/E Factor (per band)",
13250
+ "description": "Compression (positive) or Expansion (negative) factor per band.",
13251
+ "range": [
13252
+ -5.0,
13253
+ 5.0
13254
+ ],
13255
+ "type": "float",
13256
+ "sweet_spots": {
13257
+ "subtle_expand": 1.5,
13258
+ "aggressive_stab": 3.0,
13259
+ "decay_tightening": -2.0
13260
+ }
13261
+ },
13262
+ {
13263
+ "name": "Attack / Release (per band)",
13264
+ "description": "Envelope-shape time constants for each band independently."
13265
+ }
13266
+ ],
11923
13267
  "pairs_well_with": [],
11924
13268
  "starter_recipes": [],
11925
- "gotchas": [],
11926
- "health_flags": []
13269
+ "gotchas": [
13270
+ "Expansion factors above 4.0 can cause clipping \u2014 compensate output gain.",
13271
+ "Crossover bands overlap by ~6dB \u2014 not a surgical splitter."
13272
+ ],
13273
+ "health_flags": [],
13274
+ "pack": "Creative Extensions",
13275
+ "introduced_in": "10.0",
13276
+ "complexity": "intermediate",
13277
+ "sonic_description": "Multiband envelope processor with three adjustable frequency bands. Unlike compression (which reduces amplitude when over threshold), Re-Enveloper reshapes envelope character itself \u2014 attack, sustain, decay \u2014 independently per band. The right tool for 'shorten the decay of this sustained sound so it behaves like a stab' or 'expand the transient on the highs only'.\n"
11927
13278
  },
11928
13279
  {
11929
13280
  "id": "redux",
@@ -13354,19 +14705,79 @@
13354
14705
  "category": "audio_effects",
13355
14706
  "subcategory": "spectral",
13356
14707
  "source": "native",
13357
- "enriched": false,
13358
- "character_tags": [],
13359
- "use_cases": [],
14708
+ "enriched": true,
14709
+ "character_tags": [
14710
+ "spectral",
14711
+ "halo",
14712
+ "reverb_like",
14713
+ "ethereal",
14714
+ "frozen",
14715
+ "frequency_selective"
14716
+ ],
14717
+ "use_cases": [
14718
+ "halo_pad",
14719
+ "ghost_atmosphere",
14720
+ "frozen_texture",
14721
+ "spectral_bed"
14722
+ ],
13360
14723
  "genre_affinity": {
13361
- "primary": [],
13362
- "secondary": []
14724
+ "primary": [
14725
+ "ambient",
14726
+ "deep_minimal",
14727
+ "experimental",
14728
+ "drone"
14729
+ ],
14730
+ "secondary": [
14731
+ "dub_techno",
14732
+ "cinematic"
14733
+ ]
13363
14734
  },
13364
14735
  "self_contained": true,
13365
- "key_parameters": [],
14736
+ "key_parameters": [
14737
+ {
14738
+ "name": "Frequency Range",
14739
+ "description": "Low and high cutoff of the blurred band. Narrow ranges produce pitched halos; wide ranges produce reverb-like wash."
14740
+ },
14741
+ {
14742
+ "name": "Halo (Grain Length)",
14743
+ "description": "How long each spectral grain lingers. Short = shimmer; long = sustained bed.",
14744
+ "range": [
14745
+ 50,
14746
+ 5000
14747
+ ],
14748
+ "unit": "ms",
14749
+ "type": "float",
14750
+ "sweet_spots": {
14751
+ "subtle_shimmer": 200,
14752
+ "sustained_bed": 2000
14753
+ }
14754
+ },
14755
+ {
14756
+ "name": "Residual",
14757
+ "description": "Amount of dry signal that passes through. 0 = fully wet halo, 1 = hear the source clearly.",
14758
+ "range": [
14759
+ 0.0,
14760
+ 1.0
14761
+ ],
14762
+ "type": "float"
14763
+ },
14764
+ {
14765
+ "name": "Freeze",
14766
+ "description": "Holds the current spectral content. Manual or MIDI-triggered.",
14767
+ "type": "boolean"
14768
+ }
14769
+ ],
13366
14770
  "pairs_well_with": [],
13367
14771
  "starter_recipes": [],
13368
- "gotchas": [],
13369
- "health_flags": []
14772
+ "gotchas": [
14773
+ "Halo times above 3000ms accumulate CPU \u2014 freeze the track after print",
14774
+ "Narrow frequency ranges at high levels self-oscillate \u2014 keep Residual > 0 or compress"
14775
+ ],
14776
+ "health_flags": [],
14777
+ "pack": "Creative Extensions",
14778
+ "introduced_in": "10.0",
14779
+ "complexity": "intermediate",
14780
+ "sonic_description": "Spectral halo/reverb hybrid. Creates reverb-like textures by blurring user-defined frequency ranges into dense clouds of delayed/smeared harmonic content. Not a real reverb \u2014 no IR \u2014 but the result behaves like one, with more control over which frequency ranges get haloed. Freeze button holds the current spectral content indefinitely. The tool for ethereal pads from sparse sources and alien textures that don't sound like rooms.\n"
13370
14781
  },
13371
14782
  {
13372
14783
  "id": "spectral_resonator",
@@ -13973,19 +15384,57 @@
13973
15384
  "category": "audio_effects",
13974
15385
  "subcategory": "spatial",
13975
15386
  "source": "native",
13976
- "enriched": false,
13977
- "character_tags": [],
13978
- "use_cases": [],
15387
+ "enriched": true,
15388
+ "character_tags": [
15389
+ "multichannel",
15390
+ "spatial",
15391
+ "quad",
15392
+ "surround"
15393
+ ],
15394
+ "use_cases": [
15395
+ "installation",
15396
+ "quad_club",
15397
+ "cinema",
15398
+ "multichannel_studio"
15399
+ ],
13979
15400
  "genre_affinity": {
13980
- "primary": [],
13981
- "secondary": []
15401
+ "primary": [
15402
+ "ambient_installation",
15403
+ "cinema"
15404
+ ],
15405
+ "secondary": [
15406
+ "experimental"
15407
+ ]
13982
15408
  },
13983
15409
  "self_contained": true,
13984
- "key_parameters": [],
15410
+ "key_parameters": [
15411
+ {
15412
+ "name": "Channel Layout",
15413
+ "description": "4.0, 5.1, 7.1, 8.0 \u2014 select target format."
15414
+ },
15415
+ {
15416
+ "name": "XY Pan",
15417
+ "description": "2D pan position."
15418
+ },
15419
+ {
15420
+ "name": "Rotate",
15421
+ "description": "Auto-rotate the signal around the listening position."
15422
+ },
15423
+ {
15424
+ "name": "Focus / Spread",
15425
+ "description": "Width of the source in the field."
15426
+ }
15427
+ ],
13985
15428
  "pairs_well_with": [],
13986
15429
  "starter_recipes": [],
13987
- "gotchas": [],
13988
- "health_flags": []
15430
+ "gotchas": [
15431
+ "Stereo monitoring shows only a downmix \u2014 impossible to audition properly without a multichannel setup"
15432
+ ],
15433
+ "health_flags": [],
15434
+ "pack": "Surround Panner",
15435
+ "introduced_in": "11.0",
15436
+ "complexity": "intermediate",
15437
+ "sonic_description": "Multichannel spatial panner. 4/6/8-channel speaker setups, 8 presets. Not Ambisonic \u2014 discrete-channel panning. Only relevant for multi-channel output setups (installation, quad+ club, cinema). In stereo studio work, offers minimal benefit.\n"
13989
15438
  },
13990
15439
  {
13991
15440
  "id": "tuner",
@@ -14301,19 +15750,56 @@
14301
15750
  "category": "audio_effects",
14302
15751
  "subcategory": "utility",
14303
15752
  "source": "native",
14304
- "enriched": false,
14305
- "character_tags": [],
14306
- "use_cases": [],
15753
+ "enriched": true,
15754
+ "character_tags": [
15755
+ "snapshot",
15756
+ "morph",
15757
+ "quantized",
15758
+ "state_recall"
15759
+ ],
15760
+ "use_cases": [
15761
+ "chain_morph",
15762
+ "live_recall",
15763
+ "section_transition",
15764
+ "effect_evolution"
15765
+ ],
14307
15766
  "genre_affinity": {
14308
- "primary": [],
14309
- "secondary": []
15767
+ "primary": [
15768
+ "deep_minimal",
15769
+ "microhouse",
15770
+ "electronic_live"
15771
+ ],
15772
+ "secondary": [
15773
+ "all"
15774
+ ]
14310
15775
  },
14311
15776
  "self_contained": true,
14312
- "key_parameters": [],
15777
+ "key_parameters": [
15778
+ {
15779
+ "name": "Snapshot Slots",
15780
+ "description": "Store up to N states. Each slot captures every parameter's value."
15781
+ },
15782
+ {
15783
+ "name": "Morph Time",
15784
+ "description": "How long the interpolation between snapshots takes."
15785
+ },
15786
+ {
15787
+ "name": "Quantization",
15788
+ "description": "Snap morph to bar / beat / scene boundary."
15789
+ },
15790
+ {
15791
+ "name": "Selective Inclusion",
15792
+ "description": "Mark which parameters participate in each snapshot \u2014 exclude the ones you don't want to morph."
15793
+ }
15794
+ ],
14313
15795
  "pairs_well_with": [],
14314
15796
  "starter_recipes": [],
14315
15797
  "gotchas": [],
14316
- "health_flags": []
15798
+ "health_flags": [],
15799
+ "pack": "Performance Pack",
15800
+ "introduced_in": "11.0",
15801
+ "complexity": "intermediate",
15802
+ "sonic_description": "Snapshot management from Performance Pack (Iftah). Captures any device chain state or clip state and morphs between snapshots, quantized to a musical boundary. The studio weapon: save 5 variations of a chord stab's effect chain, clip-trigger morphing between them = gradual evolution over 8-16 bars without 50 automation lanes. This is how you get the 'chord-is-different-every-time' Villalobos behavior programmatically.\n"
14317
15803
  },
14318
15804
  {
14319
15805
  "id": "vector_delay",
@@ -14548,19 +16034,52 @@
14548
16034
  "category": "audio_effects",
14549
16035
  "subcategory": "modulation",
14550
16036
  "source": "native",
14551
- "enriched": false,
14552
- "character_tags": [],
14553
- "use_cases": [],
16037
+ "enriched": true,
16038
+ "character_tags": [
16039
+ "particle_physics",
16040
+ "coupled_modulation",
16041
+ "multi_destination",
16042
+ "generative"
16043
+ ],
16044
+ "use_cases": [
16045
+ "coupled_modulation",
16046
+ "non_trivial_modulation",
16047
+ "physical_motion"
16048
+ ],
14554
16049
  "genre_affinity": {
14555
- "primary": [],
14556
- "secondary": []
16050
+ "primary": [
16051
+ "experimental",
16052
+ "ambient",
16053
+ "deep_minimal"
16054
+ ],
16055
+ "secondary": [
16056
+ "idm",
16057
+ "sound_design"
16058
+ ]
14557
16059
  },
14558
16060
  "self_contained": true,
14559
- "key_parameters": [],
16061
+ "key_parameters": [
16062
+ {
16063
+ "name": "Particle Behavior",
16064
+ "description": "Gravity, friction, forces \u2014 defines how the particle moves."
16065
+ },
16066
+ {
16067
+ "name": "Destination Mappings",
16068
+ "description": "Route the particle's X/Y/velocity to multiple Live parameters."
16069
+ },
16070
+ {
16071
+ "name": "Depth per destination",
16072
+ "description": "How much the particle influences each destination."
16073
+ }
16074
+ ],
14560
16075
  "pairs_well_with": [],
14561
16076
  "starter_recipes": [],
14562
16077
  "gotchas": [],
14563
- "health_flags": []
16078
+ "health_flags": [],
16079
+ "pack": "Inspired by Nature",
16080
+ "introduced_in": "11.0",
16081
+ "complexity": "advanced",
16082
+ "sonic_description": "Particle-physics modulation router (Inspired by Nature, Dillon Bastan). One particle drives multiple parameter destinations simultaneously. Unlike an LFO (one source \u2192 one destination), Vector Map lets a single particle's position control filter cutoff AND send level AND reverb decay at once \u2014 coupled modulation that LFOs cannot produce. Essential for organic, physically-coherent sound design.\n"
14564
16083
  },
14565
16084
  {
14566
16085
  "id": "vinyl_distortion",
@@ -15786,19 +17305,59 @@
15786
17305
  "category": "midi_effects",
15787
17306
  "subcategory": "other",
15788
17307
  "source": "native",
15789
- "enriched": false,
15790
- "character_tags": [],
15791
- "use_cases": [],
17308
+ "enriched": true,
17309
+ "character_tags": [
17310
+ "chord",
17311
+ "voicing",
17312
+ "library",
17313
+ "mpe"
17314
+ ],
17315
+ "use_cases": [
17316
+ "quick_chords",
17317
+ "voicing_variety",
17318
+ "harmonic_sketch"
17319
+ ],
15792
17320
  "genre_affinity": {
15793
- "primary": [],
15794
- "secondary": []
17321
+ "primary": [
17322
+ "gospel",
17323
+ "trap",
17324
+ "rnb",
17325
+ "jazz",
17326
+ "classical",
17327
+ "house",
17328
+ "post_rock"
17329
+ ],
17330
+ "secondary": [
17331
+ "all"
17332
+ ]
15795
17333
  },
15796
17334
  "self_contained": true,
15797
- "key_parameters": [],
17335
+ "key_parameters": [
17336
+ {
17337
+ "name": "Chord Set",
17338
+ "description": "52 sets organized by genre/feel."
17339
+ },
17340
+ {
17341
+ "name": "Root Note",
17342
+ "description": "Transpose the current voicing."
17343
+ },
17344
+ {
17345
+ "name": "Voicing Variation",
17346
+ "description": "Swap inversions and voicings within the selected set."
17347
+ },
17348
+ {
17349
+ "name": "MPE Modulation",
17350
+ "description": "Per-note pitch/velocity from an MPE controller."
17351
+ }
17352
+ ],
15798
17353
  "pairs_well_with": [],
15799
17354
  "starter_recipes": [],
15800
17355
  "gotchas": [],
15801
- "health_flags": []
17356
+ "health_flags": [],
17357
+ "pack": "Expressive Chords",
17358
+ "introduced_in": "11.0",
17359
+ "complexity": "beginner",
17360
+ "sonic_description": "MIDI chord library + voicing engine. 52 chord sets across gospel, trap, R&B, jazz, classical, house, post-rock. MPE-ready \u2014 per-note pitch-bend, dynamics, articulation. Trigger a root note, get a full voicing; use MPE to bend individual voice members.\n"
15802
17361
  },
15803
17362
  {
15804
17363
  "id": "melodic_steps",
@@ -15979,19 +17538,97 @@
15979
17538
  "category": "midi_effects",
15980
17539
  "subcategory": "other",
15981
17540
  "source": "native",
15982
- "enriched": false,
15983
- "character_tags": [],
15984
- "use_cases": [],
17541
+ "enriched": true,
17542
+ "character_tags": [
17543
+ "microtonal",
17544
+ "scale",
17545
+ "shapeshifting",
17546
+ "polyphonic",
17547
+ "mpe"
17548
+ ],
17549
+ "use_cases": [
17550
+ "microtonal_melody",
17551
+ "scale_morph",
17552
+ "drone_tuning",
17553
+ "chord_recasting"
17554
+ ],
15985
17555
  "genre_affinity": {
15986
- "primary": [],
15987
- "secondary": []
17556
+ "primary": [
17557
+ "ambient",
17558
+ "experimental",
17559
+ "deep_minimal",
17560
+ "drone"
17561
+ ],
17562
+ "secondary": [
17563
+ "microhouse",
17564
+ "jazz_fusion",
17565
+ "cinematic"
17566
+ ]
15988
17567
  },
15989
17568
  "self_contained": true,
15990
- "key_parameters": [],
17569
+ "key_parameters": [
17570
+ {
17571
+ "name": "Scale (Deck A / Deck B)",
17572
+ "description": "Two independent scale slots. Load .scl files by drag-drop. Blend between them via the Blend slider.",
17573
+ "type": "composite"
17574
+ },
17575
+ {
17576
+ "name": "Blend",
17577
+ "description": "Morph between Deck A and Deck B scales in real-time. Automate over 16+ bars for harmonic drift.",
17578
+ "range": [
17579
+ 0.0,
17580
+ 1.0
17581
+ ],
17582
+ "type": "float",
17583
+ "sweet_spots": {
17584
+ "pure_deck_a": 0.0,
17585
+ "midpoint_morph": 0.5,
17586
+ "automated_drift": "0.0 \u2192 1.0 over 32 bars"
17587
+ }
17588
+ },
17589
+ {
17590
+ "name": "Reference Pitch",
17591
+ "description": "The reference MIDI note that maps to 'unity' in the scale. Usually 60 (middle C) or 69 (A4 = 440Hz).",
17592
+ "range": [
17593
+ 0,
17594
+ 127
17595
+ ],
17596
+ "type": "int"
17597
+ },
17598
+ {
17599
+ "name": "Base Frequency",
17600
+ "description": "Frequency assigned to the reference pitch. 440Hz standard; try 432Hz for conspiratorial-warmth vibes.",
17601
+ "range": [
17602
+ 200,
17603
+ 600
17604
+ ],
17605
+ "unit": "Hz",
17606
+ "type": "float"
17607
+ },
17608
+ {
17609
+ "name": "Lead / Follow",
17610
+ "description": "In Lead mode, broadcasts its scale via Live's state. In Follow mode, receives from a Lead instance. Use to sync scales across instruments.",
17611
+ "range": [
17612
+ "Lead",
17613
+ "Follow",
17614
+ "None"
17615
+ ],
17616
+ "type": "enum"
17617
+ }
17618
+ ],
15991
17619
  "pairs_well_with": [],
15992
17620
  "starter_recipes": [],
15993
- "gotchas": [],
15994
- "health_flags": []
17621
+ "gotchas": [
17622
+ "Scale must be loaded BEFORE the downstream instrument receives notes \u2014 otherwise Live plays equal-tempered.",
17623
+ "MPE works only when the downstream instrument is MPE-capable (Meld, Wavetable with MPE on, Granulator III, etc.).",
17624
+ "Lead/Follow sync requires Live 12.1+.",
17625
+ "Some instruments ignore pitch bend beyond \u00b12 semitones \u2014 check the instrument's pitch-bend range before loading exotic scales."
17626
+ ],
17627
+ "health_flags": [],
17628
+ "pack": "Microtuner",
17629
+ "introduced_in": "12.0",
17630
+ "complexity": "intermediate",
17631
+ "sonic_description": "MIDI device (Max for Live) that applies microtonal tunings to downstream instruments. Imports Scala (.scl) files \u2014 the standard format for microtonal tunings, freely available from the Huygens-Fokker archive. Supports pitch count up to 128, arbitrary octave ratios, Lead/Follow mode to sync scales across multiple Microtuner instances, polyphonic playback, MPE compatibility. Real-time blend-two-scales slider for shapeshifting melodies and recasted chords.\n"
15995
17632
  },
15996
17633
  {
15997
17634
  "id": "midi_effect_rack",
@@ -16913,19 +18550,51 @@
16913
18550
  "category": "midi_effects",
16914
18551
  "subcategory": "other",
16915
18552
  "source": "native",
16916
- "enriched": false,
16917
- "character_tags": [],
16918
- "use_cases": [],
18553
+ "enriched": true,
18554
+ "character_tags": [
18555
+ "polyrhythmic",
18556
+ "rotating",
18557
+ "generative",
18558
+ "drum_programming"
18559
+ ],
18560
+ "use_cases": [
18561
+ "polymetric_drums",
18562
+ "techno_groove",
18563
+ "idm_pattern"
18564
+ ],
16919
18565
  "genre_affinity": {
16920
- "primary": [],
16921
- "secondary": []
18566
+ "primary": [
18567
+ "techno",
18568
+ "idm",
18569
+ "deep_minimal"
18570
+ ],
18571
+ "secondary": [
18572
+ "all_electronic"
18573
+ ]
16922
18574
  },
16923
18575
  "self_contained": true,
16924
- "key_parameters": [],
18576
+ "key_parameters": [
18577
+ {
18578
+ "name": "Ring Size",
18579
+ "description": "Number of steps in the ring (e.g., 16, 12, 7)."
18580
+ },
18581
+ {
18582
+ "name": "Pulse Count",
18583
+ "description": "Beats distributed around the ring. Classic Euclidean distribution."
18584
+ },
18585
+ {
18586
+ "name": "Rotation",
18587
+ "description": "Shift the starting position of the pattern on the ring."
18588
+ }
18589
+ ],
16925
18590
  "pairs_well_with": [],
16926
18591
  "starter_recipes": [],
16927
18592
  "gotchas": [],
16928
- "health_flags": []
18593
+ "health_flags": [],
18594
+ "pack": "CV Tools",
18595
+ "introduced_in": "10.0",
18596
+ "complexity": "intermediate",
18597
+ "sonic_description": "M4L polyrhythmic MIDI generator from CV Tools. Originally a modular CV-triggers tool, but operates as a standalone MIDI generator inside Live. Generates rotating polyrhythmic patterns across multiple tracks or drum-rack pads. One of the most under-utilized M4L devices for complex techno / IDM groove programming.\n"
16929
18598
  },
16930
18599
  {
16931
18600
  "id": "scale",
@@ -17118,19 +18787,58 @@
17118
18787
  "category": "midi_effects",
17119
18788
  "subcategory": "other",
17120
18789
  "source": "native",
17121
- "enriched": false,
17122
- "character_tags": [],
17123
- "use_cases": [],
18790
+ "enriched": true,
18791
+ "character_tags": [
18792
+ "polymetric",
18793
+ "asymmetric",
18794
+ "condition_based",
18795
+ "modular_style"
18796
+ ],
18797
+ "use_cases": [
18798
+ "polymetric_melody",
18799
+ "asymmetric_bass",
18800
+ "hypnotic_pattern",
18801
+ "generative_loop"
18802
+ ],
17124
18803
  "genre_affinity": {
17125
- "primary": [],
17126
- "secondary": []
18804
+ "primary": [
18805
+ "deep_minimal",
18806
+ "microhouse",
18807
+ "techno",
18808
+ "idm"
18809
+ ],
18810
+ "secondary": [
18811
+ "experimental",
18812
+ "generative"
18813
+ ]
17127
18814
  },
17128
18815
  "self_contained": true,
17129
- "key_parameters": [],
18816
+ "key_parameters": [
18817
+ {
18818
+ "name": "Per-Lane Step Count",
18819
+ "description": "Each of up to ~8 lanes has its own step length (1-16). Non-coincident values = polymeter."
18820
+ },
18821
+ {
18822
+ "name": "Per-Lane Direction",
18823
+ "description": "Forward / Backward / Ping-Pong / Random per lane."
18824
+ },
18825
+ {
18826
+ "name": "Condition",
18827
+ "description": "Rule-based gating \u2014 fire on every Nth pass, after N fails, etc."
18828
+ },
18829
+ {
18830
+ "name": "Output Pitch / Velocity / Gate Length (per lane)",
18831
+ "description": "Independent control per lane."
18832
+ }
18833
+ ],
17130
18834
  "pairs_well_with": [],
17131
18835
  "starter_recipes": [],
17132
18836
  "gotchas": [],
17133
- "health_flags": []
18837
+ "health_flags": [],
18838
+ "pack": "Sequencers",
18839
+ "introduced_in": "11.0",
18840
+ "complexity": "intermediate",
18841
+ "sonic_description": "16-step sequencer with per-lane independent step length and direction \u2014 the polymetric secret weapon from the Sequencers pack. Set melody lane to 16 steps, rhythm lane to 15, bass lane to 11 \u2192 each lane progresses at its own rate \u2192 infinite non-repeating patterns from simple inputs. Condition feature adds rule-based triggering (every 3rd pass, etc.).\n"
17134
18842
  },
17135
18843
  {
17136
18844
  "id": "step_arp",
@@ -19421,19 +21129,104 @@
19421
21129
  "category": "sounds",
19422
21130
  "subcategory": "other",
19423
21131
  "source": "native",
19424
- "enriched": false,
19425
- "character_tags": [],
19426
- "use_cases": [],
21132
+ "enriched": true,
21133
+ "character_tags": [
21134
+ "drone",
21135
+ "microtonal",
21136
+ "sustained",
21137
+ "harmonic",
21138
+ "meditative",
21139
+ "evolving",
21140
+ "dark"
21141
+ ],
21142
+ "use_cases": [
21143
+ "drone_bed",
21144
+ "harmonic_atmosphere",
21145
+ "microtonal_pad",
21146
+ "ambient_bed",
21147
+ "tension_bed"
21148
+ ],
19427
21149
  "genre_affinity": {
19428
- "primary": [],
19429
- "secondary": []
21150
+ "primary": [
21151
+ "ambient",
21152
+ "deep_minimal",
21153
+ "dub_techno",
21154
+ "drone",
21155
+ "experimental"
21156
+ ],
21157
+ "secondary": [
21158
+ "cinematic",
21159
+ "dark_ambient",
21160
+ "microhouse"
21161
+ ]
19430
21162
  },
19431
21163
  "self_contained": true,
19432
- "key_parameters": [],
21164
+ "key_parameters": [
21165
+ {
21166
+ "name": "Tuning System",
21167
+ "description": "Selects the scale used to map voices. Each tuning produces a different harmonic flavor.",
21168
+ "range": [
21169
+ "Equal",
21170
+ "Just",
21171
+ "Pythagorean",
21172
+ "Solfeggio",
21173
+ "Pelog",
21174
+ "Indian"
21175
+ ],
21176
+ "type": "enum",
21177
+ "sweet_spots": {
21178
+ "deep_minimal_bed": "Just",
21179
+ "dark_meditation": "Solfeggio",
21180
+ "exotic_mystery": "Pelog"
21181
+ }
21182
+ },
21183
+ {
21184
+ "name": "Voice Count",
21185
+ "description": "How many of the 8 voices are active. Fewer voices = purer drone; more voices = denser harmonic cloud.",
21186
+ "range": [
21187
+ 1,
21188
+ 8
21189
+ ],
21190
+ "type": "int",
21191
+ "sweet_spots": {
21192
+ "sub_drone": 2,
21193
+ "full_cloud": 8
21194
+ }
21195
+ },
21196
+ {
21197
+ "name": "Per-voice pitch",
21198
+ "description": "Each voice has its own pitch assignment. Spread across the scale or stack on root for subtle detuned bed.",
21199
+ "type": "composite"
21200
+ },
21201
+ {
21202
+ "name": "Detune",
21203
+ "description": "Global detune amount. Low values (5-15 cents) give tape-warble; high values break into chord clouds.",
21204
+ "range": [
21205
+ 0.0,
21206
+ 100.0
21207
+ ],
21208
+ "unit": "cents",
21209
+ "type": "float"
21210
+ },
21211
+ {
21212
+ "name": "Amp Envelope",
21213
+ "description": "Long attack (5-10s) for slow-swell pads; short attack for staccato 'one note' hits.",
21214
+ "type": "composite"
21215
+ }
21216
+ ],
19433
21217
  "pairs_well_with": [],
19434
21218
  "starter_recipes": [],
19435
- "gotchas": [],
19436
- "health_flags": []
21219
+ "gotchas": [
21220
+ "All 8 voices at full level clip the output \u2014 use Voice Count or the internal level control",
21221
+ "Long attack envelopes don't trigger instantly \u2014 for stabs, use short attack or pre-gate",
21222
+ "Solfeggio frequencies are outside standard tuning \u2014 this is intentional; don't try to match to a song's key"
21223
+ ],
21224
+ "health_flags": [],
21225
+ "pack": "Drone Lab",
21226
+ "introduced_in": "12.0",
21227
+ "synthesis_type": "additive_drone",
21228
+ "complexity": "intermediate",
21229
+ "sonic_description": "8-voice Max for Live drone synth by Berlin-based Expert Math (shipped inside Drone Lab). Each voice has its own tuning assignment, and the device supports multiple tuning systems \u2014 Solfeggio frequencies, Pythagorean, Indonesian Pelog, Indian temperaments, plus equal and just intonation. Produces sustained harmonic drones with microtonal beating that equal- tempered synths architecturally cannot generate. The secret weapon for a harmonic bed that sits under a whole track at -30 dB and makes it sound like nothing else.\n"
19437
21230
  },
19438
21231
  {
19439
21232
  "id": "harp_concert_adg",
@@ -82616,19 +84409,71 @@
82616
84409
  "category": "user_library",
82617
84410
  "subcategory": "other",
82618
84411
  "source": "user_library",
82619
- "enriched": false,
82620
- "character_tags": [],
82621
- "use_cases": [],
84412
+ "enriched": true,
84413
+ "character_tags": [
84414
+ "multiband",
84415
+ "envelope_shaping",
84416
+ "transient",
84417
+ "sculpted"
84418
+ ],
84419
+ "use_cases": [
84420
+ "transient_shape",
84421
+ "decay_control",
84422
+ "per_band_dynamics",
84423
+ "micro_stab"
84424
+ ],
82622
84425
  "genre_affinity": {
82623
- "primary": [],
82624
- "secondary": []
84426
+ "primary": [
84427
+ "minimal",
84428
+ "dub_techno",
84429
+ "electronica"
84430
+ ],
84431
+ "secondary": [
84432
+ "all_genres"
84433
+ ]
82625
84434
  },
82626
84435
  "self_contained": true,
82627
- "key_parameters": [],
84436
+ "key_parameters": [
84437
+ {
84438
+ "name": "Band Split Frequencies",
84439
+ "description": "Low/Mid and Mid/High crossover points in Hz.",
84440
+ "range": [
84441
+ 20,
84442
+ 20000
84443
+ ],
84444
+ "unit": "Hz",
84445
+ "type": "float"
84446
+ },
84447
+ {
84448
+ "name": "C/E Factor (per band)",
84449
+ "description": "Compression (positive) or Expansion (negative) factor per band.",
84450
+ "range": [
84451
+ -5.0,
84452
+ 5.0
84453
+ ],
84454
+ "type": "float",
84455
+ "sweet_spots": {
84456
+ "subtle_expand": 1.5,
84457
+ "aggressive_stab": 3.0,
84458
+ "decay_tightening": -2.0
84459
+ }
84460
+ },
84461
+ {
84462
+ "name": "Attack / Release (per band)",
84463
+ "description": "Envelope-shape time constants for each band independently."
84464
+ }
84465
+ ],
82628
84466
  "pairs_well_with": [],
82629
84467
  "starter_recipes": [],
82630
- "gotchas": [],
82631
- "health_flags": []
84468
+ "gotchas": [
84469
+ "Expansion factors above 4.0 can cause clipping \u2014 compensate output gain.",
84470
+ "Crossover bands overlap by ~6dB \u2014 not a surgical splitter."
84471
+ ],
84472
+ "health_flags": [],
84473
+ "pack": "Creative Extensions",
84474
+ "introduced_in": "10.0",
84475
+ "complexity": "intermediate",
84476
+ "sonic_description": "Multiband envelope processor with three adjustable frequency bands. Unlike compression (which reduces amplitude when over threshold), Re-Enveloper reshapes envelope character itself \u2014 attack, sustain, decay \u2014 independently per band. The right tool for 'shorten the decay of this sustained sound so it behaves like a stab' or 'expand the transient on the highs only'.\n"
82632
84477
  },
82633
84478
  {
82634
84479
  "id": "thomash_amplitude_receiver",
@@ -82763,19 +84608,82 @@
82763
84608
  "category": "user_library",
82764
84609
  "subcategory": "other",
82765
84610
  "source": "user_library",
82766
- "enriched": false,
82767
- "character_tags": [],
82768
- "use_cases": [],
84611
+ "enriched": true,
84612
+ "character_tags": [
84613
+ "pitched",
84614
+ "glitchy",
84615
+ "reversed",
84616
+ "randomized",
84617
+ "micro_stutter"
84618
+ ],
84619
+ "use_cases": [
84620
+ "akufen_stutter",
84621
+ "pitched_ghost",
84622
+ "reverse_echo",
84623
+ "textural_delay"
84624
+ ],
82769
84625
  "genre_affinity": {
82770
- "primary": [],
82771
- "secondary": []
84626
+ "primary": [
84627
+ "microhouse",
84628
+ "deep_minimal",
84629
+ "idm",
84630
+ "experimental"
84631
+ ],
84632
+ "secondary": [
84633
+ "dub_techno",
84634
+ "electronica"
84635
+ ]
82772
84636
  },
82773
84637
  "self_contained": true,
82774
- "key_parameters": [],
84638
+ "key_parameters": [
84639
+ {
84640
+ "name": "Transpose",
84641
+ "description": "Pitch shift in semitones + cents on the delayed signal.",
84642
+ "range": [
84643
+ -24,
84644
+ 24
84645
+ ],
84646
+ "unit": "st",
84647
+ "type": "int"
84648
+ },
84649
+ {
84650
+ "name": "Delay Time",
84651
+ "description": "Delay in ms or tempo-synced subdivisions."
84652
+ },
84653
+ {
84654
+ "name": "Feedback",
84655
+ "description": "Pitched echo feedback. Cascading when transpose is non-zero.",
84656
+ "range": [
84657
+ 0.0,
84658
+ 1.0
84659
+ ],
84660
+ "type": "float"
84661
+ },
84662
+ {
84663
+ "name": "Reverse",
84664
+ "description": "Reverse-plays the delay buffer.",
84665
+ "type": "boolean"
84666
+ },
84667
+ {
84668
+ "name": "Randomize",
84669
+ "description": "Randomizes pitch and/or reverse per repeat. The Villalobos-texture parameter.",
84670
+ "range": [
84671
+ 0.0,
84672
+ 1.0
84673
+ ],
84674
+ "type": "float"
84675
+ }
84676
+ ],
82775
84677
  "pairs_well_with": [],
82776
84678
  "starter_recipes": [],
82777
- "gotchas": [],
82778
- "health_flags": []
84679
+ "gotchas": [
84680
+ "Randomize above 0.8 can produce notes wildly out of key \u2014 gate with key-detection first if harmony matters."
84681
+ ],
84682
+ "health_flags": [],
84683
+ "pack": "Creative Extensions",
84684
+ "introduced_in": "10.0",
84685
+ "complexity": "beginner",
84686
+ "sonic_description": "Versatile pitch-shifting delay for Creative Extensions. Combines transposition, reverse, feedback, and randomization on a single delay line. Lighter-weight companion to PitchLoop89 \u2014 less of a spatial architect, more of a per-sound treatment for pitched echoes and random reversal textures. The go-to for Akufen-style micro-stutter on hats and the random-reverse pitched ghosts that Villalobos uses on every track.\n"
82779
84687
  },
82780
84688
  {
82781
84689
  "id": "ml_distance",
@@ -83107,19 +85015,79 @@
83107
85015
  "category": "user_library",
83108
85016
  "subcategory": "other",
83109
85017
  "source": "user_library",
83110
- "enriched": false,
83111
- "character_tags": [],
83112
- "use_cases": [],
85018
+ "enriched": true,
85019
+ "character_tags": [
85020
+ "spectral",
85021
+ "halo",
85022
+ "reverb_like",
85023
+ "ethereal",
85024
+ "frozen",
85025
+ "frequency_selective"
85026
+ ],
85027
+ "use_cases": [
85028
+ "halo_pad",
85029
+ "ghost_atmosphere",
85030
+ "frozen_texture",
85031
+ "spectral_bed"
85032
+ ],
83113
85033
  "genre_affinity": {
83114
- "primary": [],
83115
- "secondary": []
85034
+ "primary": [
85035
+ "ambient",
85036
+ "deep_minimal",
85037
+ "experimental",
85038
+ "drone"
85039
+ ],
85040
+ "secondary": [
85041
+ "dub_techno",
85042
+ "cinematic"
85043
+ ]
83116
85044
  },
83117
85045
  "self_contained": true,
83118
- "key_parameters": [],
85046
+ "key_parameters": [
85047
+ {
85048
+ "name": "Frequency Range",
85049
+ "description": "Low and high cutoff of the blurred band. Narrow ranges produce pitched halos; wide ranges produce reverb-like wash."
85050
+ },
85051
+ {
85052
+ "name": "Halo (Grain Length)",
85053
+ "description": "How long each spectral grain lingers. Short = shimmer; long = sustained bed.",
85054
+ "range": [
85055
+ 50,
85056
+ 5000
85057
+ ],
85058
+ "unit": "ms",
85059
+ "type": "float",
85060
+ "sweet_spots": {
85061
+ "subtle_shimmer": 200,
85062
+ "sustained_bed": 2000
85063
+ }
85064
+ },
85065
+ {
85066
+ "name": "Residual",
85067
+ "description": "Amount of dry signal that passes through. 0 = fully wet halo, 1 = hear the source clearly.",
85068
+ "range": [
85069
+ 0.0,
85070
+ 1.0
85071
+ ],
85072
+ "type": "float"
85073
+ },
85074
+ {
85075
+ "name": "Freeze",
85076
+ "description": "Holds the current spectral content. Manual or MIDI-triggered.",
85077
+ "type": "boolean"
85078
+ }
85079
+ ],
83119
85080
  "pairs_well_with": [],
83120
85081
  "starter_recipes": [],
83121
- "gotchas": [],
83122
- "health_flags": []
85082
+ "gotchas": [
85083
+ "Halo times above 3000ms accumulate CPU \u2014 freeze the track after print",
85084
+ "Narrow frequency ranges at high levels self-oscillate \u2014 keep Residual > 0 or compress"
85085
+ ],
85086
+ "health_flags": [],
85087
+ "pack": "Creative Extensions",
85088
+ "introduced_in": "10.0",
85089
+ "complexity": "intermediate",
85090
+ "sonic_description": "Spectral halo/reverb hybrid. Creates reverb-like textures by blurring user-defined frequency ranges into dense clouds of delayed/smeared harmonic content. Not a real reverb \u2014 no IR \u2014 but the result behaves like one, with more control over which frequency ranges get haloed. Freeze button holds the current spectral content indefinitely. The tool for ethereal pads from sparse sources and alien textures that don't sound like rooms.\n"
83123
85091
  },
83124
85092
  {
83125
85093
  "id": "color_limiter",
@@ -83520,19 +85488,82 @@
83520
85488
  "category": "user_library",
83521
85489
  "subcategory": "other",
83522
85490
  "source": "user_library",
83523
- "enriched": false,
83524
- "character_tags": [],
83525
- "use_cases": [],
85491
+ "enriched": true,
85492
+ "character_tags": [
85493
+ "pitched",
85494
+ "glitchy",
85495
+ "reversed",
85496
+ "randomized",
85497
+ "micro_stutter"
85498
+ ],
85499
+ "use_cases": [
85500
+ "akufen_stutter",
85501
+ "pitched_ghost",
85502
+ "reverse_echo",
85503
+ "textural_delay"
85504
+ ],
83526
85505
  "genre_affinity": {
83527
- "primary": [],
83528
- "secondary": []
85506
+ "primary": [
85507
+ "microhouse",
85508
+ "deep_minimal",
85509
+ "idm",
85510
+ "experimental"
85511
+ ],
85512
+ "secondary": [
85513
+ "dub_techno",
85514
+ "electronica"
85515
+ ]
83529
85516
  },
83530
85517
  "self_contained": true,
83531
- "key_parameters": [],
85518
+ "key_parameters": [
85519
+ {
85520
+ "name": "Transpose",
85521
+ "description": "Pitch shift in semitones + cents on the delayed signal.",
85522
+ "range": [
85523
+ -24,
85524
+ 24
85525
+ ],
85526
+ "unit": "st",
85527
+ "type": "int"
85528
+ },
85529
+ {
85530
+ "name": "Delay Time",
85531
+ "description": "Delay in ms or tempo-synced subdivisions."
85532
+ },
85533
+ {
85534
+ "name": "Feedback",
85535
+ "description": "Pitched echo feedback. Cascading when transpose is non-zero.",
85536
+ "range": [
85537
+ 0.0,
85538
+ 1.0
85539
+ ],
85540
+ "type": "float"
85541
+ },
85542
+ {
85543
+ "name": "Reverse",
85544
+ "description": "Reverse-plays the delay buffer.",
85545
+ "type": "boolean"
85546
+ },
85547
+ {
85548
+ "name": "Randomize",
85549
+ "description": "Randomizes pitch and/or reverse per repeat. The Villalobos-texture parameter.",
85550
+ "range": [
85551
+ 0.0,
85552
+ 1.0
85553
+ ],
85554
+ "type": "float"
85555
+ }
85556
+ ],
83532
85557
  "pairs_well_with": [],
83533
85558
  "starter_recipes": [],
83534
- "gotchas": [],
83535
- "health_flags": []
85559
+ "gotchas": [
85560
+ "Randomize above 0.8 can produce notes wildly out of key \u2014 gate with key-detection first if harmony matters."
85561
+ ],
85562
+ "health_flags": [],
85563
+ "pack": "Creative Extensions",
85564
+ "introduced_in": "10.0",
85565
+ "complexity": "beginner",
85566
+ "sonic_description": "Versatile pitch-shifting delay for Creative Extensions. Combines transposition, reverse, feedback, and randomization on a single delay line. Lighter-weight companion to PitchLoop89 \u2014 less of a spatial architect, more of a per-sound treatment for pitched echoes and random reversal textures. The go-to for Akufen-style micro-stutter on hats and the random-reverse pitched ghosts that Villalobos uses on every track.\n"
83536
85567
  },
83537
85568
  {
83538
85569
  "id": "re_enveloper",
@@ -83541,19 +85572,71 @@
83541
85572
  "category": "user_library",
83542
85573
  "subcategory": "other",
83543
85574
  "source": "user_library",
83544
- "enriched": false,
83545
- "character_tags": [],
83546
- "use_cases": [],
85575
+ "enriched": true,
85576
+ "character_tags": [
85577
+ "multiband",
85578
+ "envelope_shaping",
85579
+ "transient",
85580
+ "sculpted"
85581
+ ],
85582
+ "use_cases": [
85583
+ "transient_shape",
85584
+ "decay_control",
85585
+ "per_band_dynamics",
85586
+ "micro_stab"
85587
+ ],
83547
85588
  "genre_affinity": {
83548
- "primary": [],
83549
- "secondary": []
85589
+ "primary": [
85590
+ "minimal",
85591
+ "dub_techno",
85592
+ "electronica"
85593
+ ],
85594
+ "secondary": [
85595
+ "all_genres"
85596
+ ]
83550
85597
  },
83551
85598
  "self_contained": true,
83552
- "key_parameters": [],
85599
+ "key_parameters": [
85600
+ {
85601
+ "name": "Band Split Frequencies",
85602
+ "description": "Low/Mid and Mid/High crossover points in Hz.",
85603
+ "range": [
85604
+ 20,
85605
+ 20000
85606
+ ],
85607
+ "unit": "Hz",
85608
+ "type": "float"
85609
+ },
85610
+ {
85611
+ "name": "C/E Factor (per band)",
85612
+ "description": "Compression (positive) or Expansion (negative) factor per band.",
85613
+ "range": [
85614
+ -5.0,
85615
+ 5.0
85616
+ ],
85617
+ "type": "float",
85618
+ "sweet_spots": {
85619
+ "subtle_expand": 1.5,
85620
+ "aggressive_stab": 3.0,
85621
+ "decay_tightening": -2.0
85622
+ }
85623
+ },
85624
+ {
85625
+ "name": "Attack / Release (per band)",
85626
+ "description": "Envelope-shape time constants for each band independently."
85627
+ }
85628
+ ],
83553
85629
  "pairs_well_with": [],
83554
85630
  "starter_recipes": [],
83555
- "gotchas": [],
83556
- "health_flags": []
85631
+ "gotchas": [
85632
+ "Expansion factors above 4.0 can cause clipping \u2014 compensate output gain.",
85633
+ "Crossover bands overlap by ~6dB \u2014 not a surgical splitter."
85634
+ ],
85635
+ "health_flags": [],
85636
+ "pack": "Creative Extensions",
85637
+ "introduced_in": "10.0",
85638
+ "complexity": "intermediate",
85639
+ "sonic_description": "Multiband envelope processor with three adjustable frequency bands. Unlike compression (which reduces amplitude when over threshold), Re-Enveloper reshapes envelope character itself \u2014 attack, sustain, decay \u2014 independently per band. The right tool for 'shorten the decay of this sustained sound so it behaves like a stab' or 'expand the transient on the highs only'.\n"
83557
85640
  },
83558
85641
  {
83559
85642
  "id": "spectral_blur",
@@ -83562,19 +85645,79 @@
83562
85645
  "category": "user_library",
83563
85646
  "subcategory": "other",
83564
85647
  "source": "user_library",
83565
- "enriched": false,
83566
- "character_tags": [],
83567
- "use_cases": [],
85648
+ "enriched": true,
85649
+ "character_tags": [
85650
+ "spectral",
85651
+ "halo",
85652
+ "reverb_like",
85653
+ "ethereal",
85654
+ "frozen",
85655
+ "frequency_selective"
85656
+ ],
85657
+ "use_cases": [
85658
+ "halo_pad",
85659
+ "ghost_atmosphere",
85660
+ "frozen_texture",
85661
+ "spectral_bed"
85662
+ ],
83568
85663
  "genre_affinity": {
83569
- "primary": [],
83570
- "secondary": []
85664
+ "primary": [
85665
+ "ambient",
85666
+ "deep_minimal",
85667
+ "experimental",
85668
+ "drone"
85669
+ ],
85670
+ "secondary": [
85671
+ "dub_techno",
85672
+ "cinematic"
85673
+ ]
83571
85674
  },
83572
85675
  "self_contained": true,
83573
- "key_parameters": [],
85676
+ "key_parameters": [
85677
+ {
85678
+ "name": "Frequency Range",
85679
+ "description": "Low and high cutoff of the blurred band. Narrow ranges produce pitched halos; wide ranges produce reverb-like wash."
85680
+ },
85681
+ {
85682
+ "name": "Halo (Grain Length)",
85683
+ "description": "How long each spectral grain lingers. Short = shimmer; long = sustained bed.",
85684
+ "range": [
85685
+ 50,
85686
+ 5000
85687
+ ],
85688
+ "unit": "ms",
85689
+ "type": "float",
85690
+ "sweet_spots": {
85691
+ "subtle_shimmer": 200,
85692
+ "sustained_bed": 2000
85693
+ }
85694
+ },
85695
+ {
85696
+ "name": "Residual",
85697
+ "description": "Amount of dry signal that passes through. 0 = fully wet halo, 1 = hear the source clearly.",
85698
+ "range": [
85699
+ 0.0,
85700
+ 1.0
85701
+ ],
85702
+ "type": "float"
85703
+ },
85704
+ {
85705
+ "name": "Freeze",
85706
+ "description": "Holds the current spectral content. Manual or MIDI-triggered.",
85707
+ "type": "boolean"
85708
+ }
85709
+ ],
83574
85710
  "pairs_well_with": [],
83575
85711
  "starter_recipes": [],
83576
- "gotchas": [],
83577
- "health_flags": []
85712
+ "gotchas": [
85713
+ "Halo times above 3000ms accumulate CPU \u2014 freeze the track after print",
85714
+ "Narrow frequency ranges at high levels self-oscillate \u2014 keep Residual > 0 or compress"
85715
+ ],
85716
+ "health_flags": [],
85717
+ "pack": "Creative Extensions",
85718
+ "introduced_in": "10.0",
85719
+ "complexity": "intermediate",
85720
+ "sonic_description": "Spectral halo/reverb hybrid. Creates reverb-like textures by blurring user-defined frequency ranges into dense clouds of delayed/smeared harmonic content. Not a real reverb \u2014 no IR \u2014 but the result behaves like one, with more control over which frequency ranges get haloed. Freeze button holds the current spectral content indefinitely. The tool for ethereal pads from sparse sources and alien textures that don't sound like rooms.\n"
83578
85721
  },
83579
85722
  {
83580
85723
  "id": "mojo",
@@ -97440,19 +99583,143 @@
97440
99583
  "category": "max_for_live",
97441
99584
  "subcategory": "other",
97442
99585
  "source": "native",
97443
- "enriched": false,
97444
- "character_tags": [],
97445
- "use_cases": [],
99586
+ "enriched": true,
99587
+ "character_tags": [
99588
+ "performance",
99589
+ "overdub",
99590
+ "live",
99591
+ "tape_loop",
99592
+ "experimental"
99593
+ ],
99594
+ "use_cases": [
99595
+ "live_performance_looping",
99596
+ "studio_experiment_sample_yourself",
99597
+ "dub_style_tape_loop_emulation",
99598
+ "generative_composition_from_single_source"
99599
+ ],
97446
99600
  "genre_affinity": {
97447
- "primary": [],
97448
- "secondary": []
99601
+ "primary": [
99602
+ "indie",
99603
+ "folk",
99604
+ "experimental",
99605
+ "dub"
99606
+ ],
99607
+ "secondary": [
99608
+ "ambient",
99609
+ "live_performance",
99610
+ "electronic"
99611
+ ]
97449
99612
  },
97450
99613
  "self_contained": true,
97451
- "key_parameters": [],
97452
- "pairs_well_with": [],
97453
- "starter_recipes": [],
97454
- "gotchas": [],
97455
- "health_flags": []
99614
+ "key_parameters": [
99615
+ {
99616
+ "name": "State",
99617
+ "description": "Current state \u2014 Stop / Record / Play / Overdub",
99618
+ "range": [
99619
+ "Stop",
99620
+ "Record",
99621
+ "Play",
99622
+ "Overdub"
99623
+ ],
99624
+ "type": "enum"
99625
+ },
99626
+ {
99627
+ "name": "Tempo Mode",
99628
+ "description": "How Looper handles tempo \u2014 Set and Follow, None, Set Song, Follow Song",
99629
+ "range": [
99630
+ "None",
99631
+ "Set Song",
99632
+ "Follow Song"
99633
+ ],
99634
+ "type": "enum"
99635
+ },
99636
+ {
99637
+ "name": "Quantization",
99638
+ "description": "Quantize loop start/overdub to beat grid",
99639
+ "range": [
99640
+ "None",
99641
+ "1/4",
99642
+ "1/2",
99643
+ "1 bar",
99644
+ "2 bars",
99645
+ "4 bars",
99646
+ "8 bars"
99647
+ ],
99648
+ "type": "enum"
99649
+ },
99650
+ {
99651
+ "name": "Feedback",
99652
+ "description": "Overdub feedback \u2014 <100% fades old layers over time",
99653
+ "range": [
99654
+ 0.0,
99655
+ 1.0
99656
+ ],
99657
+ "type": "float",
99658
+ "sweet_spots": {
99659
+ "infinite_layer": 1.0,
99660
+ "tape_style_fade": 0.85,
99661
+ "fast_fade": 0.5
99662
+ }
99663
+ },
99664
+ {
99665
+ "name": "Record Dry/Wet",
99666
+ "description": "Record dry input, wet loop, or blend",
99667
+ "range": [
99668
+ 0.0,
99669
+ 1.0
99670
+ ],
99671
+ "type": "float"
99672
+ }
99673
+ ],
99674
+ "pairs_well_with": [
99675
+ {
99676
+ "device": "Reverb",
99677
+ "reason": "Post-looper reverb creates ambient soundscapes from single notes"
99678
+ },
99679
+ {
99680
+ "device": "Auto Filter",
99681
+ "reason": "Modulate looper output with LFO for evolving loop texture"
99682
+ },
99683
+ {
99684
+ "device": "Pedal",
99685
+ "reason": "Stomp-box feedback into Looper for dubby layered grit"
99686
+ }
99687
+ ],
99688
+ "starter_recipes": [
99689
+ {
99690
+ "name": "Live Performance Loop",
99691
+ "description": "4-bar loop with infinite feedback for overdub layering",
99692
+ "genre": "indie",
99693
+ "params": {
99694
+ "Tempo Mode": "Set Song",
99695
+ "Quantization": "4 bars",
99696
+ "Feedback": 1.0
99697
+ }
99698
+ },
99699
+ {
99700
+ "name": "Tape-Loop Decay",
99701
+ "description": "Dub-style decaying loop that fades over bars",
99702
+ "genre": "dub",
99703
+ "params": {
99704
+ "Tempo Mode": "Set Song",
99705
+ "Quantization": "2 bars",
99706
+ "Feedback": 0.8
99707
+ }
99708
+ }
99709
+ ],
99710
+ "gotchas": [
99711
+ "Looper is performance-focused \u2014 programming it fully via MCP is awkward. Use live triggering (foot-pedal / MIDI) for real-time control",
99712
+ "Feedback at 1.0 means infinite layering \u2014 overdubs never fade. Feedback at 0.9 or below is more musical for tape-style use",
99713
+ "Record Dry/Wet affects what's captured, not what's heard \u2014 raise the track's return to verify what's going into the loop",
99714
+ "Tempo Mode Set Song locks Looper to current session tempo; None lets Looper fall behind/ahead if tempo changes",
99715
+ "Unlike Live 11 drag-to-export, audio capture from Looper for further processing requires re-recording to an audio track"
99716
+ ],
99717
+ "health_flags": [],
99718
+ "sonic_description": "Real-time audio looper \u2014 captures a segment of audio and layers overdubs. Built around performance rather than mixing. Records at the current tempo, optional tempo detection from length, variable feedback on overdubs. Used live for build-a-song-on-stage sets (Ed Sheeran, KT Tunstall style), in studio as a creative \"sample yourself\" tool, or for dub-style tape-loop emulation.\n",
99719
+ "pack": "Core Library",
99720
+ "introduced_in": "7.0",
99721
+ "complexity": "intermediate",
99722
+ "effect_type": "looper"
97456
99723
  },
97457
99724
  {
97458
99725
  "id": "lp_bitcrusher",
@@ -98844,19 +101111,82 @@
98844
101111
  "category": "max_for_live",
98845
101112
  "subcategory": "other",
98846
101113
  "source": "native",
98847
- "enriched": false,
98848
- "character_tags": [],
98849
- "use_cases": [],
101114
+ "enriched": true,
101115
+ "character_tags": [
101116
+ "pitched",
101117
+ "glitchy",
101118
+ "reversed",
101119
+ "randomized",
101120
+ "micro_stutter"
101121
+ ],
101122
+ "use_cases": [
101123
+ "akufen_stutter",
101124
+ "pitched_ghost",
101125
+ "reverse_echo",
101126
+ "textural_delay"
101127
+ ],
98850
101128
  "genre_affinity": {
98851
- "primary": [],
98852
- "secondary": []
101129
+ "primary": [
101130
+ "microhouse",
101131
+ "deep_minimal",
101132
+ "idm",
101133
+ "experimental"
101134
+ ],
101135
+ "secondary": [
101136
+ "dub_techno",
101137
+ "electronica"
101138
+ ]
98853
101139
  },
98854
101140
  "self_contained": true,
98855
- "key_parameters": [],
101141
+ "key_parameters": [
101142
+ {
101143
+ "name": "Transpose",
101144
+ "description": "Pitch shift in semitones + cents on the delayed signal.",
101145
+ "range": [
101146
+ -24,
101147
+ 24
101148
+ ],
101149
+ "unit": "st",
101150
+ "type": "int"
101151
+ },
101152
+ {
101153
+ "name": "Delay Time",
101154
+ "description": "Delay in ms or tempo-synced subdivisions."
101155
+ },
101156
+ {
101157
+ "name": "Feedback",
101158
+ "description": "Pitched echo feedback. Cascading when transpose is non-zero.",
101159
+ "range": [
101160
+ 0.0,
101161
+ 1.0
101162
+ ],
101163
+ "type": "float"
101164
+ },
101165
+ {
101166
+ "name": "Reverse",
101167
+ "description": "Reverse-plays the delay buffer.",
101168
+ "type": "boolean"
101169
+ },
101170
+ {
101171
+ "name": "Randomize",
101172
+ "description": "Randomizes pitch and/or reverse per repeat. The Villalobos-texture parameter.",
101173
+ "range": [
101174
+ 0.0,
101175
+ 1.0
101176
+ ],
101177
+ "type": "float"
101178
+ }
101179
+ ],
98856
101180
  "pairs_well_with": [],
98857
101181
  "starter_recipes": [],
98858
- "gotchas": [],
98859
- "health_flags": []
101182
+ "gotchas": [
101183
+ "Randomize above 0.8 can produce notes wildly out of key \u2014 gate with key-detection first if harmony matters."
101184
+ ],
101185
+ "health_flags": [],
101186
+ "pack": "Creative Extensions",
101187
+ "introduced_in": "10.0",
101188
+ "complexity": "beginner",
101189
+ "sonic_description": "Versatile pitch-shifting delay for Creative Extensions. Combines transposition, reverse, feedback, and randomization on a single delay line. Lighter-weight companion to PitchLoop89 \u2014 less of a spatial architect, more of a per-sound treatment for pitched echoes and random reversal textures. The go-to for Akufen-style micro-stutter on hats and the random-reverse pitched ghosts that Villalobos uses on every track.\n"
98860
101190
  },
98861
101191
  {
98862
101192
  "id": "pitch_hack",
@@ -98865,19 +101195,82 @@
98865
101195
  "category": "max_for_live",
98866
101196
  "subcategory": "other",
98867
101197
  "source": "native",
98868
- "enriched": false,
98869
- "character_tags": [],
98870
- "use_cases": [],
101198
+ "enriched": true,
101199
+ "character_tags": [
101200
+ "pitched",
101201
+ "glitchy",
101202
+ "reversed",
101203
+ "randomized",
101204
+ "micro_stutter"
101205
+ ],
101206
+ "use_cases": [
101207
+ "akufen_stutter",
101208
+ "pitched_ghost",
101209
+ "reverse_echo",
101210
+ "textural_delay"
101211
+ ],
98871
101212
  "genre_affinity": {
98872
- "primary": [],
98873
- "secondary": []
101213
+ "primary": [
101214
+ "microhouse",
101215
+ "deep_minimal",
101216
+ "idm",
101217
+ "experimental"
101218
+ ],
101219
+ "secondary": [
101220
+ "dub_techno",
101221
+ "electronica"
101222
+ ]
98874
101223
  },
98875
101224
  "self_contained": true,
98876
- "key_parameters": [],
101225
+ "key_parameters": [
101226
+ {
101227
+ "name": "Transpose",
101228
+ "description": "Pitch shift in semitones + cents on the delayed signal.",
101229
+ "range": [
101230
+ -24,
101231
+ 24
101232
+ ],
101233
+ "unit": "st",
101234
+ "type": "int"
101235
+ },
101236
+ {
101237
+ "name": "Delay Time",
101238
+ "description": "Delay in ms or tempo-synced subdivisions."
101239
+ },
101240
+ {
101241
+ "name": "Feedback",
101242
+ "description": "Pitched echo feedback. Cascading when transpose is non-zero.",
101243
+ "range": [
101244
+ 0.0,
101245
+ 1.0
101246
+ ],
101247
+ "type": "float"
101248
+ },
101249
+ {
101250
+ "name": "Reverse",
101251
+ "description": "Reverse-plays the delay buffer.",
101252
+ "type": "boolean"
101253
+ },
101254
+ {
101255
+ "name": "Randomize",
101256
+ "description": "Randomizes pitch and/or reverse per repeat. The Villalobos-texture parameter.",
101257
+ "range": [
101258
+ 0.0,
101259
+ 1.0
101260
+ ],
101261
+ "type": "float"
101262
+ }
101263
+ ],
98877
101264
  "pairs_well_with": [],
98878
101265
  "starter_recipes": [],
98879
- "gotchas": [],
98880
- "health_flags": []
101266
+ "gotchas": [
101267
+ "Randomize above 0.8 can produce notes wildly out of key \u2014 gate with key-detection first if harmony matters."
101268
+ ],
101269
+ "health_flags": [],
101270
+ "pack": "Creative Extensions",
101271
+ "introduced_in": "10.0",
101272
+ "complexity": "beginner",
101273
+ "sonic_description": "Versatile pitch-shifting delay for Creative Extensions. Combines transposition, reverse, feedback, and randomization on a single delay line. Lighter-weight companion to PitchLoop89 \u2014 less of a spatial architect, more of a per-sound treatment for pitched echoes and random reversal textures. The go-to for Akufen-style micro-stutter on hats and the random-reverse pitched ghosts that Villalobos uses on every track.\n"
98881
101274
  },
98882
101275
  {
98883
101276
  "id": "pitch_shifter",
@@ -99145,19 +101538,71 @@
99145
101538
  "category": "max_for_live",
99146
101539
  "subcategory": "other",
99147
101540
  "source": "native",
99148
- "enriched": false,
99149
- "character_tags": [],
99150
- "use_cases": [],
101541
+ "enriched": true,
101542
+ "character_tags": [
101543
+ "multiband",
101544
+ "envelope_shaping",
101545
+ "transient",
101546
+ "sculpted"
101547
+ ],
101548
+ "use_cases": [
101549
+ "transient_shape",
101550
+ "decay_control",
101551
+ "per_band_dynamics",
101552
+ "micro_stab"
101553
+ ],
99151
101554
  "genre_affinity": {
99152
- "primary": [],
99153
- "secondary": []
101555
+ "primary": [
101556
+ "minimal",
101557
+ "dub_techno",
101558
+ "electronica"
101559
+ ],
101560
+ "secondary": [
101561
+ "all_genres"
101562
+ ]
99154
101563
  },
99155
101564
  "self_contained": true,
99156
- "key_parameters": [],
101565
+ "key_parameters": [
101566
+ {
101567
+ "name": "Band Split Frequencies",
101568
+ "description": "Low/Mid and Mid/High crossover points in Hz.",
101569
+ "range": [
101570
+ 20,
101571
+ 20000
101572
+ ],
101573
+ "unit": "Hz",
101574
+ "type": "float"
101575
+ },
101576
+ {
101577
+ "name": "C/E Factor (per band)",
101578
+ "description": "Compression (positive) or Expansion (negative) factor per band.",
101579
+ "range": [
101580
+ -5.0,
101581
+ 5.0
101582
+ ],
101583
+ "type": "float",
101584
+ "sweet_spots": {
101585
+ "subtle_expand": 1.5,
101586
+ "aggressive_stab": 3.0,
101587
+ "decay_tightening": -2.0
101588
+ }
101589
+ },
101590
+ {
101591
+ "name": "Attack / Release (per band)",
101592
+ "description": "Envelope-shape time constants for each band independently."
101593
+ }
101594
+ ],
99157
101595
  "pairs_well_with": [],
99158
101596
  "starter_recipes": [],
99159
- "gotchas": [],
99160
- "health_flags": []
101597
+ "gotchas": [
101598
+ "Expansion factors above 4.0 can cause clipping \u2014 compensate output gain.",
101599
+ "Crossover bands overlap by ~6dB \u2014 not a surgical splitter."
101600
+ ],
101601
+ "health_flags": [],
101602
+ "pack": "Creative Extensions",
101603
+ "introduced_in": "10.0",
101604
+ "complexity": "intermediate",
101605
+ "sonic_description": "Multiband envelope processor with three adjustable frequency bands. Unlike compression (which reduces amplitude when over threshold), Re-Enveloper reshapes envelope character itself \u2014 attack, sustain, decay \u2014 independently per band. The right tool for 'shorten the decay of this sustained sound so it behaves like a stab' or 'expand the transient on the highs only'.\n"
99161
101606
  },
99162
101607
  {
99163
101608
  "id": "re_enveloper",
@@ -99166,19 +101611,71 @@
99166
101611
  "category": "max_for_live",
99167
101612
  "subcategory": "other",
99168
101613
  "source": "native",
99169
- "enriched": false,
99170
- "character_tags": [],
99171
- "use_cases": [],
101614
+ "enriched": true,
101615
+ "character_tags": [
101616
+ "multiband",
101617
+ "envelope_shaping",
101618
+ "transient",
101619
+ "sculpted"
101620
+ ],
101621
+ "use_cases": [
101622
+ "transient_shape",
101623
+ "decay_control",
101624
+ "per_band_dynamics",
101625
+ "micro_stab"
101626
+ ],
99172
101627
  "genre_affinity": {
99173
- "primary": [],
99174
- "secondary": []
101628
+ "primary": [
101629
+ "minimal",
101630
+ "dub_techno",
101631
+ "electronica"
101632
+ ],
101633
+ "secondary": [
101634
+ "all_genres"
101635
+ ]
99175
101636
  },
99176
101637
  "self_contained": true,
99177
- "key_parameters": [],
101638
+ "key_parameters": [
101639
+ {
101640
+ "name": "Band Split Frequencies",
101641
+ "description": "Low/Mid and Mid/High crossover points in Hz.",
101642
+ "range": [
101643
+ 20,
101644
+ 20000
101645
+ ],
101646
+ "unit": "Hz",
101647
+ "type": "float"
101648
+ },
101649
+ {
101650
+ "name": "C/E Factor (per band)",
101651
+ "description": "Compression (positive) or Expansion (negative) factor per band.",
101652
+ "range": [
101653
+ -5.0,
101654
+ 5.0
101655
+ ],
101656
+ "type": "float",
101657
+ "sweet_spots": {
101658
+ "subtle_expand": 1.5,
101659
+ "aggressive_stab": 3.0,
101660
+ "decay_tightening": -2.0
101661
+ }
101662
+ },
101663
+ {
101664
+ "name": "Attack / Release (per band)",
101665
+ "description": "Envelope-shape time constants for each band independently."
101666
+ }
101667
+ ],
99178
101668
  "pairs_well_with": [],
99179
101669
  "starter_recipes": [],
99180
- "gotchas": [],
99181
- "health_flags": []
101670
+ "gotchas": [
101671
+ "Expansion factors above 4.0 can cause clipping \u2014 compensate output gain.",
101672
+ "Crossover bands overlap by ~6dB \u2014 not a surgical splitter."
101673
+ ],
101674
+ "health_flags": [],
101675
+ "pack": "Creative Extensions",
101676
+ "introduced_in": "10.0",
101677
+ "complexity": "intermediate",
101678
+ "sonic_description": "Multiband envelope processor with three adjustable frequency bands. Unlike compression (which reduces amplitude when over threshold), Re-Enveloper reshapes envelope character itself \u2014 attack, sustain, decay \u2014 independently per band. The right tool for 'shorten the decay of this sustained sound so it behaves like a stab' or 'expand the transient on the highs only'.\n"
99182
101679
  },
99183
101680
  {
99184
101681
  "id": "renamer_l_1",
@@ -99565,19 +102062,55 @@
99565
102062
  "category": "max_for_live",
99566
102063
  "subcategory": "other",
99567
102064
  "source": "native",
99568
- "enriched": false,
99569
- "character_tags": [],
99570
- "use_cases": [],
102065
+ "enriched": true,
102066
+ "character_tags": [
102067
+ "replay",
102068
+ "pitched",
102069
+ "micro_chop",
102070
+ "glitch"
102071
+ ],
102072
+ "use_cases": [
102073
+ "micro_chop",
102074
+ "pitched_replay",
102075
+ "vocal_stutter"
102076
+ ],
99571
102077
  "genre_affinity": {
99572
- "primary": [],
99573
- "secondary": []
102078
+ "primary": [
102079
+ "microhouse",
102080
+ "deep_minimal",
102081
+ "glitch"
102082
+ ],
102083
+ "secondary": [
102084
+ "idm"
102085
+ ]
99574
102086
  },
99575
102087
  "self_contained": true,
99576
- "key_parameters": [],
102088
+ "key_parameters": [
102089
+ {
102090
+ "name": "Snippet Length",
102091
+ "description": "Duration of the captured snippet."
102092
+ },
102093
+ {
102094
+ "name": "Replay Rate",
102095
+ "description": "How often the snippet re-triggers."
102096
+ },
102097
+ {
102098
+ "name": "Pitch Modulation",
102099
+ "description": "Per-replay pitch shift."
102100
+ },
102101
+ {
102102
+ "name": "Randomize",
102103
+ "description": "Random variation on pitch/replay timing."
102104
+ }
102105
+ ],
99577
102106
  "pairs_well_with": [],
99578
102107
  "starter_recipes": [],
99579
102108
  "gotchas": [],
99580
- "health_flags": []
102109
+ "health_flags": [],
102110
+ "pack": "Building Max Devices",
102111
+ "introduced_in": "11.0",
102112
+ "complexity": "intermediate",
102113
+ "sonic_description": "Audio snippet replayer with pitch modulation (Building Max Devices tutorial pack). Re-plays snippets of incoming audio at modulated pitches. Small tool, surprisingly aesthetic-critical for microhouse \u2014 the 'replay this hat with a slightly different pitch each bar' pattern.\n"
99581
102114
  },
99582
102115
  {
99583
102116
  "id": "sources",
@@ -99607,19 +102140,79 @@
99607
102140
  "category": "max_for_live",
99608
102141
  "subcategory": "other",
99609
102142
  "source": "native",
99610
- "enriched": false,
99611
- "character_tags": [],
99612
- "use_cases": [],
102143
+ "enriched": true,
102144
+ "character_tags": [
102145
+ "spectral",
102146
+ "halo",
102147
+ "reverb_like",
102148
+ "ethereal",
102149
+ "frozen",
102150
+ "frequency_selective"
102151
+ ],
102152
+ "use_cases": [
102153
+ "halo_pad",
102154
+ "ghost_atmosphere",
102155
+ "frozen_texture",
102156
+ "spectral_bed"
102157
+ ],
99613
102158
  "genre_affinity": {
99614
- "primary": [],
99615
- "secondary": []
102159
+ "primary": [
102160
+ "ambient",
102161
+ "deep_minimal",
102162
+ "experimental",
102163
+ "drone"
102164
+ ],
102165
+ "secondary": [
102166
+ "dub_techno",
102167
+ "cinematic"
102168
+ ]
99616
102169
  },
99617
102170
  "self_contained": true,
99618
- "key_parameters": [],
102171
+ "key_parameters": [
102172
+ {
102173
+ "name": "Frequency Range",
102174
+ "description": "Low and high cutoff of the blurred band. Narrow ranges produce pitched halos; wide ranges produce reverb-like wash."
102175
+ },
102176
+ {
102177
+ "name": "Halo (Grain Length)",
102178
+ "description": "How long each spectral grain lingers. Short = shimmer; long = sustained bed.",
102179
+ "range": [
102180
+ 50,
102181
+ 5000
102182
+ ],
102183
+ "unit": "ms",
102184
+ "type": "float",
102185
+ "sweet_spots": {
102186
+ "subtle_shimmer": 200,
102187
+ "sustained_bed": 2000
102188
+ }
102189
+ },
102190
+ {
102191
+ "name": "Residual",
102192
+ "description": "Amount of dry signal that passes through. 0 = fully wet halo, 1 = hear the source clearly.",
102193
+ "range": [
102194
+ 0.0,
102195
+ 1.0
102196
+ ],
102197
+ "type": "float"
102198
+ },
102199
+ {
102200
+ "name": "Freeze",
102201
+ "description": "Holds the current spectral content. Manual or MIDI-triggered.",
102202
+ "type": "boolean"
102203
+ }
102204
+ ],
99619
102205
  "pairs_well_with": [],
99620
102206
  "starter_recipes": [],
99621
- "gotchas": [],
99622
- "health_flags": []
102207
+ "gotchas": [
102208
+ "Halo times above 3000ms accumulate CPU \u2014 freeze the track after print",
102209
+ "Narrow frequency ranges at high levels self-oscillate \u2014 keep Residual > 0 or compress"
102210
+ ],
102211
+ "health_flags": [],
102212
+ "pack": "Creative Extensions",
102213
+ "introduced_in": "10.0",
102214
+ "complexity": "intermediate",
102215
+ "sonic_description": "Spectral halo/reverb hybrid. Creates reverb-like textures by blurring user-defined frequency ranges into dense clouds of delayed/smeared harmonic content. Not a real reverb \u2014 no IR \u2014 but the result behaves like one, with more control over which frequency ranges get haloed. Freeze button holds the current spectral content indefinitely. The tool for ethereal pads from sparse sources and alien textures that don't sound like rooms.\n"
99623
102216
  },
99624
102217
  {
99625
102218
  "id": "spectral_blur",
@@ -99628,19 +102221,79 @@
99628
102221
  "category": "max_for_live",
99629
102222
  "subcategory": "other",
99630
102223
  "source": "native",
99631
- "enriched": false,
99632
- "character_tags": [],
99633
- "use_cases": [],
102224
+ "enriched": true,
102225
+ "character_tags": [
102226
+ "spectral",
102227
+ "halo",
102228
+ "reverb_like",
102229
+ "ethereal",
102230
+ "frozen",
102231
+ "frequency_selective"
102232
+ ],
102233
+ "use_cases": [
102234
+ "halo_pad",
102235
+ "ghost_atmosphere",
102236
+ "frozen_texture",
102237
+ "spectral_bed"
102238
+ ],
99634
102239
  "genre_affinity": {
99635
- "primary": [],
99636
- "secondary": []
102240
+ "primary": [
102241
+ "ambient",
102242
+ "deep_minimal",
102243
+ "experimental",
102244
+ "drone"
102245
+ ],
102246
+ "secondary": [
102247
+ "dub_techno",
102248
+ "cinematic"
102249
+ ]
99637
102250
  },
99638
102251
  "self_contained": true,
99639
- "key_parameters": [],
102252
+ "key_parameters": [
102253
+ {
102254
+ "name": "Frequency Range",
102255
+ "description": "Low and high cutoff of the blurred band. Narrow ranges produce pitched halos; wide ranges produce reverb-like wash."
102256
+ },
102257
+ {
102258
+ "name": "Halo (Grain Length)",
102259
+ "description": "How long each spectral grain lingers. Short = shimmer; long = sustained bed.",
102260
+ "range": [
102261
+ 50,
102262
+ 5000
102263
+ ],
102264
+ "unit": "ms",
102265
+ "type": "float",
102266
+ "sweet_spots": {
102267
+ "subtle_shimmer": 200,
102268
+ "sustained_bed": 2000
102269
+ }
102270
+ },
102271
+ {
102272
+ "name": "Residual",
102273
+ "description": "Amount of dry signal that passes through. 0 = fully wet halo, 1 = hear the source clearly.",
102274
+ "range": [
102275
+ 0.0,
102276
+ 1.0
102277
+ ],
102278
+ "type": "float"
102279
+ },
102280
+ {
102281
+ "name": "Freeze",
102282
+ "description": "Holds the current spectral content. Manual or MIDI-triggered.",
102283
+ "type": "boolean"
102284
+ }
102285
+ ],
99640
102286
  "pairs_well_with": [],
99641
102287
  "starter_recipes": [],
99642
- "gotchas": [],
99643
- "health_flags": []
102288
+ "gotchas": [
102289
+ "Halo times above 3000ms accumulate CPU \u2014 freeze the track after print",
102290
+ "Narrow frequency ranges at high levels self-oscillate \u2014 keep Residual > 0 or compress"
102291
+ ],
102292
+ "health_flags": [],
102293
+ "pack": "Creative Extensions",
102294
+ "introduced_in": "10.0",
102295
+ "complexity": "intermediate",
102296
+ "sonic_description": "Spectral halo/reverb hybrid. Creates reverb-like textures by blurring user-defined frequency ranges into dense clouds of delayed/smeared harmonic content. Not a real reverb \u2014 no IR \u2014 but the result behaves like one, with more control over which frequency ranges get haloed. Freeze button holds the current spectral content indefinitely. The tool for ethereal pads from sparse sources and alien textures that don't sound like rooms.\n"
99644
102297
  },
99645
102298
  {
99646
102299
  "id": "spectroglitch",
@@ -101014,19 +103667,57 @@
101014
103667
  "category": "max_for_live",
101015
103668
  "subcategory": "other",
101016
103669
  "source": "native",
101017
- "enriched": false,
101018
- "character_tags": [],
101019
- "use_cases": [],
103670
+ "enriched": true,
103671
+ "character_tags": [
103672
+ "bell",
103673
+ "fm",
103674
+ "metallic",
103675
+ "percussive"
103676
+ ],
103677
+ "use_cases": [
103678
+ "bell_stab",
103679
+ "pluck",
103680
+ "atmospheric_bell"
103681
+ ],
101020
103682
  "genre_affinity": {
101021
- "primary": [],
101022
- "secondary": []
103683
+ "primary": [
103684
+ "ambient",
103685
+ "deep_minimal",
103686
+ "arpiar"
103687
+ ],
103688
+ "secondary": [
103689
+ "experimental",
103690
+ "cinematic"
103691
+ ]
101023
103692
  },
101024
103693
  "self_contained": true,
101025
- "key_parameters": [],
103694
+ "key_parameters": [
103695
+ {
103696
+ "name": "Carrier Freq",
103697
+ "description": "Base pitch."
103698
+ },
103699
+ {
103700
+ "name": "Modulator Ratio",
103701
+ "description": "Ratio of modulator to carrier \u2014 inharmonic ratios give bells, integer ratios give pluck tones."
103702
+ },
103703
+ {
103704
+ "name": "Modulator Depth",
103705
+ "description": "FM index \u2014 brightness/metallic character."
103706
+ },
103707
+ {
103708
+ "name": "Decay",
103709
+ "description": "Bell decay time."
103710
+ }
103711
+ ],
101026
103712
  "pairs_well_with": [],
101027
103713
  "starter_recipes": [],
101028
103714
  "gotchas": [],
101029
- "health_flags": []
103715
+ "health_flags": [],
103716
+ "pack": "Building Max Devices",
103717
+ "introduced_in": "11.0",
103718
+ "synthesis_type": "fm_bell",
103719
+ "complexity": "beginner",
103720
+ "sonic_description": "FM bell synthesis M4L example device from the Building Max Devices pack. Designed as a tutorial but produces genuinely usable bell/mallet timbres via simple FM synthesis. Through Convolution Reverb = thin Arpiar bell stab territory.\n"
101030
103721
  },
101031
103722
  {
101032
103723
  "id": "blubb_0_0",
@@ -101434,19 +104125,104 @@
101434
104125
  "category": "max_for_live",
101435
104126
  "subcategory": "other",
101436
104127
  "source": "native",
101437
- "enriched": false,
101438
- "character_tags": [],
101439
- "use_cases": [],
104128
+ "enriched": true,
104129
+ "character_tags": [
104130
+ "drone",
104131
+ "microtonal",
104132
+ "sustained",
104133
+ "harmonic",
104134
+ "meditative",
104135
+ "evolving",
104136
+ "dark"
104137
+ ],
104138
+ "use_cases": [
104139
+ "drone_bed",
104140
+ "harmonic_atmosphere",
104141
+ "microtonal_pad",
104142
+ "ambient_bed",
104143
+ "tension_bed"
104144
+ ],
101440
104145
  "genre_affinity": {
101441
- "primary": [],
101442
- "secondary": []
104146
+ "primary": [
104147
+ "ambient",
104148
+ "deep_minimal",
104149
+ "dub_techno",
104150
+ "drone",
104151
+ "experimental"
104152
+ ],
104153
+ "secondary": [
104154
+ "cinematic",
104155
+ "dark_ambient",
104156
+ "microhouse"
104157
+ ]
101443
104158
  },
101444
104159
  "self_contained": true,
101445
- "key_parameters": [],
104160
+ "key_parameters": [
104161
+ {
104162
+ "name": "Tuning System",
104163
+ "description": "Selects the scale used to map voices. Each tuning produces a different harmonic flavor.",
104164
+ "range": [
104165
+ "Equal",
104166
+ "Just",
104167
+ "Pythagorean",
104168
+ "Solfeggio",
104169
+ "Pelog",
104170
+ "Indian"
104171
+ ],
104172
+ "type": "enum",
104173
+ "sweet_spots": {
104174
+ "deep_minimal_bed": "Just",
104175
+ "dark_meditation": "Solfeggio",
104176
+ "exotic_mystery": "Pelog"
104177
+ }
104178
+ },
104179
+ {
104180
+ "name": "Voice Count",
104181
+ "description": "How many of the 8 voices are active. Fewer voices = purer drone; more voices = denser harmonic cloud.",
104182
+ "range": [
104183
+ 1,
104184
+ 8
104185
+ ],
104186
+ "type": "int",
104187
+ "sweet_spots": {
104188
+ "sub_drone": 2,
104189
+ "full_cloud": 8
104190
+ }
104191
+ },
104192
+ {
104193
+ "name": "Per-voice pitch",
104194
+ "description": "Each voice has its own pitch assignment. Spread across the scale or stack on root for subtle detuned bed.",
104195
+ "type": "composite"
104196
+ },
104197
+ {
104198
+ "name": "Detune",
104199
+ "description": "Global detune amount. Low values (5-15 cents) give tape-warble; high values break into chord clouds.",
104200
+ "range": [
104201
+ 0.0,
104202
+ 100.0
104203
+ ],
104204
+ "unit": "cents",
104205
+ "type": "float"
104206
+ },
104207
+ {
104208
+ "name": "Amp Envelope",
104209
+ "description": "Long attack (5-10s) for slow-swell pads; short attack for staccato 'one note' hits.",
104210
+ "type": "composite"
104211
+ }
104212
+ ],
101446
104213
  "pairs_well_with": [],
101447
104214
  "starter_recipes": [],
101448
- "gotchas": [],
101449
- "health_flags": []
104215
+ "gotchas": [
104216
+ "All 8 voices at full level clip the output \u2014 use Voice Count or the internal level control",
104217
+ "Long attack envelopes don't trigger instantly \u2014 for stabs, use short attack or pre-gate",
104218
+ "Solfeggio frequencies are outside standard tuning \u2014 this is intentional; don't try to match to a song's key"
104219
+ ],
104220
+ "health_flags": [],
104221
+ "pack": "Drone Lab",
104222
+ "introduced_in": "12.0",
104223
+ "synthesis_type": "additive_drone",
104224
+ "complexity": "intermediate",
104225
+ "sonic_description": "8-voice Max for Live drone synth by Berlin-based Expert Math (shipped inside Drone Lab). Each voice has its own tuning assignment, and the device supports multiple tuning systems \u2014 Solfeggio frequencies, Pythagorean, Indonesian Pelog, Indian temperaments, plus equal and just intonation. Produces sustained harmonic drones with microtonal beating that equal- tempered synths architecturally cannot generate. The secret weapon for a harmonic bed that sits under a whole track at -30 dB and makes it sound like nothing else.\n"
101450
104226
  },
101451
104227
  {
101452
104228
  "id": "infinitetrain",
@@ -103935,19 +106711,44 @@
103935
106711
  "category": "max_for_live",
103936
106712
  "subcategory": "other",
103937
106713
  "source": "native",
103938
- "enriched": false,
103939
- "character_tags": [],
103940
- "use_cases": [],
106714
+ "enriched": true,
106715
+ "character_tags": [
106716
+ "drum_generator",
106717
+ "algorithmic",
106718
+ "simple"
106719
+ ],
106720
+ "use_cases": [
106721
+ "drum_programming_quickstart",
106722
+ "fill_generation"
106723
+ ],
103941
106724
  "genre_affinity": {
103942
- "primary": [],
103943
- "secondary": []
106725
+ "primary": [
106726
+ "all_electronic_drums"
106727
+ ]
103944
106728
  },
103945
106729
  "self_contained": true,
103946
- "key_parameters": [],
106730
+ "key_parameters": [
106731
+ {
106732
+ "name": "Density",
106733
+ "description": "Pattern density \u2014 sparse to dense."
106734
+ },
106735
+ {
106736
+ "name": "Drum Voices",
106737
+ "description": "Which drum pads to fill."
106738
+ },
106739
+ {
106740
+ "name": "Randomize",
106741
+ "description": "Re-generate pattern with randomization."
106742
+ }
106743
+ ],
103947
106744
  "pairs_well_with": [],
103948
106745
  "starter_recipes": [],
103949
106746
  "gotchas": [],
103950
- "health_flags": []
106747
+ "health_flags": [],
106748
+ "pack": "Building Max Devices",
106749
+ "introduced_in": "11.0",
106750
+ "complexity": "beginner",
106751
+ "sonic_description": "MIDI drum-pattern generator (Building Max Devices). A simple algorithmic drum fill generator \u2014 useful as a free alternative to Patterns (Iftah) when you just need quick drum content.\n"
103951
106752
  },
103952
106753
  {
103953
106754
  "id": "functions_midi",