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.
- package/.claude-plugin/marketplace.json +3 -3
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +119 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +144 -13
- package/bin/livepilot.js +87 -0
- package/installer/codex.js +147 -0
- package/livepilot/.Codex-plugin/plugin.json +2 -2
- package/livepilot/.claude-plugin/plugin.json +2 -2
- package/livepilot/skills/livepilot-core/SKILL.md +21 -4
- package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +34 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +204 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +173 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +211 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +188 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +162 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +229 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +243 -0
- package/livepilot/skills/livepilot-core/references/overview.md +13 -9
- package/livepilot/skills/livepilot-core/references/sample-manipulation.md +724 -0
- package/livepilot/skills/livepilot-core/references/sound-design-deep.md +140 -0
- package/livepilot/skills/livepilot-devices/SKILL.md +16 -2
- package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +1 -1
- package/livepilot/skills/livepilot-release/SKILL.md +19 -5
- package/livepilot/skills/livepilot-sample-engine/SKILL.md +104 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +87 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +51 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +131 -0
- package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +45 -0
- package/livepilot/skills/livepilot-wonder/SKILL.md +15 -0
- package/livepilot.mcpb +0 -0
- package/m4l_device/livepilot_bridge.js +1 -1
- package/manifest.json +2 -2
- package/mcp_server/__init__.py +1 -1
- package/mcp_server/atlas/__init__.py +357 -0
- package/mcp_server/atlas/device_atlas.json +44067 -0
- package/mcp_server/atlas/enrichments/__init__.py +111 -0
- package/mcp_server/atlas/enrichments/audio_effects/auto_filter.yaml +162 -0
- package/mcp_server/atlas/enrichments/audio_effects/beat_repeat.yaml +183 -0
- package/mcp_server/atlas/enrichments/audio_effects/channel_eq.yaml +126 -0
- package/mcp_server/atlas/enrichments/audio_effects/chorus_ensemble.yaml +149 -0
- package/mcp_server/atlas/enrichments/audio_effects/color_limiter.yaml +109 -0
- package/mcp_server/atlas/enrichments/audio_effects/compressor.yaml +159 -0
- package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb.yaml +143 -0
- package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb_pro.yaml +178 -0
- package/mcp_server/atlas/enrichments/audio_effects/delay.yaml +151 -0
- package/mcp_server/atlas/enrichments/audio_effects/drum_buss.yaml +142 -0
- package/mcp_server/atlas/enrichments/audio_effects/dynamic_tube.yaml +147 -0
- package/mcp_server/atlas/enrichments/audio_effects/echo.yaml +167 -0
- package/mcp_server/atlas/enrichments/audio_effects/eq_eight.yaml +148 -0
- package/mcp_server/atlas/enrichments/audio_effects/eq_three.yaml +121 -0
- package/mcp_server/atlas/enrichments/audio_effects/erosion.yaml +103 -0
- package/mcp_server/atlas/enrichments/audio_effects/filter_delay.yaml +173 -0
- package/mcp_server/atlas/enrichments/audio_effects/gate.yaml +130 -0
- package/mcp_server/atlas/enrichments/audio_effects/gated_delay.yaml +133 -0
- package/mcp_server/atlas/enrichments/audio_effects/glue_compressor.yaml +142 -0
- package/mcp_server/atlas/enrichments/audio_effects/grain_delay.yaml +141 -0
- package/mcp_server/atlas/enrichments/audio_effects/hybrid_reverb.yaml +160 -0
- package/mcp_server/atlas/enrichments/audio_effects/limiter.yaml +97 -0
- package/mcp_server/atlas/enrichments/audio_effects/multiband_dynamics.yaml +174 -0
- package/mcp_server/atlas/enrichments/audio_effects/overdrive.yaml +119 -0
- package/mcp_server/atlas/enrichments/audio_effects/pedal.yaml +145 -0
- package/mcp_server/atlas/enrichments/audio_effects/phaser_flanger.yaml +161 -0
- package/mcp_server/atlas/enrichments/audio_effects/redux.yaml +114 -0
- package/mcp_server/atlas/enrichments/audio_effects/reverb.yaml +190 -0
- package/mcp_server/atlas/enrichments/audio_effects/roar.yaml +159 -0
- package/mcp_server/atlas/enrichments/audio_effects/saturator.yaml +146 -0
- package/mcp_server/atlas/enrichments/audio_effects/shifter.yaml +154 -0
- package/mcp_server/atlas/enrichments/audio_effects/spectral_resonator.yaml +141 -0
- package/mcp_server/atlas/enrichments/audio_effects/spectral_time.yaml +164 -0
- package/mcp_server/atlas/enrichments/audio_effects/vector_delay.yaml +140 -0
- package/mcp_server/atlas/enrichments/audio_effects/vinyl_distortion.yaml +141 -0
- package/mcp_server/atlas/enrichments/instruments/analog.yaml +222 -0
- package/mcp_server/atlas/enrichments/instruments/bass.yaml +202 -0
- package/mcp_server/atlas/enrichments/instruments/collision.yaml +150 -0
- package/mcp_server/atlas/enrichments/instruments/drift.yaml +167 -0
- package/mcp_server/atlas/enrichments/instruments/electric.yaml +137 -0
- package/mcp_server/atlas/enrichments/instruments/emit.yaml +163 -0
- package/mcp_server/atlas/enrichments/instruments/meld.yaml +164 -0
- package/mcp_server/atlas/enrichments/instruments/operator.yaml +197 -0
- package/mcp_server/atlas/enrichments/instruments/poli.yaml +192 -0
- package/mcp_server/atlas/enrichments/instruments/sampler.yaml +218 -0
- package/mcp_server/atlas/enrichments/instruments/simpler.yaml +217 -0
- package/mcp_server/atlas/enrichments/instruments/tension.yaml +156 -0
- package/mcp_server/atlas/enrichments/instruments/tree_tone.yaml +162 -0
- package/mcp_server/atlas/enrichments/instruments/vector_fm.yaml +165 -0
- package/mcp_server/atlas/enrichments/instruments/vector_grain.yaml +166 -0
- package/mcp_server/atlas/enrichments/instruments/wavetable.yaml +162 -0
- package/mcp_server/atlas/enrichments/midi_effects/arpeggiator.yaml +156 -0
- package/mcp_server/atlas/enrichments/midi_effects/bouncy_notes.yaml +93 -0
- package/mcp_server/atlas/enrichments/midi_effects/chord.yaml +147 -0
- package/mcp_server/atlas/enrichments/midi_effects/melodic_steps.yaml +97 -0
- package/mcp_server/atlas/enrichments/midi_effects/note_echo.yaml +108 -0
- package/mcp_server/atlas/enrichments/midi_effects/note_length.yaml +97 -0
- package/mcp_server/atlas/enrichments/midi_effects/pitch.yaml +76 -0
- package/mcp_server/atlas/enrichments/midi_effects/random.yaml +117 -0
- package/mcp_server/atlas/enrichments/midi_effects/rhythmic_steps.yaml +103 -0
- package/mcp_server/atlas/enrichments/midi_effects/scale.yaml +83 -0
- package/mcp_server/atlas/enrichments/midi_effects/step_arp.yaml +112 -0
- package/mcp_server/atlas/enrichments/midi_effects/velocity.yaml +119 -0
- package/mcp_server/atlas/enrichments/utility/amp.yaml +159 -0
- package/mcp_server/atlas/enrichments/utility/cabinet.yaml +109 -0
- package/mcp_server/atlas/enrichments/utility/corpus.yaml +150 -0
- package/mcp_server/atlas/enrichments/utility/resonators.yaml +131 -0
- package/mcp_server/atlas/enrichments/utility/spectrum.yaml +63 -0
- package/mcp_server/atlas/enrichments/utility/tuner.yaml +51 -0
- package/mcp_server/atlas/enrichments/utility/utility.yaml +136 -0
- package/mcp_server/atlas/enrichments/utility/vocoder.yaml +160 -0
- package/mcp_server/atlas/scanner.py +236 -0
- package/mcp_server/atlas/tools.py +224 -0
- package/mcp_server/composer/__init__.py +1 -0
- package/mcp_server/composer/engine.py +452 -0
- package/mcp_server/composer/layer_planner.py +427 -0
- package/mcp_server/composer/prompt_parser.py +329 -0
- package/mcp_server/composer/tools.py +201 -0
- package/mcp_server/connection.py +53 -8
- package/mcp_server/corpus/__init__.py +377 -0
- package/mcp_server/device_forge/__init__.py +1 -0
- package/mcp_server/device_forge/builder.py +377 -0
- package/mcp_server/device_forge/models.py +142 -0
- package/mcp_server/device_forge/templates.py +483 -0
- package/mcp_server/device_forge/tools.py +162 -0
- package/mcp_server/hook_hunter/analyzer.py +23 -0
- package/mcp_server/hook_hunter/models.py +1 -0
- package/mcp_server/hook_hunter/tools.py +4 -2
- package/mcp_server/m4l_bridge.py +1 -0
- package/mcp_server/memory/taste_graph.py +68 -1
- package/mcp_server/memory/tools.py +15 -4
- package/mcp_server/musical_intelligence/detectors.py +14 -1
- package/mcp_server/musical_intelligence/tools.py +11 -8
- package/mcp_server/persistence/__init__.py +1 -0
- package/mcp_server/persistence/base_store.py +82 -0
- package/mcp_server/persistence/project_store.py +106 -0
- package/mcp_server/persistence/taste_store.py +122 -0
- package/mcp_server/preview_studio/models.py +1 -0
- package/mcp_server/preview_studio/tools.py +56 -13
- package/mcp_server/runtime/capability.py +66 -0
- package/mcp_server/runtime/capability_probe.py +137 -0
- package/mcp_server/runtime/execution_router.py +143 -0
- package/mcp_server/runtime/live_version.py +102 -0
- package/mcp_server/runtime/remote_commands.py +87 -0
- package/mcp_server/runtime/tools.py +18 -4
- package/mcp_server/sample_engine/__init__.py +1 -0
- package/mcp_server/sample_engine/analyzer.py +216 -0
- package/mcp_server/sample_engine/critics.py +390 -0
- package/mcp_server/sample_engine/models.py +193 -0
- package/mcp_server/sample_engine/moves.py +127 -0
- package/mcp_server/sample_engine/planner.py +186 -0
- package/mcp_server/sample_engine/sources.py +540 -0
- package/mcp_server/sample_engine/techniques.py +908 -0
- package/mcp_server/sample_engine/tools.py +442 -0
- package/mcp_server/semantic_moves/__init__.py +3 -0
- package/mcp_server/semantic_moves/device_creation_moves.py +237 -0
- package/mcp_server/semantic_moves/mix_moves.py +41 -41
- package/mcp_server/semantic_moves/performance_moves.py +13 -13
- package/mcp_server/semantic_moves/sample_compilers.py +372 -0
- package/mcp_server/semantic_moves/sound_design_moves.py +15 -15
- package/mcp_server/semantic_moves/tools.py +18 -17
- package/mcp_server/semantic_moves/transition_moves.py +16 -16
- package/mcp_server/server.py +51 -0
- package/mcp_server/services/__init__.py +1 -0
- package/mcp_server/services/motif_service.py +67 -0
- package/mcp_server/session_continuity/tracker.py +29 -1
- package/mcp_server/song_brain/builder.py +28 -1
- package/mcp_server/song_brain/models.py +4 -0
- package/mcp_server/song_brain/tools.py +20 -2
- package/mcp_server/sound_design/critics.py +89 -1
- package/mcp_server/splice_client/__init__.py +1 -0
- package/mcp_server/splice_client/client.py +347 -0
- package/mcp_server/splice_client/models.py +96 -0
- package/mcp_server/splice_client/protos/__init__.py +1 -0
- package/mcp_server/splice_client/protos/app_pb2.py +319 -0
- package/mcp_server/splice_client/protos/app_pb2.pyi +1153 -0
- package/mcp_server/splice_client/protos/app_pb2_grpc.py +1946 -0
- package/mcp_server/tools/arrangement.py +69 -0
- package/mcp_server/tools/automation.py +15 -2
- package/mcp_server/tools/devices.py +117 -6
- package/mcp_server/tools/notes.py +37 -4
- package/mcp_server/wonder_mode/diagnosis.py +5 -0
- package/mcp_server/wonder_mode/engine.py +85 -1
- package/mcp_server/wonder_mode/tools.py +6 -1
- package/package.json +12 -2
- package/remote_script/LivePilot/__init__.py +8 -1
- package/remote_script/LivePilot/arrangement.py +114 -0
- package/remote_script/LivePilot/browser.py +56 -1
- package/remote_script/LivePilot/devices.py +236 -6
- package/remote_script/LivePilot/mixing.py +8 -3
- package/remote_script/LivePilot/server.py +5 -1
- package/remote_script/LivePilot/transport.py +3 -0
- package/remote_script/LivePilot/version_detect.py +78 -0
- 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"
|