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,163 @@
1
+ id: emit
2
+ name: Emit
3
+ sonic_description: >
4
+ Spectral synthesizer with direct control over individual harmonics and partials.
5
+ Allows sculpting of timbres at the partial level with spectral filtering, built-in
6
+ effects, and organic motion. Produces crystalline, ethereal, and breathy tones
7
+ that sit between synthesis and acoustic sound in a way no other Live instrument achieves.
8
+ synthesis_type: spectral
9
+ character_tags: [crystalline, ethereal, spectral, breathy, luminous]
10
+ use_cases: [pads, textures, atmospheric, vocal_textures, sound_design]
11
+ genre_affinity:
12
+ primary: [ambient, experimental, cinematic]
13
+ secondary: [electronic, post_rock, new_age, sound_design]
14
+ complexity: advanced
15
+ self_contained: true
16
+ introduced_in: "12.0"
17
+
18
+ key_parameters:
19
+ - name: "Partials"
20
+ description: "Number of active harmonic partials in the sound"
21
+ range: [1, 64]
22
+ type: int
23
+ sweet_spots:
24
+ simple_pure: 4
25
+ rich: 16
26
+ complex: 32
27
+ maximum: 64
28
+
29
+ - name: "Spectral Shape"
30
+ description: "Overall spectral envelope that shapes which partials are prominent"
31
+ range: [0.0, 1.0]
32
+ type: float
33
+ sweet_spots:
34
+ fundamental_heavy: 0.1
35
+ balanced: 0.5
36
+ upper_partials: 0.9
37
+
38
+ - name: "Spectral Filter"
39
+ description: "Spectral domain filtering — shapes the harmonic content differently from traditional filters"
40
+ range: [0.0, 1.0]
41
+ type: float
42
+ sweet_spots:
43
+ dark: 0.2
44
+ neutral: 0.5
45
+ bright: 0.9
46
+
47
+ - name: "Breath"
48
+ description: "Amount of breathy, noise-like component blended with the partials"
49
+ range: [0.0, 1.0]
50
+ type: float
51
+ sweet_spots:
52
+ pure: 0.0
53
+ subtle_air: 0.2
54
+ breathy: 0.5
55
+ whispered: 0.8
56
+
57
+ - name: "Motion Rate"
58
+ description: "Speed of internal spectral motion — how fast partials shift and evolve"
59
+ range: [0.0, 1.0]
60
+ type: float
61
+ sweet_spots:
62
+ static: 0.0
63
+ slow_drift: 0.2
64
+ moderate: 0.5
65
+ fast_shimmer: 0.8
66
+
67
+ - name: "Motion Amount"
68
+ description: "Depth of spectral motion — how much the partials deviate from their base positions"
69
+ range: [0.0, 1.0]
70
+ type: float
71
+ sweet_spots:
72
+ subtle: 0.15
73
+ organic: 0.4
74
+ chaotic: 0.8
75
+
76
+ - name: "Brightness"
77
+ description: "Overall timbral brightness control"
78
+ range: [0.0, 1.0]
79
+ type: float
80
+ sweet_spots:
81
+ dark: 0.2
82
+ natural: 0.5
83
+ sparkling: 0.85
84
+
85
+ - name: "Attack"
86
+ description: "Amplitude envelope attack time"
87
+ range: [0.0, 10000.0]
88
+ unit: "ms"
89
+ type: float
90
+ sweet_spots:
91
+ immediate: 0.0
92
+ pad: 500.0
93
+ slow_swell: 2000.0
94
+
95
+ - name: "Release"
96
+ description: "Amplitude envelope release time"
97
+ range: [0.0, 10000.0]
98
+ unit: "ms"
99
+ type: float
100
+ sweet_spots:
101
+ tight: 100.0
102
+ natural: 500.0
103
+ ambient: 3000.0
104
+
105
+ pairs_well_with:
106
+ - device: "Reverb"
107
+ reason: "Spectral sounds merge beautifully with long reverb — creates immersive washes"
108
+ - device: "Delay"
109
+ reason: "Evolving partials create naturally varied delay repetitions"
110
+ - device: "Chorus-Ensemble"
111
+ reason: "Adds width and subtle detuning that enhances the crystalline quality"
112
+ - device: "EQ Eight"
113
+ reason: "Surgical EQ can isolate or boost specific partial ranges for precision"
114
+ - device: "Utility"
115
+ reason: "Width control essential — spectral sounds often need mono-bass treatment"
116
+
117
+ starter_recipes:
118
+ - name: "Evolving Harmonics"
119
+ description: "Slowly shifting spectral landscape with organic motion and rich partials"
120
+ genre: ambient
121
+ params:
122
+ "Partials": 24
123
+ "Spectral Shape": 0.5
124
+ "Motion Rate": 0.2
125
+ "Motion Amount": 0.4
126
+ "Breath": 0.1
127
+ "Brightness": 0.6
128
+ "Attack": 800.0
129
+ "Release": 3000.0
130
+
131
+ - name: "Crystalline Pad"
132
+ description: "Pure, bell-like pad with shimmering upper partials"
133
+ genre: cinematic
134
+ params:
135
+ "Partials": 16
136
+ "Spectral Shape": 0.7
137
+ "Spectral Filter": 0.7
138
+ "Motion Rate": 0.15
139
+ "Motion Amount": 0.2
140
+ "Breath": 0.0
141
+ "Brightness": 0.8
142
+ "Attack": 500.0
143
+ "Release": 2000.0
144
+
145
+ - name: "Breathy Texture"
146
+ description: "Airy, vocal-like texture blending partials with breath noise"
147
+ genre: experimental
148
+ params:
149
+ "Partials": 12
150
+ "Spectral Shape": 0.4
151
+ "Breath": 0.5
152
+ "Motion Rate": 0.3
153
+ "Motion Amount": 0.35
154
+ "Brightness": 0.5
155
+ "Attack": 300.0
156
+ "Release": 1500.0
157
+
158
+ gotchas:
159
+ - "New in Live 12 — exact parameter names may differ from generic descriptions here. Always use get_device_parameters to discover the actual parameter list"
160
+ - "High partial counts are CPU-intensive — reduce for dense arrangements"
161
+ - "Spectral synthesis is fundamentally different from subtractive — traditional filter-based sound design intuitions don't always apply"
162
+ - "Motion Amount at high values can make the sound pitch-unstable — use carefully on melodic parts"
163
+ - "Breath parameter adds noise-band energy that occupies a different frequency space than the partials — useful for realism but can muddy a mix"
@@ -0,0 +1,164 @@
1
+ id: meld
2
+ name: Meld
3
+ sonic_description: >
4
+ MPE-ready dual-engine synthesizer combining an additive-inspired engine with an
5
+ FM-inspired engine, blended through a central mixer. Designed for expressive
6
+ performance with per-note pitch bend, slide, and pressure response. Produces
7
+ rich, evolving timbres that respond intimately to playing dynamics.
8
+ synthesis_type: additive
9
+ character_tags: [expressive, responsive, complex, evolving, MPE]
10
+ use_cases: [pads, leads, textures, expressive_performance, sound_design]
11
+ genre_affinity:
12
+ primary: [ambient, experimental, cinematic]
13
+ secondary: [electronic, downtempo, neo-soul, art_pop]
14
+ complexity: advanced
15
+ self_contained: true
16
+ introduced_in: "11.0"
17
+
18
+ key_parameters:
19
+ - name: "Engine 1 Shape"
20
+ description: "Timbral shape of the additive-inspired engine"
21
+ range: [0.0, 1.0]
22
+ type: float
23
+ sweet_spots:
24
+ simple: 0.0
25
+ complex: 0.7
26
+
27
+ - name: "Engine 2 Shape"
28
+ description: "Timbral shape of the FM-inspired engine"
29
+ range: [0.0, 1.0]
30
+ type: float
31
+ sweet_spots:
32
+ mellow: 0.2
33
+ bright: 0.8
34
+
35
+ - name: "Engine Mix"
36
+ description: "Crossfade balance between Engine 1 and Engine 2"
37
+ range: [0.0, 1.0]
38
+ type: float
39
+ sweet_spots:
40
+ engine_1_only: 0.0
41
+ balanced: 0.5
42
+ engine_2_only: 1.0
43
+
44
+ - name: "Filter Freq"
45
+ description: "Global filter cutoff frequency"
46
+ range: [20.0, 20000.0]
47
+ unit: "Hz"
48
+ type: float
49
+ sweet_spots:
50
+ warm: 2000.0
51
+ open: 12000.0
52
+
53
+ - name: "Filter Res"
54
+ description: "Global filter resonance"
55
+ range: [0.0, 1.0]
56
+ type: float
57
+ sweet_spots:
58
+ clean: 0.0
59
+ colored: 0.3
60
+
61
+ - name: "MPE Slide"
62
+ description: "How much MPE slide (Y-axis) affects timbre — maps to tonal brightness"
63
+ range: [0.0, 1.0]
64
+ type: float
65
+ sweet_spots:
66
+ subtle: 0.3
67
+ responsive: 0.7
68
+
69
+ - name: "MPE Press"
70
+ description: "How much MPE pressure (Z-axis/aftertouch) affects the sound"
71
+ range: [0.0, 1.0]
72
+ type: float
73
+ sweet_spots:
74
+ gentle: 0.3
75
+ expressive: 0.7
76
+
77
+ - name: "Cross Mod"
78
+ description: "Cross-modulation amount between the two engines"
79
+ range: [0.0, 1.0]
80
+ type: float
81
+ sweet_spots:
82
+ none: 0.0
83
+ subtle_interaction: 0.2
84
+ aggressive: 0.6
85
+
86
+ - name: "Attack"
87
+ description: "Amplitude envelope attack"
88
+ range: [0.0, 10000.0]
89
+ unit: "ms"
90
+ type: float
91
+ sweet_spots:
92
+ percussive: 0.0
93
+ pad: 600.0
94
+
95
+ - name: "Release"
96
+ description: "Amplitude envelope release"
97
+ range: [0.0, 10000.0]
98
+ unit: "ms"
99
+ type: float
100
+ sweet_spots:
101
+ tight: 100.0
102
+ ambient: 2000.0
103
+
104
+ pairs_well_with:
105
+ - device: "Reverb"
106
+ reason: "MPE expression + reverb creates deeply immersive evolving soundscapes"
107
+ - device: "Delay"
108
+ reason: "Expression-driven timbral changes create unique variation in delay repeats"
109
+ - device: "Chorus-Ensemble"
110
+ reason: "Adds width and movement to the already complex dual-engine sound"
111
+ - device: "Auto Filter"
112
+ reason: "Additional filter movement layered with MPE expression"
113
+ - device: "Utility"
114
+ reason: "Width control helps place the often-wide Meld sound in a mix"
115
+
116
+ starter_recipes:
117
+ - name: "MPE Pad"
118
+ description: "Expressive pad that responds to slide and pressure for live performance"
119
+ genre: ambient
120
+ params:
121
+ "Engine 1 Shape": 0.3
122
+ "Engine 2 Shape": 0.5
123
+ "Engine Mix": 0.4
124
+ "MPE Slide": 0.6
125
+ "MPE Press": 0.5
126
+ "Filter Freq": 3000.0
127
+ "Filter Res": 0.15
128
+ "Attack": 500.0
129
+ "Release": 2000.0
130
+
131
+ - name: "Responsive Lead"
132
+ description: "Expressive monophonic lead where dynamics shape timbre in real time"
133
+ genre: experimental
134
+ params:
135
+ "Engine 1 Shape": 0.6
136
+ "Engine 2 Shape": 0.7
137
+ "Engine Mix": 0.3
138
+ "Cross Mod": 0.25
139
+ "MPE Press": 0.7
140
+ "Filter Freq": 5000.0
141
+ "Filter Res": 0.25
142
+ "Attack": 5.0
143
+ "Release": 300.0
144
+
145
+ - name: "Evolving Texture"
146
+ description: "Slowly morphing textural sound using cross-modulation between engines"
147
+ genre: cinematic
148
+ params:
149
+ "Engine 1 Shape": 0.2
150
+ "Engine 2 Shape": 0.8
151
+ "Engine Mix": 0.5
152
+ "Cross Mod": 0.4
153
+ "MPE Slide": 0.5
154
+ "Filter Freq": 4000.0
155
+ "Filter Res": 0.2
156
+ "Attack": 1000.0
157
+ "Release": 3000.0
158
+
159
+ gotchas:
160
+ - "MPE features require an MPE-capable controller (Roli Seaboard, Linnstrument, Sensel Morph) — without one, Meld works as a standard synth but loses its main advantage"
161
+ - "Cross-modulation between engines can create very complex, sometimes harsh timbres — start low and increase"
162
+ - "The dual-engine architecture means more parameters than simpler synths — use get_device_parameters to discover the full set"
163
+ - "Engine Mix is the most impactful single parameter for timbral change — automate for evolving textures"
164
+ - "MPE Slide and Press ranges should match your controller's sensitivity — too high can be hard to control"
@@ -0,0 +1,197 @@
1
+ id: operator
2
+ name: Operator
3
+ sonic_description: >
4
+ Four-operator FM synthesizer with 11 routing algorithms that range from pure additive
5
+ (all parallel) to deep FM chains (all serial). Capable of crystalline bells, metallic
6
+ percussion, punchy electric pianos, and aggressive digital basses that no subtractive
7
+ synth can produce.
8
+ synthesis_type: fm
9
+ character_tags: [metallic, crystalline, precise, digital, complex]
10
+ use_cases: [bass, bells, keys, percussion, textures]
11
+ genre_affinity:
12
+ primary: [techno, experimental, jazz]
13
+ secondary: [ambient, dnb, house, pop]
14
+ complexity: advanced
15
+ self_contained: true
16
+ introduced_in: "1.0"
17
+
18
+ key_parameters:
19
+ - name: "Algorithm"
20
+ description: "Routing topology between 4 operators — defines FM vs additive balance (1=all serial/max FM, 11=all parallel/additive)"
21
+ range: [1, 11]
22
+ type: int
23
+ sweet_spots:
24
+ maximum_fm: 1
25
+ classic_epiano: 6
26
+ bell: 4
27
+ additive: 11
28
+ hybrid: 7
29
+
30
+ - name: "Osc-A Coarse"
31
+ description: "Operator A frequency ratio — harmonic ratios (1, 2, 3...) sound tonal, non-integer ratios sound metallic"
32
+ range: [0.5, 48.0]
33
+ type: float
34
+ sweet_spots:
35
+ fundamental: 1.0
36
+ octave: 2.0
37
+ fifth: 3.0
38
+ metallic: 7.0
39
+
40
+ - name: "Osc-A Level"
41
+ description: "Operator A output level — as modulator, controls FM depth; as carrier, controls volume"
42
+ range: [0.0, 1.0]
43
+ type: float
44
+ sweet_spots:
45
+ subtle_fm: 0.3
46
+ moderate_fm: 0.6
47
+ aggressive_fm: 0.9
48
+
49
+ - name: "Osc-A Waveform"
50
+ description: "Operator A waveform shape"
51
+ range: ["Sine", "Saw", "Square", "Triangle", "Noise"]
52
+ type: enum
53
+ sweet_spots:
54
+ pure_fm: "Sine"
55
+ harsh: "Saw"
56
+
57
+ - name: "Osc-B Coarse"
58
+ description: "Operator B frequency ratio"
59
+ range: [0.5, 48.0]
60
+ type: float
61
+ sweet_spots:
62
+ fundamental: 1.0
63
+ bright_fm: 4.0
64
+
65
+ - name: "Osc-B Level"
66
+ description: "Operator B output/modulation level"
67
+ range: [0.0, 1.0]
68
+ type: float
69
+ sweet_spots:
70
+ subtle: 0.2
71
+ moderate: 0.5
72
+
73
+ - name: "Osc-C Coarse"
74
+ description: "Operator C frequency ratio"
75
+ range: [0.5, 48.0]
76
+ type: float
77
+ sweet_spots:
78
+ harmonic: 3.0
79
+ inharmonic: 5.5
80
+
81
+ - name: "Osc-C Level"
82
+ description: "Operator C output/modulation level"
83
+ range: [0.0, 1.0]
84
+ type: float
85
+ sweet_spots:
86
+ subtle: 0.3
87
+
88
+ - name: "Osc-D Coarse"
89
+ description: "Operator D frequency ratio"
90
+ range: [0.5, 48.0]
91
+ type: float
92
+ sweet_spots:
93
+ fundamental: 1.0
94
+
95
+ - name: "Osc-D Level"
96
+ description: "Operator D output/modulation level"
97
+ range: [0.0, 1.0]
98
+ type: float
99
+ sweet_spots:
100
+ carrier: 0.8
101
+
102
+ - name: "Filter Freq"
103
+ description: "Global filter cutoff frequency"
104
+ range: [20.0, 20000.0]
105
+ unit: "Hz"
106
+ type: float
107
+ sweet_spots:
108
+ dark: 1000.0
109
+ open: 15000.0
110
+
111
+ - name: "Filter Res"
112
+ description: "Global filter resonance"
113
+ range: [0.0, 1.0]
114
+ type: float
115
+ sweet_spots:
116
+ clean: 0.0
117
+ colored: 0.3
118
+
119
+ - name: "LFO Rate"
120
+ description: "LFO speed for vibrato or tremolo"
121
+ range: [0.01, 30.0]
122
+ unit: "Hz"
123
+ type: float
124
+ sweet_spots:
125
+ vibrato: 5.5
126
+ slow_sweep: 0.3
127
+
128
+ - name: "LFO Amount"
129
+ description: "LFO modulation depth"
130
+ range: [0.0, 1.0]
131
+ type: float
132
+ sweet_spots:
133
+ subtle_vibrato: 0.1
134
+ deep_modulation: 0.5
135
+
136
+ pairs_well_with:
137
+ - device: "Reverb"
138
+ reason: "FM bells and keys sound stunning with plate or hall reverb"
139
+ - device: "Chorus-Ensemble"
140
+ reason: "Softens the digital precision and adds warmth to FM timbres"
141
+ - device: "EQ Eight"
142
+ reason: "FM synthesis creates unpredictable harmonics that often need surgical EQ"
143
+ - device: "Compressor"
144
+ reason: "Tames the wide dynamic range of velocity-sensitive FM patches"
145
+ - device: "Saturator"
146
+ reason: "Adds analog warmth to counterbalance FM's inherently digital character"
147
+
148
+ starter_recipes:
149
+ - name: "FM Bass"
150
+ description: "Deep, punchy FM bass with controlled harmonics — Algorithm 1 for maximum modulation"
151
+ genre: techno
152
+ params:
153
+ "Algorithm": 1
154
+ "Osc-A Coarse": 1.0
155
+ "Osc-A Level": 0.6
156
+ "Osc-A Waveform": "Sine"
157
+ "Osc-B Coarse": 1.0
158
+ "Osc-B Level": 0.8
159
+ "Osc-C Coarse": 2.0
160
+ "Osc-C Level": 0.3
161
+ "Osc-D Coarse": 1.0
162
+ "Osc-D Level": 0.7
163
+
164
+ - name: "Metallic Bell"
165
+ description: "Shimmering bell tone with inharmonic partials — Algorithm 4 for parallel modulators"
166
+ genre: ambient
167
+ params:
168
+ "Algorithm": 4
169
+ "Osc-A Coarse": 1.0
170
+ "Osc-A Level": 0.5
171
+ "Osc-B Coarse": 3.5
172
+ "Osc-B Level": 0.4
173
+ "Osc-C Coarse": 7.0
174
+ "Osc-C Level": 0.25
175
+ "Osc-D Coarse": 1.0
176
+ "Osc-D Level": 0.7
177
+
178
+ - name: "Electric Piano"
179
+ description: "Classic DX-style electric piano — Algorithm 6 with paired carrier/modulator operators"
180
+ genre: jazz
181
+ params:
182
+ "Algorithm": 6
183
+ "Osc-A Coarse": 1.0
184
+ "Osc-A Level": 0.4
185
+ "Osc-B Coarse": 1.0
186
+ "Osc-B Level": 0.7
187
+ "Osc-C Coarse": 14.0
188
+ "Osc-C Level": 0.15
189
+ "Osc-D Coarse": 1.0
190
+ "Osc-D Level": 0.7
191
+
192
+ gotchas:
193
+ - "Algorithm choice fundamentally changes the sound — always set this first before adjusting operator levels"
194
+ - "Non-integer Coarse ratios (3.5, 7.1, etc.) create inharmonic/metallic timbres — use for bells and percussion"
195
+ - "Operator Level as a modulator controls FM depth, not volume — small changes cause dramatic timbral shifts"
196
+ - "Each operator has its own ADSR envelope — for percussive FM, use fast decay on modulators"
197
+ - "Velocity sensitivity on modulator levels is key for expressive FM patches — higher velocity = more brightness"