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,202 @@
1
+ id: bass
2
+ name: Bass
3
+ sonic_description: >
4
+ Purpose-built bass synthesizer with focused controls optimized for low-end production.
5
+ Features a streamlined signal path with oscillator, integrated distortion, compression,
6
+ and filter designed specifically for bass frequencies. Delivers everything from clean
7
+ sub-bass to aggressive, distorted bass lines with less tweaking than general-purpose synths.
8
+ synthesis_type: subtractive
9
+ character_tags: [deep, powerful, focused, punchy, low_end]
10
+ use_cases: [sub_bass, distorted_bass, funk_bass, bass_lines, low_end]
11
+ genre_affinity:
12
+ primary: [hip_hop, house, dnb, pop]
13
+ secondary: [techno, trap, r_and_b, funk, dubstep]
14
+ complexity: beginner
15
+ self_contained: true
16
+ introduced_in: "12.0"
17
+
18
+ key_parameters:
19
+ - name: "Osc Shape"
20
+ description: "Oscillator waveform shape — determines the harmonic foundation of the bass"
21
+ range: [0.0, 1.0]
22
+ type: float
23
+ sweet_spots:
24
+ pure_sub: 0.0
25
+ warm_saw: 0.5
26
+ buzzy_square: 1.0
27
+
28
+ - name: "Sub Level"
29
+ description: "Sub-harmonic oscillator level — adds pure low-end weight below the main oscillator"
30
+ range: [0.0, 1.0]
31
+ type: float
32
+ sweet_spots:
33
+ off: 0.0
34
+ subtle_weight: 0.3
35
+ heavy_sub: 0.7
36
+ dominant: 1.0
37
+
38
+ - name: "Filter Freq"
39
+ description: "Low-pass filter cutoff — controls how much harmonic content passes through"
40
+ range: [20.0, 20000.0]
41
+ unit: "Hz"
42
+ type: float
43
+ sweet_spots:
44
+ deep_sub: 120.0
45
+ warm_bass: 400.0
46
+ mid_bass: 1000.0
47
+ open: 5000.0
48
+
49
+ - name: "Filter Res"
50
+ description: "Filter resonance — adds emphasis at the cutoff frequency"
51
+ range: [0.0, 1.0]
52
+ type: float
53
+ sweet_spots:
54
+ clean: 0.0
55
+ warm: 0.15
56
+ squelchy: 0.5
57
+ acid: 0.75
58
+
59
+ - name: "Filter Env"
60
+ description: "Filter envelope amount — how much the envelope shapes the filter over time"
61
+ range: [-1.0, 1.0]
62
+ type: float
63
+ sweet_spots:
64
+ static: 0.0
65
+ pluck: 0.4
66
+ aggressive: 0.7
67
+
68
+ - name: "Drive"
69
+ description: "Built-in distortion amount — from subtle warmth to aggressive grit"
70
+ range: [0.0, 1.0]
71
+ type: float
72
+ sweet_spots:
73
+ clean: 0.0
74
+ warm: 0.2
75
+ gritty: 0.5
76
+ aggressive: 0.8
77
+
78
+ - name: "Compress"
79
+ description: "Built-in compressor amount — tightens dynamics and adds punch"
80
+ range: [0.0, 1.0]
81
+ type: float
82
+ sweet_spots:
83
+ off: 0.0
84
+ subtle: 0.25
85
+ punchy: 0.5
86
+ squashed: 0.8
87
+
88
+ - name: "Attack"
89
+ description: "Amplitude envelope attack"
90
+ range: [0.0, 10000.0]
91
+ unit: "ms"
92
+ type: float
93
+ sweet_spots:
94
+ instant: 0.0
95
+ soft_click: 5.0
96
+
97
+ - name: "Decay"
98
+ description: "Amplitude envelope decay"
99
+ range: [0.0, 10000.0]
100
+ unit: "ms"
101
+ type: float
102
+ sweet_spots:
103
+ short: 100.0
104
+ medium: 400.0
105
+ long_808: 2000.0
106
+
107
+ - name: "Sustain"
108
+ description: "Amplitude envelope sustain level"
109
+ range: [0.0, 1.0]
110
+ type: float
111
+ sweet_spots:
112
+ pluck: 0.0
113
+ held: 0.7
114
+ sustained: 1.0
115
+
116
+ - name: "Release"
117
+ description: "Amplitude envelope release"
118
+ range: [0.0, 10000.0]
119
+ unit: "ms"
120
+ type: float
121
+ sweet_spots:
122
+ tight: 20.0
123
+ natural: 100.0
124
+ smooth: 300.0
125
+
126
+ - name: "Glide"
127
+ description: "Portamento time between notes — essential for sliding bass lines"
128
+ range: [0.0, 1000.0]
129
+ unit: "ms"
130
+ type: float
131
+ sweet_spots:
132
+ off: 0.0
133
+ fast_slide: 30.0
134
+ medium: 80.0
135
+ slow_glide: 200.0
136
+
137
+ pairs_well_with:
138
+ - device: "EQ Eight"
139
+ reason: "Surgical low-end shaping — roll off sub-rumble and shape the bass presence"
140
+ - device: "Compressor"
141
+ reason: "Additional dynamics control beyond the built-in compressor — sidechain from kick for pumping"
142
+ - device: "Saturator"
143
+ reason: "Additional harmonic generation for bass to cut through on small speakers"
144
+ - device: "Utility"
145
+ reason: "Bass Mono ensures low frequencies stay centered — essential for club mixes"
146
+ - device: "Limiter"
147
+ reason: "Prevents bass peaks from clipping the mix bus"
148
+
149
+ starter_recipes:
150
+ - name: "Deep Sub"
151
+ description: "Clean, powerful sub-bass for modern production — felt more than heard"
152
+ genre: hip_hop
153
+ params:
154
+ "Osc Shape": 0.0
155
+ "Sub Level": 0.6
156
+ "Filter Freq": 150.0
157
+ "Filter Res": 0.0
158
+ "Drive": 0.0
159
+ "Compress": 0.3
160
+ "Attack": 0.0
161
+ "Sustain": 1.0
162
+ "Release": 80.0
163
+
164
+ - name: "Distorted Bass"
165
+ description: "Aggressive, gritty bass with drive and compression for energy"
166
+ genre: dnb
167
+ params:
168
+ "Osc Shape": 0.5
169
+ "Sub Level": 0.3
170
+ "Filter Freq": 800.0
171
+ "Filter Res": 0.2
172
+ "Drive": 0.6
173
+ "Compress": 0.5
174
+ "Glide": 40.0
175
+ "Attack": 0.0
176
+ "Sustain": 0.8
177
+ "Release": 50.0
178
+
179
+ - name: "Funk Bass"
180
+ description: "Bouncy, articulate bass with filter envelope and subtle drive"
181
+ genre: pop
182
+ params:
183
+ "Osc Shape": 0.3
184
+ "Sub Level": 0.2
185
+ "Filter Freq": 600.0
186
+ "Filter Res": 0.3
187
+ "Filter Env": 0.5
188
+ "Drive": 0.15
189
+ "Compress": 0.3
190
+ "Glide": 20.0
191
+ "Attack": 0.0
192
+ "Decay": 200.0
193
+ "Sustain": 0.4
194
+ "Release": 60.0
195
+
196
+ gotchas:
197
+ - "New in Live 12 — exact parameter names may differ. Use get_device_parameters to verify actual parameters"
198
+ - "Built-in Drive and Compress mean you may not need external Saturator/Compressor — check the built-in processing first"
199
+ - "Sub Level adds significant low-end energy — use Utility's Bass Mono after Bass to keep subs centered"
200
+ - "Designed specifically for bass frequencies — using it for midrange or treble leads won't sound right"
201
+ - "Glide is essential for 808-style sliding bass patterns — enable for legato playing"
202
+ - "Filter Freq below 200 Hz cuts harmonics that help bass translate to small speakers — keep some mids for presence"
@@ -0,0 +1,150 @@
1
+ id: collision
2
+ name: Collision
3
+ sonic_description: >
4
+ Physical modeling instrument that simulates a mallet or noise exciter striking
5
+ a resonating body (beam, membrane, plate, pipe, or tube). Produces realistic
6
+ tuned percussion from marimbas to metallic gongs, and can be pushed into
7
+ otherworldly resonant textures impossible with sampling.
8
+ synthesis_type: physical_modeling
9
+ character_tags: [metallic, resonant, percussive, organic, physical]
10
+ use_cases: [percussion, bells, tuned_percussion, textures, sound_design]
11
+ genre_affinity:
12
+ primary: [ambient, world, experimental]
13
+ secondary: [cinematic, minimal, techno, idm]
14
+ complexity: intermediate
15
+ self_contained: true
16
+ introduced_in: "8.0"
17
+
18
+ key_parameters:
19
+ - name: "Mallet Stiffness"
20
+ description: "Hardness of the striking mallet — soft produces warm tones, hard produces bright attack"
21
+ range: [0.0, 1.0]
22
+ type: float
23
+ sweet_spots:
24
+ soft_mallet: 0.2
25
+ medium: 0.5
26
+ hard_mallet: 0.85
27
+
28
+ - name: "Mallet Noise"
29
+ description: "Amount of noise in the excitation — adds realism and attack character"
30
+ range: [0.0, 1.0]
31
+ type: float
32
+ sweet_spots:
33
+ clean: 0.0
34
+ realistic: 0.3
35
+ noisy: 0.7
36
+
37
+ - name: "Res 1 Type"
38
+ description: "Resonator 1 body type — determines the fundamental character of resonance"
39
+ range: ["Beam", "Membrane", "Plate", "Pipe", "Tube"]
40
+ type: enum
41
+ sweet_spots:
42
+ marimba: "Beam"
43
+ drum: "Membrane"
44
+ gong: "Plate"
45
+ wind: "Pipe"
46
+
47
+ - name: "Res 1 Decay"
48
+ description: "How long the resonator rings after excitation"
49
+ range: [0.0, 1.0]
50
+ type: float
51
+ sweet_spots:
52
+ short_percussion: 0.2
53
+ medium_ring: 0.5
54
+ long_sustain: 0.85
55
+
56
+ - name: "Res 1 Material"
57
+ description: "Material dampening character — affects how harmonics decay over time"
58
+ range: [0.0, 1.0]
59
+ type: float
60
+ sweet_spots:
61
+ wood: 0.3
62
+ metal: 0.7
63
+ glass: 0.9
64
+
65
+ - name: "Res 1 Tune"
66
+ description: "Resonator tuning — pitch of the resonating body"
67
+ range: [-48.0, 48.0]
68
+ unit: "st"
69
+ type: float
70
+ sweet_spots:
71
+ center: 0.0
72
+ octave_up: 12.0
73
+ octave_down: -12.0
74
+
75
+ - name: "Res 1 Quality"
76
+ description: "Resonance quality factor — higher values ring more clearly"
77
+ range: [0.0, 1.0]
78
+ type: float
79
+ sweet_spots:
80
+ dull: 0.2
81
+ clear: 0.6
82
+ ringing: 0.9
83
+
84
+ - name: "Res 2 Type"
85
+ description: "Resonator 2 body type — for layered or coupled resonance"
86
+ range: ["Beam", "Membrane", "Plate", "Pipe", "Tube"]
87
+ type: enum
88
+
89
+ - name: "Res 2 Tune"
90
+ description: "Resonator 2 tuning — set relative to Res 1 for harmonic or inharmonic relationships"
91
+ range: [-48.0, 48.0]
92
+ unit: "st"
93
+ type: float
94
+ sweet_spots:
95
+ unison: 0.0
96
+ fifth: 7.0
97
+ octave: 12.0
98
+
99
+ pairs_well_with:
100
+ - device: "Reverb"
101
+ reason: "Physical modeling sounds bloom in reverberant spaces — adds room context"
102
+ - device: "EQ Eight"
103
+ reason: "Resonant peaks from physical modeling often need surgical taming"
104
+ - device: "Compressor"
105
+ reason: "Percussive transients from mallets can be very dynamic — compression evens levels"
106
+ - device: "Delay"
107
+ reason: "Rhythmic delays on tuned percussion create gamelan-like patterns"
108
+ - device: "Saturator"
109
+ reason: "Adds warmth and harmonic density to thin resonator tones"
110
+
111
+ starter_recipes:
112
+ - name: "Tuned Metallic Percussion"
113
+ description: "Bright, ringing metallic hit for melodic percussion parts"
114
+ genre: experimental
115
+ params:
116
+ "Mallet Stiffness": 0.7
117
+ "Mallet Noise": 0.2
118
+ "Res 1 Type": "Plate"
119
+ "Res 1 Decay": 0.6
120
+ "Res 1 Material": 0.7
121
+ "Res 1 Quality": 0.7
122
+
123
+ - name: "Wooden Marimba"
124
+ description: "Warm, natural-sounding marimba with soft mallet and beam resonator"
125
+ genre: world
126
+ params:
127
+ "Mallet Stiffness": 0.3
128
+ "Mallet Noise": 0.15
129
+ "Res 1 Type": "Beam"
130
+ "Res 1 Decay": 0.4
131
+ "Res 1 Material": 0.3
132
+ "Res 1 Quality": 0.5
133
+
134
+ - name: "Glass Bells"
135
+ description: "Crystalline bell tones with long sustain and high material brightness"
136
+ genre: ambient
137
+ params:
138
+ "Mallet Stiffness": 0.8
139
+ "Mallet Noise": 0.05
140
+ "Res 1 Type": "Beam"
141
+ "Res 1 Decay": 0.85
142
+ "Res 1 Material": 0.9
143
+ "Res 1 Quality": 0.85
144
+
145
+ gotchas:
146
+ - "Resonator Type is the most impactful parameter — always choose this first as it defines the fundamental character"
147
+ - "High Quality + high Decay can create very long ringing tones that build up and mask other instruments"
148
+ - "Material controls harmonic damping, not the literal material — higher values mean brighter, longer-ringing upper partials"
149
+ - "Two coupled resonators can create very complex timbres — tune Res 2 to a harmonic interval (5th, octave) for musical results"
150
+ - "Mallet Noise adds realistic transient character but can be harsh at high settings — blend carefully"
@@ -0,0 +1,167 @@
1
+ id: drift
2
+ name: Drift
3
+ sonic_description: >
4
+ Characterful analog-modeled synthesizer with built-in pitch and filter instability
5
+ that emulates the organic imperfections of vintage hardware. A single oscillator
6
+ with continuous shape morphing, resonant filter, and streamlined modulation deliver
7
+ warm, slightly unpredictable tones with minimal parameter tweaking.
8
+ synthesis_type: analog_modeling
9
+ character_tags: [warm, organic, analog, unstable, characterful]
10
+ use_cases: [bass, pads, leads, drones, textures]
11
+ genre_affinity:
12
+ primary: [techno, ambient, minimal]
13
+ secondary: [house, lo-fi, experimental, downtempo]
14
+ complexity: beginner
15
+ self_contained: true
16
+ introduced_in: "11.0"
17
+
18
+ key_parameters:
19
+ - name: "Shape"
20
+ description: "Oscillator shape — continuously morphs between waveform types for fluid timbral control"
21
+ range: [0.0, 1.0]
22
+ type: float
23
+ sweet_spots:
24
+ sine_like: 0.0
25
+ saw_like: 0.5
26
+ square_like: 1.0
27
+ sweet_spot: 0.35
28
+
29
+ - name: "Drift"
30
+ description: "Amount of analog-style pitch and filter instability — the instrument's signature character"
31
+ range: [0.0, 1.0]
32
+ type: float
33
+ sweet_spots:
34
+ stable: 0.0
35
+ subtle_warmth: 0.2
36
+ vintage_feel: 0.45
37
+ wobbly: 0.7
38
+ extreme: 1.0
39
+
40
+ - name: "Filter Freq"
41
+ description: "Low-pass filter cutoff frequency"
42
+ range: [20.0, 20000.0]
43
+ unit: "Hz"
44
+ type: float
45
+ sweet_spots:
46
+ deep_sub: 150.0
47
+ warm: 1000.0
48
+ bright: 8000.0
49
+
50
+ - name: "Filter Res"
51
+ description: "Filter resonance — interacts with the drift parameter for organic movement"
52
+ range: [0.0, 1.0]
53
+ type: float
54
+ sweet_spots:
55
+ clean: 0.0
56
+ gentle: 0.2
57
+ character: 0.45
58
+ squelchy: 0.7
59
+
60
+ - name: "Voice Mode"
61
+ description: "Voice allocation — Mono for bass/leads, Poly for chords, Unison for thick textures"
62
+ range: ["Mono", "Poly", "Unison"]
63
+ type: enum
64
+ sweet_spots:
65
+ bass: "Mono"
66
+ pad: "Poly"
67
+ thick_lead: "Unison"
68
+
69
+ - name: "Attack"
70
+ description: "Amplitude envelope attack time"
71
+ range: [0.0, 10000.0]
72
+ unit: "ms"
73
+ type: float
74
+ sweet_spots:
75
+ percussive: 0.0
76
+ soft: 200.0
77
+ pad: 800.0
78
+
79
+ - name: "Decay"
80
+ description: "Amplitude envelope decay time"
81
+ range: [0.0, 10000.0]
82
+ unit: "ms"
83
+ type: float
84
+ sweet_spots:
85
+ pluck: 150.0
86
+ moderate: 500.0
87
+
88
+ - name: "Sustain"
89
+ description: "Amplitude envelope sustain level"
90
+ range: [0.0, 1.0]
91
+ type: float
92
+ sweet_spots:
93
+ pluck: 0.0
94
+ held: 0.8
95
+ pad: 1.0
96
+
97
+ - name: "Release"
98
+ description: "Amplitude envelope release time"
99
+ range: [0.0, 10000.0]
100
+ unit: "ms"
101
+ type: float
102
+ sweet_spots:
103
+ tight: 50.0
104
+ natural: 250.0
105
+ ambient: 1500.0
106
+
107
+ pairs_well_with:
108
+ - device: "Reverb"
109
+ reason: "The organic drift character blooms beautifully in reverb space"
110
+ - device: "Delay"
111
+ reason: "Drifting pitch adds subtle variation to delay repeats — each echo is slightly different"
112
+ - device: "Saturator"
113
+ reason: "Light saturation enhances the analog warmth Drift is designed for"
114
+ - device: "Auto Filter"
115
+ reason: "Adds rhythmic movement that complements the random drift modulation"
116
+ - device: "Chorus-Ensemble"
117
+ reason: "Deepens the analog imperfection character with subtle detuning"
118
+
119
+ starter_recipes:
120
+ - name: "Deep Sub Bass"
121
+ description: "Warm, slightly wobbly sub bass with organic character"
122
+ genre: techno
123
+ params:
124
+ "Shape": 0.0
125
+ "Drift": 0.15
126
+ "Voice Mode": "Mono"
127
+ "Filter Freq": 200.0
128
+ "Filter Res": 0.0
129
+ "Attack": 0.0
130
+ "Decay": 0.0
131
+ "Sustain": 1.0
132
+ "Release": 80.0
133
+
134
+ - name: "Drifting Pad"
135
+ description: "Evolving, dreamy pad where the drift creates gentle organic movement"
136
+ genre: ambient
137
+ params:
138
+ "Shape": 0.35
139
+ "Drift": 0.5
140
+ "Voice Mode": "Poly"
141
+ "Filter Freq": 2500.0
142
+ "Filter Res": 0.2
143
+ "Attack": 800.0
144
+ "Decay": 0.0
145
+ "Sustain": 1.0
146
+ "Release": 2000.0
147
+
148
+ - name: "Wonky Lead"
149
+ description: "Unstable, characterful mono lead with heavy drift and resonance"
150
+ genre: minimal
151
+ params:
152
+ "Shape": 0.6
153
+ "Drift": 0.7
154
+ "Voice Mode": "Mono"
155
+ "Filter Freq": 3500.0
156
+ "Filter Res": 0.45
157
+ "Attack": 5.0
158
+ "Decay": 300.0
159
+ "Sustain": 0.6
160
+ "Release": 200.0
161
+
162
+ gotchas:
163
+ - "The Drift parameter affects pitch AND filter — high values make bass notes noticeably out of tune"
164
+ - "Drift is intentionally non-deterministic — the same patch will sound slightly different each time"
165
+ - "Simpler than Analog — fewer parameters means less flexibility but faster sound design"
166
+ - "Voice Mode changes dramatically affect CPU and polyphony — Unison is the most expensive"
167
+ - "Shape is continuous, not discrete waveform selection — automate it for morphing textures"
@@ -0,0 +1,137 @@
1
+ id: electric
2
+ name: Electric
3
+ sonic_description: >
4
+ Physical modeling instrument that recreates classic electric piano sounds by simulating
5
+ a mallet striking a fork (tine or tone bar) with electromagnetic pickup and damper
6
+ mechanics. Delivers authentic Rhodes, Wurlitzer, and clavinet-style tones with
7
+ the playability and tonal variation that only physical modeling can provide.
8
+ synthesis_type: physical_modeling
9
+ character_tags: [warm, vintage, keys, expressive, smooth]
10
+ use_cases: [keys, chords, comping, bass, melodic_lines]
11
+ genre_affinity:
12
+ primary: [jazz, soul, neo_soul, lo_fi]
13
+ secondary: [r_and_b, funk, pop, downtempo, hip_hop]
14
+ complexity: intermediate
15
+ self_contained: true
16
+ introduced_in: "8.0"
17
+
18
+ key_parameters:
19
+ - name: "Mallet Stiffness"
20
+ description: "Hardness of the striking mallet — soft for mellow Rhodes, hard for bright bark"
21
+ range: [0.0, 1.0]
22
+ type: float
23
+ sweet_spots:
24
+ mellow_rhodes: 0.25
25
+ balanced: 0.5
26
+ bright_attack: 0.8
27
+
28
+ - name: "Mallet Noise"
29
+ description: "Mechanical noise of the mallet mechanism — adds realistic key-click"
30
+ range: [0.0, 1.0]
31
+ type: float
32
+ sweet_spots:
33
+ clean: 0.0
34
+ subtle_click: 0.2
35
+ clicky: 0.5
36
+
37
+ - name: "Fork Tine Color"
38
+ description: "Brightness of the fork tine — controls the fundamental vs overtone balance"
39
+ range: [0.0, 1.0]
40
+ type: float
41
+ sweet_spots:
42
+ dark_warm: 0.2
43
+ balanced: 0.5
44
+ bright_bell: 0.8
45
+
46
+ - name: "Fork Tine Decay"
47
+ description: "How long the tine rings after being struck"
48
+ range: [0.0, 1.0]
49
+ type: float
50
+ sweet_spots:
51
+ short_staccato: 0.2
52
+ medium: 0.5
53
+ long_sustain: 0.8
54
+
55
+ - name: "Damper"
56
+ description: "Damper engagement — simulates the felt damper pressing against the tine"
57
+ range: [0.0, 1.0]
58
+ type: float
59
+ sweet_spots:
60
+ fully_damped: 0.0
61
+ half_damped: 0.5
62
+ undamped: 1.0
63
+
64
+ - name: "Pickup Position"
65
+ description: "Electromagnetic pickup position along the tine — changes harmonic emphasis"
66
+ range: [0.0, 1.0]
67
+ type: float
68
+ sweet_spots:
69
+ mellow: 0.2
70
+ balanced: 0.5
71
+ nasal: 0.8
72
+
73
+ - name: "Pickup Symmetry"
74
+ description: "Pickup coil symmetry — affects distortion character at high velocities"
75
+ range: [0.0, 1.0]
76
+ type: float
77
+ sweet_spots:
78
+ clean: 0.5
79
+ asymmetric_bark: 0.3
80
+
81
+ pairs_well_with:
82
+ - device: "Chorus-Ensemble"
83
+ reason: "Classic electric piano chorus — essential for the Juno-Rhodes sound"
84
+ - device: "Phaser-Flanger"
85
+ reason: "Classic phaser on electric piano creates the iconic 70s soul sound"
86
+ - device: "Reverb"
87
+ reason: "Plate reverb on electric piano is a timeless combination"
88
+ - device: "Compressor"
89
+ reason: "Evens out the velocity-dependent dynamics for consistent level"
90
+ - device: "Saturator"
91
+ reason: "Adds the warm amp-like overdrive character of a driven Rhodes"
92
+ - device: "Auto Filter"
93
+ reason: "Wah-like filter sweeps on electric piano for funk styles"
94
+
95
+ starter_recipes:
96
+ - name: "Classic Rhodes"
97
+ description: "Warm, bell-like Rhodes electric piano with gentle bark on hard hits"
98
+ genre: jazz
99
+ params:
100
+ "Mallet Stiffness": 0.35
101
+ "Mallet Noise": 0.15
102
+ "Fork Tine Color": 0.4
103
+ "Fork Tine Decay": 0.6
104
+ "Damper": 0.8
105
+ "Pickup Position": 0.4
106
+ "Pickup Symmetry": 0.4
107
+
108
+ - name: "Bright Wurlitzer"
109
+ description: "Punchy, bright electric piano with nasal character and pronounced attack"
110
+ genre: funk
111
+ params:
112
+ "Mallet Stiffness": 0.7
113
+ "Mallet Noise": 0.3
114
+ "Fork Tine Color": 0.7
115
+ "Fork Tine Decay": 0.4
116
+ "Damper": 0.6
117
+ "Pickup Position": 0.7
118
+ "Pickup Symmetry": 0.5
119
+
120
+ - name: "Crunchy Keys"
121
+ description: "Overdriven electric piano with aggressive attack and harmonic distortion"
122
+ genre: neo_soul
123
+ params:
124
+ "Mallet Stiffness": 0.8
125
+ "Mallet Noise": 0.4
126
+ "Fork Tine Color": 0.6
127
+ "Fork Tine Decay": 0.5
128
+ "Damper": 0.7
129
+ "Pickup Position": 0.5
130
+ "Pickup Symmetry": 0.25
131
+
132
+ gotchas:
133
+ - "Velocity is critical for Electric — it controls not just volume but timbral bark and distortion character"
134
+ - "Pickup Symmetry away from center creates asymmetric clipping — this is the source of the 'bark' on hard hits"
135
+ - "Damper at 0 cuts notes very short — great for staccato funk but unnatural for ballads"
136
+ - "Fork Tine Color and Pickup Position interact — both affect brightness, so adjust together"
137
+ - "Best played with a velocity-sensitive keyboard — flat velocity loses the instrument's main expressive dimension"