livepilot 1.9.23 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/AGENTS.md +3 -3
  3. package/CHANGELOG.md +119 -0
  4. package/CONTRIBUTING.md +1 -1
  5. package/README.md +144 -13
  6. package/bin/livepilot.js +87 -0
  7. package/installer/codex.js +147 -0
  8. package/livepilot/.Codex-plugin/plugin.json +2 -2
  9. package/livepilot/.claude-plugin/plugin.json +2 -2
  10. package/livepilot/skills/livepilot-core/SKILL.md +21 -4
  11. package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +34 -0
  12. package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +204 -0
  13. package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +173 -0
  14. package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +211 -0
  15. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +188 -0
  16. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +162 -0
  17. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +229 -0
  18. package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +243 -0
  19. package/livepilot/skills/livepilot-core/references/overview.md +13 -9
  20. package/livepilot/skills/livepilot-core/references/sample-manipulation.md +724 -0
  21. package/livepilot/skills/livepilot-core/references/sound-design-deep.md +140 -0
  22. package/livepilot/skills/livepilot-devices/SKILL.md +16 -2
  23. package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +1 -1
  24. package/livepilot/skills/livepilot-release/SKILL.md +19 -5
  25. package/livepilot/skills/livepilot-sample-engine/SKILL.md +104 -0
  26. package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +87 -0
  27. package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +51 -0
  28. package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +131 -0
  29. package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +45 -0
  30. package/livepilot/skills/livepilot-wonder/SKILL.md +15 -0
  31. package/livepilot.mcpb +0 -0
  32. package/m4l_device/livepilot_bridge.js +1 -1
  33. package/manifest.json +2 -2
  34. package/mcp_server/__init__.py +1 -1
  35. package/mcp_server/atlas/__init__.py +357 -0
  36. package/mcp_server/atlas/device_atlas.json +44067 -0
  37. package/mcp_server/atlas/enrichments/__init__.py +111 -0
  38. package/mcp_server/atlas/enrichments/audio_effects/auto_filter.yaml +162 -0
  39. package/mcp_server/atlas/enrichments/audio_effects/beat_repeat.yaml +183 -0
  40. package/mcp_server/atlas/enrichments/audio_effects/channel_eq.yaml +126 -0
  41. package/mcp_server/atlas/enrichments/audio_effects/chorus_ensemble.yaml +149 -0
  42. package/mcp_server/atlas/enrichments/audio_effects/color_limiter.yaml +109 -0
  43. package/mcp_server/atlas/enrichments/audio_effects/compressor.yaml +159 -0
  44. package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb.yaml +143 -0
  45. package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb_pro.yaml +178 -0
  46. package/mcp_server/atlas/enrichments/audio_effects/delay.yaml +151 -0
  47. package/mcp_server/atlas/enrichments/audio_effects/drum_buss.yaml +142 -0
  48. package/mcp_server/atlas/enrichments/audio_effects/dynamic_tube.yaml +147 -0
  49. package/mcp_server/atlas/enrichments/audio_effects/echo.yaml +167 -0
  50. package/mcp_server/atlas/enrichments/audio_effects/eq_eight.yaml +148 -0
  51. package/mcp_server/atlas/enrichments/audio_effects/eq_three.yaml +121 -0
  52. package/mcp_server/atlas/enrichments/audio_effects/erosion.yaml +103 -0
  53. package/mcp_server/atlas/enrichments/audio_effects/filter_delay.yaml +173 -0
  54. package/mcp_server/atlas/enrichments/audio_effects/gate.yaml +130 -0
  55. package/mcp_server/atlas/enrichments/audio_effects/gated_delay.yaml +133 -0
  56. package/mcp_server/atlas/enrichments/audio_effects/glue_compressor.yaml +142 -0
  57. package/mcp_server/atlas/enrichments/audio_effects/grain_delay.yaml +141 -0
  58. package/mcp_server/atlas/enrichments/audio_effects/hybrid_reverb.yaml +160 -0
  59. package/mcp_server/atlas/enrichments/audio_effects/limiter.yaml +97 -0
  60. package/mcp_server/atlas/enrichments/audio_effects/multiband_dynamics.yaml +174 -0
  61. package/mcp_server/atlas/enrichments/audio_effects/overdrive.yaml +119 -0
  62. package/mcp_server/atlas/enrichments/audio_effects/pedal.yaml +145 -0
  63. package/mcp_server/atlas/enrichments/audio_effects/phaser_flanger.yaml +161 -0
  64. package/mcp_server/atlas/enrichments/audio_effects/redux.yaml +114 -0
  65. package/mcp_server/atlas/enrichments/audio_effects/reverb.yaml +190 -0
  66. package/mcp_server/atlas/enrichments/audio_effects/roar.yaml +159 -0
  67. package/mcp_server/atlas/enrichments/audio_effects/saturator.yaml +146 -0
  68. package/mcp_server/atlas/enrichments/audio_effects/shifter.yaml +154 -0
  69. package/mcp_server/atlas/enrichments/audio_effects/spectral_resonator.yaml +141 -0
  70. package/mcp_server/atlas/enrichments/audio_effects/spectral_time.yaml +164 -0
  71. package/mcp_server/atlas/enrichments/audio_effects/vector_delay.yaml +140 -0
  72. package/mcp_server/atlas/enrichments/audio_effects/vinyl_distortion.yaml +141 -0
  73. package/mcp_server/atlas/enrichments/instruments/analog.yaml +222 -0
  74. package/mcp_server/atlas/enrichments/instruments/bass.yaml +202 -0
  75. package/mcp_server/atlas/enrichments/instruments/collision.yaml +150 -0
  76. package/mcp_server/atlas/enrichments/instruments/drift.yaml +167 -0
  77. package/mcp_server/atlas/enrichments/instruments/electric.yaml +137 -0
  78. package/mcp_server/atlas/enrichments/instruments/emit.yaml +163 -0
  79. package/mcp_server/atlas/enrichments/instruments/meld.yaml +164 -0
  80. package/mcp_server/atlas/enrichments/instruments/operator.yaml +197 -0
  81. package/mcp_server/atlas/enrichments/instruments/poli.yaml +192 -0
  82. package/mcp_server/atlas/enrichments/instruments/sampler.yaml +218 -0
  83. package/mcp_server/atlas/enrichments/instruments/simpler.yaml +217 -0
  84. package/mcp_server/atlas/enrichments/instruments/tension.yaml +156 -0
  85. package/mcp_server/atlas/enrichments/instruments/tree_tone.yaml +162 -0
  86. package/mcp_server/atlas/enrichments/instruments/vector_fm.yaml +165 -0
  87. package/mcp_server/atlas/enrichments/instruments/vector_grain.yaml +166 -0
  88. package/mcp_server/atlas/enrichments/instruments/wavetable.yaml +162 -0
  89. package/mcp_server/atlas/enrichments/midi_effects/arpeggiator.yaml +156 -0
  90. package/mcp_server/atlas/enrichments/midi_effects/bouncy_notes.yaml +93 -0
  91. package/mcp_server/atlas/enrichments/midi_effects/chord.yaml +147 -0
  92. package/mcp_server/atlas/enrichments/midi_effects/melodic_steps.yaml +97 -0
  93. package/mcp_server/atlas/enrichments/midi_effects/note_echo.yaml +108 -0
  94. package/mcp_server/atlas/enrichments/midi_effects/note_length.yaml +97 -0
  95. package/mcp_server/atlas/enrichments/midi_effects/pitch.yaml +76 -0
  96. package/mcp_server/atlas/enrichments/midi_effects/random.yaml +117 -0
  97. package/mcp_server/atlas/enrichments/midi_effects/rhythmic_steps.yaml +103 -0
  98. package/mcp_server/atlas/enrichments/midi_effects/scale.yaml +83 -0
  99. package/mcp_server/atlas/enrichments/midi_effects/step_arp.yaml +112 -0
  100. package/mcp_server/atlas/enrichments/midi_effects/velocity.yaml +119 -0
  101. package/mcp_server/atlas/enrichments/utility/amp.yaml +159 -0
  102. package/mcp_server/atlas/enrichments/utility/cabinet.yaml +109 -0
  103. package/mcp_server/atlas/enrichments/utility/corpus.yaml +150 -0
  104. package/mcp_server/atlas/enrichments/utility/resonators.yaml +131 -0
  105. package/mcp_server/atlas/enrichments/utility/spectrum.yaml +63 -0
  106. package/mcp_server/atlas/enrichments/utility/tuner.yaml +51 -0
  107. package/mcp_server/atlas/enrichments/utility/utility.yaml +136 -0
  108. package/mcp_server/atlas/enrichments/utility/vocoder.yaml +160 -0
  109. package/mcp_server/atlas/scanner.py +236 -0
  110. package/mcp_server/atlas/tools.py +224 -0
  111. package/mcp_server/composer/__init__.py +1 -0
  112. package/mcp_server/composer/engine.py +452 -0
  113. package/mcp_server/composer/layer_planner.py +427 -0
  114. package/mcp_server/composer/prompt_parser.py +329 -0
  115. package/mcp_server/composer/tools.py +201 -0
  116. package/mcp_server/connection.py +53 -8
  117. package/mcp_server/corpus/__init__.py +377 -0
  118. package/mcp_server/device_forge/__init__.py +1 -0
  119. package/mcp_server/device_forge/builder.py +377 -0
  120. package/mcp_server/device_forge/models.py +142 -0
  121. package/mcp_server/device_forge/templates.py +483 -0
  122. package/mcp_server/device_forge/tools.py +162 -0
  123. package/mcp_server/hook_hunter/analyzer.py +23 -0
  124. package/mcp_server/hook_hunter/models.py +1 -0
  125. package/mcp_server/hook_hunter/tools.py +4 -2
  126. package/mcp_server/m4l_bridge.py +1 -0
  127. package/mcp_server/memory/taste_graph.py +68 -1
  128. package/mcp_server/memory/tools.py +15 -4
  129. package/mcp_server/musical_intelligence/detectors.py +14 -1
  130. package/mcp_server/musical_intelligence/tools.py +11 -8
  131. package/mcp_server/persistence/__init__.py +1 -0
  132. package/mcp_server/persistence/base_store.py +82 -0
  133. package/mcp_server/persistence/project_store.py +106 -0
  134. package/mcp_server/persistence/taste_store.py +122 -0
  135. package/mcp_server/preview_studio/models.py +1 -0
  136. package/mcp_server/preview_studio/tools.py +56 -13
  137. package/mcp_server/runtime/capability.py +66 -0
  138. package/mcp_server/runtime/capability_probe.py +137 -0
  139. package/mcp_server/runtime/execution_router.py +143 -0
  140. package/mcp_server/runtime/live_version.py +102 -0
  141. package/mcp_server/runtime/remote_commands.py +87 -0
  142. package/mcp_server/runtime/tools.py +18 -4
  143. package/mcp_server/sample_engine/__init__.py +1 -0
  144. package/mcp_server/sample_engine/analyzer.py +216 -0
  145. package/mcp_server/sample_engine/critics.py +390 -0
  146. package/mcp_server/sample_engine/models.py +193 -0
  147. package/mcp_server/sample_engine/moves.py +127 -0
  148. package/mcp_server/sample_engine/planner.py +186 -0
  149. package/mcp_server/sample_engine/sources.py +540 -0
  150. package/mcp_server/sample_engine/techniques.py +908 -0
  151. package/mcp_server/sample_engine/tools.py +442 -0
  152. package/mcp_server/semantic_moves/__init__.py +3 -0
  153. package/mcp_server/semantic_moves/device_creation_moves.py +237 -0
  154. package/mcp_server/semantic_moves/mix_moves.py +41 -41
  155. package/mcp_server/semantic_moves/performance_moves.py +13 -13
  156. package/mcp_server/semantic_moves/sample_compilers.py +372 -0
  157. package/mcp_server/semantic_moves/sound_design_moves.py +15 -15
  158. package/mcp_server/semantic_moves/tools.py +18 -17
  159. package/mcp_server/semantic_moves/transition_moves.py +16 -16
  160. package/mcp_server/server.py +51 -0
  161. package/mcp_server/services/__init__.py +1 -0
  162. package/mcp_server/services/motif_service.py +67 -0
  163. package/mcp_server/session_continuity/tracker.py +29 -1
  164. package/mcp_server/song_brain/builder.py +28 -1
  165. package/mcp_server/song_brain/models.py +4 -0
  166. package/mcp_server/song_brain/tools.py +20 -2
  167. package/mcp_server/sound_design/critics.py +89 -1
  168. package/mcp_server/splice_client/__init__.py +1 -0
  169. package/mcp_server/splice_client/client.py +347 -0
  170. package/mcp_server/splice_client/models.py +96 -0
  171. package/mcp_server/splice_client/protos/__init__.py +1 -0
  172. package/mcp_server/splice_client/protos/app_pb2.py +319 -0
  173. package/mcp_server/splice_client/protos/app_pb2.pyi +1153 -0
  174. package/mcp_server/splice_client/protos/app_pb2_grpc.py +1946 -0
  175. package/mcp_server/tools/arrangement.py +69 -0
  176. package/mcp_server/tools/automation.py +15 -2
  177. package/mcp_server/tools/devices.py +117 -6
  178. package/mcp_server/tools/notes.py +37 -4
  179. package/mcp_server/wonder_mode/diagnosis.py +5 -0
  180. package/mcp_server/wonder_mode/engine.py +85 -1
  181. package/mcp_server/wonder_mode/tools.py +6 -1
  182. package/package.json +12 -2
  183. package/remote_script/LivePilot/__init__.py +8 -1
  184. package/remote_script/LivePilot/arrangement.py +114 -0
  185. package/remote_script/LivePilot/browser.py +56 -1
  186. package/remote_script/LivePilot/devices.py +236 -6
  187. package/remote_script/LivePilot/mixing.py +8 -3
  188. package/remote_script/LivePilot/server.py +5 -1
  189. package/remote_script/LivePilot/transport.py +3 -0
  190. package/remote_script/LivePilot/version_detect.py +78 -0
  191. package/scripts/sync_metadata.py +132 -0
@@ -0,0 +1,108 @@
1
+ id: note_echo
2
+ name: Note Echo
3
+ sonic_description: >
4
+ Creates delayed repetitions of incoming MIDI notes, functioning as a MIDI-domain
5
+ delay effect. Each repeat can shift in pitch, creating cascading melodic echoes
6
+ that rise, fall, or stay constant. Produces effects impossible with audio delay.
7
+ effect_type: midi_processor
8
+ character_tags: [delay, cascading, melodic, echoing, layering]
9
+ use_cases: [midi_delay, cascading_echoes, pitch_shifted_repeats, melodic_canon, rhythmic_buildup]
10
+ genre_affinity:
11
+ primary: [ambient, trance, cinematic]
12
+ secondary: [techno, idm, pop]
13
+ complexity: intermediate
14
+ introduced_in: "1.0"
15
+
16
+ key_parameters:
17
+ - name: "Time"
18
+ description: "Delay time between repeats — synced to tempo or free-running"
19
+ range: ["1/1", "1/2", "1/2T", "1/4", "1/4T", "1/8", "1/8T", "1/16", "1/16T", "1/32"]
20
+ type: enum
21
+ sweet_spots:
22
+ slow_echo: "1/4"
23
+ rhythmic: "1/8"
24
+ fast_cascade: "1/16"
25
+ triplet_bounce: "1/8T"
26
+
27
+ - name: "Feedback"
28
+ description: "Number of echo repetitions"
29
+ range: [1, 16]
30
+ type: int
31
+ sweet_spots:
32
+ single_echo: 1
33
+ fading: 3
34
+ long_tail: 8
35
+ infinite_feel: 16
36
+
37
+ - name: "Pitch Delta"
38
+ description: "Semitone pitch shift applied to each successive repeat"
39
+ range: [-24, 24]
40
+ unit: "st"
41
+ type: int
42
+ sweet_spots:
43
+ octave_rise: 12
44
+ fifth_climb: 7
45
+ descending: -7
46
+ chromatic_fall: -1
47
+ no_shift: 0
48
+
49
+ - name: "Velocity Decay"
50
+ description: "Velocity reduction per repeat — lower values fade echoes out"
51
+ range: [0, 127]
52
+ type: int
53
+ sweet_spots:
54
+ natural_fade: 90
55
+ rapid_decay: 60
56
+ even_volume: 127
57
+
58
+ pairs_well_with:
59
+ - device: "Scale"
60
+ reason: "Corrects pitch-shifted echoes to stay in key"
61
+ - device: "Reverb"
62
+ reason: "Blurs echo tails into ambient washes"
63
+ - device: "Drift"
64
+ reason: "Warm analog tones make cascading echoes sound organic"
65
+ - device: "Auto Filter"
66
+ reason: "Filter envelope on each echo repeat creates timbral movement"
67
+ - device: "Delay"
68
+ reason: "Audio delay on top of MIDI echo creates layered rhythmic complexity"
69
+
70
+ starter_recipes:
71
+ - name: "Cascading Octaves"
72
+ description: "Each echo jumps up an octave for shimmering upward cascades"
73
+ genre: ambient
74
+ params:
75
+ "Time": "1/8"
76
+ "Feedback": 3
77
+ "Pitch Delta": 12
78
+
79
+ - name: "Simple MIDI Delay"
80
+ description: "Straightforward note echoes without pitch change"
81
+ genre: pop
82
+ params:
83
+ "Time": "1/4"
84
+ "Feedback": 2
85
+ "Pitch Delta": 0
86
+
87
+ - name: "Descending Cascade"
88
+ description: "Echoes descend by a fifth each repeat for dramatic falling lines"
89
+ genre: cinematic
90
+ params:
91
+ "Time": "1/8"
92
+ "Feedback": 4
93
+ "Pitch Delta": -7
94
+
95
+ - name: "Chromatic Waterfall"
96
+ description: "Rapid echoes falling one semitone each for glassy descending runs"
97
+ genre: experimental
98
+ params:
99
+ "Time": "1/16"
100
+ "Feedback": 8
101
+ "Pitch Delta": -1
102
+
103
+ gotchas:
104
+ - "Pitch Delta accumulates across repeats — 3 repeats at +12 means the third echo is 36 semitones up"
105
+ - "High Feedback with Pitch Delta can push notes outside audible MIDI range (0-127)"
106
+ - "Unlike audio delay, MIDI echo creates distinct new note events — each echo triggers the synth independently"
107
+ - "Long Feedback values with fast Time can create very dense note output — watch polyphony limits"
108
+ - "Place Scale after Note Echo if using Pitch Delta to keep all echoes in key"
@@ -0,0 +1,97 @@
1
+ id: note_length
2
+ name: Note Length
3
+ sonic_description: >
4
+ Controls the duration and triggering behavior of MIDI notes, forcing all notes
5
+ to a fixed length or converting note-on events into gated triggers. Essential for
6
+ creating uniform staccato patterns, consistent sample triggers, or legato sustains.
7
+ effect_type: midi_processor
8
+ character_tags: [rhythmic, gating, precise, uniform, triggering]
9
+ use_cases: [staccato, legato, gate_conversion, uniform_length, sample_triggering]
10
+ genre_affinity:
11
+ primary: [techno, house, edm]
12
+ secondary: [pop, ambient, experimental]
13
+ complexity: beginner
14
+ introduced_in: "1.0"
15
+
16
+ key_parameters:
17
+ - name: "Mode"
18
+ description: "Operating mode — Time sets fixed duration, Trigger converts note-on to fixed output"
19
+ range: ["Time", "Trigger"]
20
+ type: enum
21
+
22
+ - name: "Length"
23
+ description: "Note duration when in Time mode — synced or milliseconds"
24
+ range: ["1/1", "1/2", "1/4", "1/8", "1/16", "1/32"]
25
+ type: enum
26
+ sweet_spots:
27
+ staccato: "1/32"
28
+ short: "1/16"
29
+ medium: "1/8"
30
+ sustained: "1/4"
31
+
32
+ - name: "Gate"
33
+ description: "Note length as percentage of original or set length"
34
+ range: [1, 200]
35
+ unit: "%"
36
+ type: int
37
+ sweet_spots:
38
+ very_short: 10
39
+ staccato: 30
40
+ normal: 80
41
+ legato: 130
42
+ overlapping: 200
43
+
44
+ - name: "Timing"
45
+ description: "Time offset — delays or advances note output"
46
+ range: [-200, 200]
47
+ unit: "ms"
48
+ type: int
49
+
50
+ - name: "Trigger"
51
+ description: "Trigger mode — Note On generates fixed note, Note Off is ignored"
52
+ range: ["Note On", "Note Off", "Both"]
53
+ type: enum
54
+
55
+ pairs_well_with:
56
+ - device: "Arpeggiator"
57
+ reason: "Uniform note lengths after arpeggiation create tight rhythmic patterns"
58
+ - device: "Drum Rack"
59
+ reason: "Consistent trigger lengths for one-shot sample playback"
60
+ - device: "Simpler"
61
+ reason: "Fixed gate lengths for predictable sample triggering"
62
+ - device: "Gate"
63
+ reason: "Pair MIDI gating with audio gating for precise rhythmic effects"
64
+
65
+ starter_recipes:
66
+ - name: "Staccato"
67
+ description: "Very short notes for tight, punchy rhythmic parts"
68
+ genre: techno
69
+ params:
70
+ "Gate": 10
71
+
72
+ - name: "Legato"
73
+ description: "Extended notes that overlap slightly for smooth connected lines"
74
+ genre: ambient
75
+ params:
76
+ "Gate": 200
77
+
78
+ - name: "Trigger to Gate"
79
+ description: "Convert any note input to fixed-length triggers for consistent sample hits"
80
+ genre: edm
81
+ params:
82
+ "Mode": "Trigger"
83
+ "Length": "1/16"
84
+ "Trigger": "Note On"
85
+
86
+ - name: "Uniform 8th Notes"
87
+ description: "Force all notes to exactly one eighth note in length"
88
+ genre: house
89
+ params:
90
+ "Length": "1/8"
91
+ "Gate": 80
92
+
93
+ gotchas:
94
+ - "Gate values above 100% create overlapping notes — can cause issues with monophonic synths"
95
+ - "Trigger mode ignores the original note duration entirely — useful for drum triggers"
96
+ - "In Trigger mode, Note Off trigger fires a new note when you release — can create unintended double hits"
97
+ - "Timing offset can push notes ahead or behind the beat — small negative values add feel"
@@ -0,0 +1,76 @@
1
+ id: pitch
2
+ name: Pitch
3
+ sonic_description: >
4
+ Simple, transparent MIDI pitch transposition that shifts all incoming notes by a
5
+ fixed semitone interval. Can also limit transposition to a specific note range.
6
+ The most direct way to change the key of MIDI input without editing notes.
7
+ effect_type: midi_processor
8
+ character_tags: [transposition, simple, utility, transparent]
9
+ use_cases: [transposition, octave_shifting, key_change, range_limiting, layered_transposition]
10
+ genre_affinity:
11
+ primary: [pop, edm, rock]
12
+ secondary: [jazz, classical, ambient]
13
+ complexity: beginner
14
+ introduced_in: "1.0"
15
+
16
+ key_parameters:
17
+ - name: "Pitch"
18
+ description: "Semitone offset applied to all incoming notes"
19
+ range: [-48, 48]
20
+ unit: "st"
21
+ type: int
22
+ sweet_spots:
23
+ octave_down: -12
24
+ fifth_down: -7
25
+ no_change: 0
26
+ fifth_up: 7
27
+ octave_up: 12
28
+ two_octaves_up: 24
29
+
30
+ - name: "Range"
31
+ description: "Whether to limit the affected pitch range"
32
+ range: ["On", "Off"]
33
+ type: enum
34
+
35
+ - name: "Lowest"
36
+ description: "Lower bound of the affected MIDI note range (when Range is On)"
37
+ range: [0, 127]
38
+ type: int
39
+
40
+ - name: "Highest"
41
+ description: "Upper bound of the affected MIDI note range (when Range is On)"
42
+ range: [0, 127]
43
+ type: int
44
+
45
+ pairs_well_with:
46
+ - device: "Chord"
47
+ reason: "Transpose the output of Chord to shift entire chord structures"
48
+ - device: "Arpeggiator"
49
+ reason: "Shift arpeggiated output up or down without changing the arp pattern"
50
+ - device: "Scale"
51
+ reason: "Transpose then snap to scale for key-aware transposition"
52
+
53
+ starter_recipes:
54
+ - name: "Octave Up"
55
+ description: "Shift all notes up one octave"
56
+ genre: pop
57
+ params:
58
+ "Pitch": 12
59
+
60
+ - name: "Octave Down"
61
+ description: "Shift all notes down one octave for bass register"
62
+ genre: edm
63
+ params:
64
+ "Pitch": -12
65
+
66
+ - name: "Transpose to Key"
67
+ description: "Shift up a fifth — useful for quick harmonic layering"
68
+ genre: pop
69
+ params:
70
+ "Pitch": 7
71
+
72
+ gotchas:
73
+ - "Pitch is a static offset — it does not adapt to key or scale. Notes shifted out of scale will sound wrong without a Scale device"
74
+ - "Range mode only transposes notes within the specified range — notes outside pass through unchanged"
75
+ - "Values beyond +/-48 semitones can push notes outside the audible MIDI range (0-127)"
76
+ - "Multiple Pitch devices stack additively — two +7 Pitch devices = +14 semitones total"
@@ -0,0 +1,117 @@
1
+ id: random
2
+ name: Random
3
+ sonic_description: >
4
+ Adds controlled randomization to MIDI note properties — pitch, velocity, or timing.
5
+ Creates evolving, non-repeating patterns from static input, ranging from subtle
6
+ humanization to full generative chaos depending on parameter settings.
7
+ effect_type: midi_processor
8
+ character_tags: [generative, chaotic, evolving, unpredictable, humanizing]
9
+ use_cases: [generative_melody, humanization, probability_gates, evolving_patterns, controlled_chaos]
10
+ genre_affinity:
11
+ primary: [ambient, experimental, generative]
12
+ secondary: [techno, idm, glitch]
13
+ complexity: intermediate
14
+ introduced_in: "1.0"
15
+
16
+ key_parameters:
17
+ - name: "Chance"
18
+ description: "Probability that randomization occurs on each note (0 = never, 100 = always)"
19
+ range: [0, 100]
20
+ unit: "%"
21
+ type: int
22
+ sweet_spots:
23
+ subtle: 25
24
+ moderate: 50
25
+ frequent: 75
26
+ always: 100
27
+
28
+ - name: "Choices"
29
+ description: "Number of possible random values — higher = more variation"
30
+ range: [1, 24]
31
+ type: int
32
+ sweet_spots:
33
+ binary: 2
34
+ diatonic: 7
35
+ chromatic: 12
36
+ wide: 24
37
+
38
+ - name: "Scale"
39
+ description: "Semitone range of randomization"
40
+ range: [1, 24]
41
+ unit: "st"
42
+ type: int
43
+ sweet_spots:
44
+ subtle: 2
45
+ octave: 12
46
+ two_octave: 24
47
+
48
+ - name: "Mode"
49
+ description: "How randomization is applied"
50
+ range: ["Add", "Toggle", "Randomize"]
51
+ type: enum
52
+ sweet_spots:
53
+ humanize: "Add"
54
+ probability: "Toggle"
55
+ generative: "Randomize"
56
+
57
+ - name: "Sign"
58
+ description: "Direction of random offset"
59
+ range: ["Bi", "Add", "Sub"]
60
+ type: enum
61
+
62
+ pairs_well_with:
63
+ - device: "Scale"
64
+ reason: "Corrects random pitch output to stay in key — essential for musical results"
65
+ - device: "Arpeggiator"
66
+ reason: "Randomizes arpeggiated patterns for evolving sequences"
67
+ - device: "Wavetable"
68
+ reason: "Evolving timbres pair well with unpredictable melodic input"
69
+ - device: "Delay"
70
+ reason: "Delay smears random variations into complex evolving textures"
71
+ - device: "Reverb"
72
+ reason: "Reverb tail blends randomized notes into atmospheric washes"
73
+
74
+ starter_recipes:
75
+ - name: "Subtle Pitch Variation"
76
+ description: "Gentle random pitch offsets for organic, human feel"
77
+ genre: ambient
78
+ params:
79
+ "Chance": 30
80
+ "Choices": 3
81
+ "Scale": 2
82
+ "Mode": "Add"
83
+ "Sign": "Bi"
84
+
85
+ - name: "Generative Melody"
86
+ description: "Full random pitch within an octave — pair with Scale for musicality"
87
+ genre: generative
88
+ params:
89
+ "Chance": 100
90
+ "Choices": 12
91
+ "Scale": 12
92
+ "Mode": "Randomize"
93
+ "Sign": "Bi"
94
+
95
+ - name: "Controlled Chaos"
96
+ description: "High chance, wide range randomization for experimental textures"
97
+ genre: experimental
98
+ params:
99
+ "Chance": 80
100
+ "Choices": 24
101
+ "Scale": 24
102
+ "Mode": "Randomize"
103
+ "Sign": "Bi"
104
+
105
+ - name: "Probability Gate"
106
+ description: "50% chance each note plays — creates evolving rhythmic patterns"
107
+ genre: techno
108
+ params:
109
+ "Chance": 50
110
+ "Mode": "Toggle"
111
+
112
+ gotchas:
113
+ - "Without a Scale device after Random, output will be chromatic and likely dissonant"
114
+ - "Chance at 100% means every note is affected — lower values create a mix of original and randomized notes"
115
+ - "Toggle mode does not change pitch — it randomly enables or disables notes, acting as a probability gate"
116
+ - "Choices and Scale interact — Choices subdivides the Scale range into equal steps"
117
+ - "Sign=Add only offsets upward, Sign=Sub only downward — use Bi for balanced randomization"
@@ -0,0 +1,103 @@
1
+ id: rhythmic_steps
2
+ name: Rhythmic Steps
3
+ sonic_description: >
4
+ Rhythmic step sequencer focused on gate patterns, velocity accents, and per-step
5
+ probability. Transforms held notes into complex rhythmic patterns without changing
6
+ pitch, ideal for creating drum-like rhythmic figures from melodic input.
7
+ effect_type: midi_processor
8
+ character_tags: [rhythmic, sequencer, percussive, pattern, probability]
9
+ use_cases: [rhythm_programming, gate_patterns, accent_sequences, probability_rhythms, euclidean_style]
10
+ genre_affinity:
11
+ primary: [techno, house, edm]
12
+ secondary: [hip_hop, experimental, idm]
13
+ complexity: intermediate
14
+ introduced_in: "12.0"
15
+
16
+ key_parameters:
17
+ - name: "Steps"
18
+ description: "Number of active steps in the rhythmic pattern"
19
+ range: [1, 16]
20
+ type: int
21
+ sweet_spots:
22
+ minimal: 4
23
+ standard: 8
24
+ complex: 16
25
+
26
+ - name: "Rate"
27
+ description: "Playback speed of the step pattern"
28
+ range: ["1/1", "1/2", "1/4", "1/8", "1/16", "1/32"]
29
+ type: enum
30
+ sweet_spots:
31
+ quarter: "1/4"
32
+ eighth: "1/8"
33
+ sixteenth: "1/16"
34
+
35
+ - name: "Gate (per step)"
36
+ description: "Whether each step triggers a note and for how long"
37
+ range: [0, 200]
38
+ unit: "%"
39
+ type: int
40
+ sweet_spots:
41
+ off: 0
42
+ short: 20
43
+ normal: 80
44
+ tied: 200
45
+
46
+ - name: "Velocity (per step)"
47
+ description: "Velocity for each step — creates accent patterns"
48
+ range: [0, 127]
49
+ type: int
50
+ sweet_spots:
51
+ ghost: 40
52
+ normal: 90
53
+ accent: 127
54
+
55
+ - name: "Probability (per step)"
56
+ description: "Chance each step fires — creates evolving, non-repeating patterns"
57
+ range: [0, 100]
58
+ unit: "%"
59
+ type: int
60
+ sweet_spots:
61
+ always: 100
62
+ likely: 75
63
+ coin_flip: 50
64
+ rare: 25
65
+
66
+ pairs_well_with:
67
+ - device: "Drum Rack"
68
+ reason: "Rhythmic gating on drum hits for complex beat programming"
69
+ - device: "Analog"
70
+ reason: "Rhythmic gate patterns on synth drones for sequenced synth lines"
71
+ - device: "Auto Filter"
72
+ reason: "Timbral movement synchronized to rhythmic step triggers"
73
+ - device: "Compressor"
74
+ reason: "Sidechain-style pumping aligned with rhythmic patterns"
75
+
76
+ starter_recipes:
77
+ - name: "Euclidean-Style Pattern"
78
+ description: "Evenly distributed hits across 16 steps for polyrhythmic feel"
79
+ genre: techno
80
+ params:
81
+ "Steps": 16
82
+ "Rate": "1/16"
83
+
84
+ - name: "Probability Rhythm"
85
+ description: "8-step pattern with varying probabilities for evolving beats"
86
+ genre: idm
87
+ params:
88
+ "Steps": 8
89
+ "Rate": "1/16"
90
+
91
+ - name: "Four on the Floor with Ghost Notes"
92
+ description: "Strong accents on beats with quiet ghost notes between"
93
+ genre: house
94
+ params:
95
+ "Steps": 8
96
+ "Rate": "1/8"
97
+
98
+ gotchas:
99
+ - "New in Live 12 — this is a Max for Live MIDI effect included with Suite"
100
+ - "Rhythmic Steps does not change pitch — it only controls rhythm, velocity, and gate"
101
+ - "Steps with Gate at 0 are silent rests — different from Probability at 0 which is deterministically off"
102
+ - "Probability creates variation on each cycle — the pattern is never exactly the same twice"
103
+ - "Combine with Melodic Steps for full melodic+rhythmic sequencing capability"
@@ -0,0 +1,83 @@
1
+ id: scale
2
+ name: Scale
3
+ sonic_description: >
4
+ Forces all incoming MIDI notes to conform to a selected musical scale, correcting
5
+ out-of-key notes by mapping them to the nearest scale degree. Essential for keeping
6
+ generative, randomized, or improvised MIDI output harmonically coherent.
7
+ effect_type: midi_processor
8
+ character_tags: [harmonic, corrective, constraining, tonal]
9
+ use_cases: [scale_locking, key_correction, modal_constraint, generative_safety, improvisation_aid]
10
+ genre_affinity:
11
+ primary: [edm, pop, ambient]
12
+ secondary: [jazz, world, classical, hip_hop]
13
+ complexity: beginner
14
+ introduced_in: "1.0"
15
+
16
+ key_parameters:
17
+ - name: "Base"
18
+ description: "Root note of the scale"
19
+ range: ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]
20
+ type: enum
21
+
22
+ - name: "Scale Type"
23
+ description: "Musical scale or mode to enforce"
24
+ range: ["Major", "Minor", "Dorian", "Mixolydian", "Lydian", "Phrygian", "Locrian", "Harmonic Minor", "Melodic Minor", "Pentatonic Major", "Pentatonic Minor", "Blues", "Whole Tone", "Chromatic"]
25
+ type: enum
26
+ sweet_spots:
27
+ universal: "Minor"
28
+ bright: "Major"
29
+ jazzy: "Dorian"
30
+ eastern: "Phrygian"
31
+ dreamy: "Lydian"
32
+ minimal: "Pentatonic Minor"
33
+
34
+ - name: "Fold"
35
+ description: "Whether out-of-scale notes are folded to nearest scale degree or blocked"
36
+ range: ["On", "Off"]
37
+ type: enum
38
+
39
+ pairs_well_with:
40
+ - device: "Arpeggiator"
41
+ reason: "Place Scale after Arpeggiator to ensure arpeggiated notes stay in key"
42
+ - device: "Random"
43
+ reason: "Scale corrects random pitch offsets to stay musically coherent"
44
+ - device: "Chord"
45
+ reason: "Corrects parallel intervals that fall outside the target scale"
46
+ - device: "Note Echo"
47
+ reason: "Ensures pitch-shifted echo repeats stay in key"
48
+
49
+ starter_recipes:
50
+ - name: "Lock to Natural Minor"
51
+ description: "Constrain all input to A natural minor — safe for most melancholic productions"
52
+ genre: pop
53
+ params:
54
+ "Base": "A"
55
+ "Scale Type": "Minor"
56
+
57
+ - name: "Pentatonic Filter"
58
+ description: "Reduce to pentatonic for universally consonant generative output"
59
+ genre: ambient
60
+ params:
61
+ "Base": "C"
62
+ "Scale Type": "Pentatonic Minor"
63
+
64
+ - name: "Modal Constraint — Dorian"
65
+ description: "Force Dorian mode for jazzy, sophisticated minor tonality"
66
+ genre: jazz
67
+ params:
68
+ "Base": "D"
69
+ "Scale Type": "Dorian"
70
+
71
+ - name: "Blues Scale Lock"
72
+ description: "Constrain to blues scale for authentic blues/soul feel"
73
+ genre: blues
74
+ params:
75
+ "Base": "A"
76
+ "Scale Type": "Blues"
77
+
78
+ gotchas:
79
+ - "Scale has a per-note mapping grid — you can customize individual note routing beyond the preset scales"
80
+ - "Place Scale AFTER pitch-generating MIDI effects (Arpeggiator, Random, Chord) so it corrects their output"
81
+ - "Chromatic scale type passes all notes through unchanged — useful as a bypass without removing the device"
82
+ - "Live 12 clips have their own scale setting — the Scale MIDI effect is independent and can conflict. Check both"
83
+ - "Fold mode determines whether notes snap to nearest scale tone or are silenced — Fold On is usually preferred"