livepilot 1.26.0 → 1.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -1
  3. package/installer/codex.js +87 -9
  4. package/livepilot/.Codex-plugin/plugin.json +8 -0
  5. package/livepilot/.claude-plugin/plugin.json +8 -0
  6. package/livepilot/.mcp.json +8 -0
  7. package/livepilot/agents/livepilot-producer/AGENT.md +314 -0
  8. package/livepilot/commands/arrange.md +47 -0
  9. package/livepilot/commands/beat.md +81 -0
  10. package/livepilot/commands/evaluate.md +49 -0
  11. package/livepilot/commands/memory.md +22 -0
  12. package/livepilot/commands/mix.md +47 -0
  13. package/livepilot/commands/perform.md +42 -0
  14. package/livepilot/commands/session.md +13 -0
  15. package/livepilot/commands/sounddesign.md +58 -0
  16. package/livepilot/rubrics/default_preset_check.md +82 -0
  17. package/livepilot/rubrics/layer_accumulation.md +79 -0
  18. package/livepilot/rubrics/layer_precision.md +79 -0
  19. package/livepilot/rubrics/modulation_presence.md +63 -0
  20. package/livepilot/rubrics/sound_design_depth.md +40 -0
  21. package/livepilot/skills/livepilot-arrangement/SKILL.md +164 -0
  22. package/livepilot/skills/livepilot-composition-engine/SKILL.md +151 -0
  23. package/livepilot/skills/livepilot-composition-engine/references/form-patterns.md +97 -0
  24. package/livepilot/skills/livepilot-composition-engine/references/transition-archetypes.md +102 -0
  25. package/livepilot/skills/livepilot-core/SKILL.md +261 -0
  26. package/livepilot/skills/livepilot-core/references/ableton-workflow-patterns.md +831 -0
  27. package/livepilot/skills/livepilot-core/references/affordances/_schema.md +160 -0
  28. package/livepilot/skills/livepilot-core/references/affordances/devices/auto-filter.yaml +133 -0
  29. package/livepilot/skills/livepilot-core/references/affordances/devices/chorus-ensemble.yaml +91 -0
  30. package/livepilot/skills/livepilot-core/references/affordances/devices/compressor.yaml +98 -0
  31. package/livepilot/skills/livepilot-core/references/affordances/devices/convolution-reverb.yaml +113 -0
  32. package/livepilot/skills/livepilot-core/references/affordances/devices/corpus.yaml +84 -0
  33. package/livepilot/skills/livepilot-core/references/affordances/devices/drift.yaml +105 -0
  34. package/livepilot/skills/livepilot-core/references/affordances/devices/echo.yaml +108 -0
  35. package/livepilot/skills/livepilot-core/references/affordances/devices/eq-eight.yaml +95 -0
  36. package/livepilot/skills/livepilot-core/references/affordances/devices/glue-compressor.yaml +88 -0
  37. package/livepilot/skills/livepilot-core/references/affordances/devices/granulator-iii.yaml +104 -0
  38. package/livepilot/skills/livepilot-core/references/affordances/devices/hybrid-reverb.yaml +83 -0
  39. package/livepilot/skills/livepilot-core/references/affordances/devices/operator.yaml +98 -0
  40. package/livepilot/skills/livepilot-core/references/affordances/devices/ping-pong-delay.yaml +104 -0
  41. package/livepilot/skills/livepilot-core/references/affordances/devices/poli.yaml +98 -0
  42. package/livepilot/skills/livepilot-core/references/affordances/devices/saturator.yaml +98 -0
  43. package/livepilot/skills/livepilot-core/references/affordances/devices/shifter.yaml +77 -0
  44. package/livepilot/skills/livepilot-core/references/affordances/devices/simpler.yaml +113 -0
  45. package/livepilot/skills/livepilot-core/references/affordances/devices/utility.yaml +95 -0
  46. package/livepilot/skills/livepilot-core/references/affordances/devices/vinyl-distortion.yaml +92 -0
  47. package/livepilot/skills/livepilot-core/references/affordances/devices/wavetable.yaml +98 -0
  48. package/livepilot/skills/livepilot-core/references/artist-vocabularies.md +389 -0
  49. package/livepilot/skills/livepilot-core/references/automation-atlas.md +272 -0
  50. package/livepilot/skills/livepilot-core/references/concepts/_schema.md +158 -0
  51. package/livepilot/skills/livepilot-core/references/concepts/artists/akufen.yaml +116 -0
  52. package/livepilot/skills/livepilot-core/references/concepts/artists/aphex-twin.yaml +133 -0
  53. package/livepilot/skills/livepilot-core/references/concepts/artists/arca-sophie.yaml +131 -0
  54. package/livepilot/skills/livepilot-core/references/concepts/artists/autechre.yaml +130 -0
  55. package/livepilot/skills/livepilot-core/references/concepts/artists/basic-channel.yaml +140 -0
  56. package/livepilot/skills/livepilot-core/references/concepts/artists/basinski.yaml +126 -0
  57. package/livepilot/skills/livepilot-core/references/concepts/artists/boards-of-canada.yaml +124 -0
  58. package/livepilot/skills/livepilot-core/references/concepts/artists/burial.yaml +127 -0
  59. package/livepilot/skills/livepilot-core/references/concepts/artists/com-truise-tycho.yaml +121 -0
  60. package/livepilot/skills/livepilot-core/references/concepts/artists/daft-punk.yaml +117 -0
  61. package/livepilot/skills/livepilot-core/references/concepts/artists/dj-premier-rza.yaml +119 -0
  62. package/livepilot/skills/livepilot-core/references/concepts/artists/gas.yaml +134 -0
  63. package/livepilot/skills/livepilot-core/references/concepts/artists/hawtin.yaml +127 -0
  64. package/livepilot/skills/livepilot-core/references/concepts/artists/isolee-luomo.yaml +130 -0
  65. package/livepilot/skills/livepilot-core/references/concepts/artists/j-dilla.yaml +133 -0
  66. package/livepilot/skills/livepilot-core/references/concepts/artists/jeff-mills.yaml +120 -0
  67. package/livepilot/skills/livepilot-core/references/concepts/artists/johannsson-richter.yaml +132 -0
  68. package/livepilot/skills/livepilot-core/references/concepts/artists/madlib.yaml +124 -0
  69. package/livepilot/skills/livepilot-core/references/concepts/artists/moodymann-theo-parrish.yaml +121 -0
  70. package/livepilot/skills/livepilot-core/references/concepts/artists/oneohtrix-point-never.yaml +126 -0
  71. package/livepilot/skills/livepilot-core/references/concepts/artists/photek-source-direct.yaml +120 -0
  72. package/livepilot/skills/livepilot-core/references/concepts/artists/rashad-spinn-traxman.yaml +122 -0
  73. package/livepilot/skills/livepilot-core/references/concepts/artists/robert-henke.yaml +113 -0
  74. package/livepilot/skills/livepilot-core/references/concepts/artists/shackleton.yaml +124 -0
  75. package/livepilot/skills/livepilot-core/references/concepts/artists/skream-mala.yaml +119 -0
  76. package/livepilot/skills/livepilot-core/references/concepts/artists/stars-of-the-lid.yaml +119 -0
  77. package/livepilot/skills/livepilot-core/references/concepts/artists/tim-hecker.yaml +122 -0
  78. package/livepilot/skills/livepilot-core/references/concepts/artists/villalobos.yaml +135 -0
  79. package/livepilot/skills/livepilot-core/references/concepts/genres/ambient.yaml +137 -0
  80. package/livepilot/skills/livepilot-core/references/concepts/genres/boom_bap.yaml +124 -0
  81. package/livepilot/skills/livepilot-core/references/concepts/genres/deep-minimal.yaml +130 -0
  82. package/livepilot/skills/livepilot-core/references/concepts/genres/deep_house.yaml +130 -0
  83. package/livepilot/skills/livepilot-core/references/concepts/genres/detroit_techno.yaml +116 -0
  84. package/livepilot/skills/livepilot-core/references/concepts/genres/disco.yaml +123 -0
  85. package/livepilot/skills/livepilot-core/references/concepts/genres/downtempo.yaml +129 -0
  86. package/livepilot/skills/livepilot-core/references/concepts/genres/drone.yaml +133 -0
  87. package/livepilot/skills/livepilot-core/references/concepts/genres/drum-and-bass.yaml +119 -0
  88. package/livepilot/skills/livepilot-core/references/concepts/genres/dub-techno.yaml +132 -0
  89. package/livepilot/skills/livepilot-core/references/concepts/genres/dub.yaml +129 -0
  90. package/livepilot/skills/livepilot-core/references/concepts/genres/dubstep.yaml +120 -0
  91. package/livepilot/skills/livepilot-core/references/concepts/genres/experimental.yaml +136 -0
  92. package/livepilot/skills/livepilot-core/references/concepts/genres/footwork.yaml +119 -0
  93. package/livepilot/skills/livepilot-core/references/concepts/genres/hip-hop.yaml +132 -0
  94. package/livepilot/skills/livepilot-core/references/concepts/genres/house.yaml +126 -0
  95. package/livepilot/skills/livepilot-core/references/concepts/genres/hyperpop.yaml +128 -0
  96. package/livepilot/skills/livepilot-core/references/concepts/genres/idm.yaml +134 -0
  97. package/livepilot/skills/livepilot-core/references/concepts/genres/lo_fi.yaml +129 -0
  98. package/livepilot/skills/livepilot-core/references/concepts/genres/microhouse.yaml +138 -0
  99. package/livepilot/skills/livepilot-core/references/concepts/genres/minimal-techno.yaml +116 -0
  100. package/livepilot/skills/livepilot-core/references/concepts/genres/modern-classical.yaml +123 -0
  101. package/livepilot/skills/livepilot-core/references/concepts/genres/soul.yaml +125 -0
  102. package/livepilot/skills/livepilot-core/references/concepts/genres/synthwave.yaml +123 -0
  103. package/livepilot/skills/livepilot-core/references/concepts/genres/techno.yaml +123 -0
  104. package/livepilot/skills/livepilot-core/references/concepts/genres/trap.yaml +120 -0
  105. package/livepilot/skills/livepilot-core/references/concepts/genres/uk-garage.yaml +121 -0
  106. package/livepilot/skills/livepilot-core/references/device-atlas/00-index.md +110 -0
  107. package/livepilot/skills/livepilot-core/references/device-atlas/distortion-and-character.md +687 -0
  108. package/livepilot/skills/livepilot-core/references/device-atlas/drums-and-percussion.md +753 -0
  109. package/livepilot/skills/livepilot-core/references/device-atlas/dynamics-and-punch.md +525 -0
  110. package/livepilot/skills/livepilot-core/references/device-atlas/eq-and-filtering.md +402 -0
  111. package/livepilot/skills/livepilot-core/references/device-atlas/midi-tools.md +963 -0
  112. package/livepilot/skills/livepilot-core/references/device-atlas/movement-and-modulation.md +874 -0
  113. package/livepilot/skills/livepilot-core/references/device-atlas/space-and-depth.md +571 -0
  114. package/livepilot/skills/livepilot-core/references/device-atlas/spectral-and-weird.md +714 -0
  115. package/livepilot/skills/livepilot-core/references/device-atlas/synths-native.md +953 -0
  116. package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +34 -0
  117. package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +204 -0
  118. package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +173 -0
  119. package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +211 -0
  120. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +188 -0
  121. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +162 -0
  122. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +229 -0
  123. package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +243 -0
  124. package/livepilot/skills/livepilot-core/references/genre-vocabularies.md +382 -0
  125. package/livepilot/skills/livepilot-core/references/m4l-devices.md +352 -0
  126. package/livepilot/skills/livepilot-core/references/memory-guide.md +178 -0
  127. package/livepilot/skills/livepilot-core/references/midi-recipes.md +402 -0
  128. package/livepilot/skills/livepilot-core/references/mixing-patterns.md +578 -0
  129. package/livepilot/skills/livepilot-core/references/overview.md +300 -0
  130. package/livepilot/skills/livepilot-core/references/pack-knowledge.md +319 -0
  131. package/livepilot/skills/livepilot-core/references/sample-manipulation.md +724 -0
  132. package/livepilot/skills/livepilot-core/references/sound-design-deep.md +140 -0
  133. package/livepilot/skills/livepilot-core/references/sound-design.md +393 -0
  134. package/livepilot/skills/livepilot-corpus-builder/SKILL.md +379 -0
  135. package/livepilot/skills/livepilot-creative-director/SKILL.md +455 -0
  136. package/livepilot/skills/livepilot-creative-director/references/anti-repetition-rules.md +214 -0
  137. package/livepilot/skills/livepilot-creative-director/references/creative-brief-template.md +222 -0
  138. package/livepilot/skills/livepilot-creative-director/references/hybrid-compilation.md +185 -0
  139. package/livepilot/skills/livepilot-creative-director/references/move-family-diversity-rule.md +258 -0
  140. package/livepilot/skills/livepilot-creative-director/references/phase-6-execution.md +409 -0
  141. package/livepilot/skills/livepilot-creative-director/references/the-four-move-rule.md +192 -0
  142. package/livepilot/skills/livepilot-devices/SKILL.md +213 -0
  143. package/livepilot/skills/livepilot-devices/references/load_browser_item-uri-grammar.md +82 -0
  144. package/livepilot/skills/livepilot-evaluation/SKILL.md +195 -0
  145. package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +176 -0
  146. package/livepilot/skills/livepilot-evaluation/references/evaluation-contracts.md +121 -0
  147. package/livepilot/skills/livepilot-evaluation/references/memory-promotion.md +110 -0
  148. package/livepilot/skills/livepilot-mix-engine/SKILL.md +136 -0
  149. package/livepilot/skills/livepilot-mix-engine/references/mix-critics.md +143 -0
  150. package/livepilot/skills/livepilot-mix-engine/references/mix-moves.md +105 -0
  151. package/livepilot/skills/livepilot-mixing/SKILL.md +157 -0
  152. package/livepilot/skills/livepilot-notes/SKILL.md +130 -0
  153. package/livepilot/skills/livepilot-performance-engine/SKILL.md +122 -0
  154. package/livepilot/skills/livepilot-performance-engine/references/performance-safety.md +98 -0
  155. package/livepilot/skills/livepilot-release/SKILL.md +151 -0
  156. package/livepilot/skills/livepilot-sample-engine/SKILL.md +117 -0
  157. package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +87 -0
  158. package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +51 -0
  159. package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +131 -0
  160. package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +225 -0
  161. package/livepilot/skills/livepilot-sound-design-engine/references/patch-model.md +119 -0
  162. package/livepilot/skills/livepilot-sound-design-engine/references/sound-design-critics.md +118 -0
  163. package/livepilot/skills/livepilot-wonder/SKILL.md +143 -0
  164. package/m4l_device/LivePilot_Analyzer.amxd +0 -0
  165. package/m4l_device/LivePilot_Elektron.amxd +0 -0
  166. package/m4l_device/LivePilot_Elektron.maxpat +758 -0
  167. package/m4l_device/livepilot_bridge.js +1 -1
  168. package/m4l_device/livepilot_elektron_bridge.js +82 -0
  169. package/mcp_server/__init__.py +1 -1
  170. package/mcp_server/composer/develop/apply.py +1 -1
  171. package/mcp_server/composer/full/apply.py +32 -6
  172. package/mcp_server/m4l_bridge.py +5 -0
  173. package/mcp_server/runtime/execution_router.py +6 -0
  174. package/mcp_server/runtime/mcp_dispatch.py +18 -0
  175. package/mcp_server/runtime/remote_commands.py +2 -0
  176. package/mcp_server/server.py +11 -7
  177. package/package.json +20 -5
  178. package/remote_script/LivePilot/__init__.py +1 -1
  179. package/remote_script/LivePilot/server.py +63 -2
  180. package/requirements.txt +3 -3
  181. package/server.json +3 -3
@@ -0,0 +1,160 @@
1
+ # Device Affordance Schema
2
+
3
+ Affordance packets describe WHAT a device is for, WHEN to reach for it,
4
+ and WHEN it's a trap — in structured YAML that the director reads
5
+ during Phase 3 plan generation and Phase 6 execution.
6
+
7
+ Files live in:
8
+
9
+ ```
10
+ livepilot/skills/livepilot-core/references/affordances/
11
+ ├── devices/<slug>.yaml # per-device affordance
12
+ └── _schema.md # this file
13
+ ```
14
+
15
+ Affordance packets COMPLEMENT the Device Atlas. The atlas knows what
16
+ devices exist, their URIs, their presets, their `signature_techniques`.
17
+ The affordance packets add the musical-judgment layer: which device
18
+ is the right tool for which feeling, in which context.
19
+
20
+ ## Loading
21
+
22
+ The director loads an affordance packet when:
23
+
24
+ 1. A candidate plan proposes loading or parameter-tuning that device
25
+ 2. A concept packet's `reach_for` list names the device
26
+ 3. The user explicitly requests a device ("load an Echo")
27
+
28
+ The packet's fields populate the plan's description ("use Echo for dub
29
+ tail, not bright slap") and filter out misuse ("Echo on dense high-hat
30
+ patterns is risky per the affordance").
31
+
32
+ ## Schema
33
+
34
+ ```yaml
35
+ # REQUIRED
36
+ id: str # e.g. "echo"
37
+ name: str # human-readable, e.g. "Echo"
38
+ type: effect | instrument | utility | rack
39
+ category: str # e.g. "delay", "filter", "synth", "physical_model"
40
+ aliases: list[str] # alternate names (e.g. "ping pong delay" for Echo in mode)
41
+ atlas_search_query: str # search hint — actual URI must be resolved via
42
+ # search_browser(query=this) at runtime. The atlas
43
+ # is the source of truth; hardcoding a URI here
44
+ # would rot on atlas updates.
45
+
46
+ # What this device is FOR musically
47
+ musical_roles: list[str]
48
+ # e.g. "dub space", "rhythm shadow", "tail harvesting"
49
+ # These map onto the sonic_identity fields of concept packets.
50
+
51
+ # When this device is a strong choice
52
+ strong_for: list[str]
53
+ # e.g. "widening sparse material", "implied groove without extra notes"
54
+ # Each entry should describe a musical situation, not a genre name.
55
+
56
+ # When this device is a trap
57
+ risky_for: list[str]
58
+ # e.g. "dense high-hat patterns", "muddy low-end sources"
59
+ # Specific situations where the device DEGRADES the result.
60
+
61
+ # Parameter ranges with musical consequence
62
+ subtle_ranges: # what "just audible" sounds like
63
+ <param_name>: [low, high] # e.g. feedback: [0.15, 0.30]
64
+ moderate_ranges: # what "obviously there" sounds like
65
+ <param_name>: [low, high]
66
+ aggressive_ranges: # what "signature / dramatic" sounds like
67
+ <param_name>: [low, high]
68
+
69
+ # Device pairings
70
+ pairings: # devices that work well in a chain
71
+ - device: str # pair device name
72
+ order: before | after | parallel
73
+ purpose: str # why the pairing works
74
+
75
+ # Anti-pairings
76
+ anti_pairings: list[str] # device combinations that conflict or cancel
77
+
78
+ # Post-load verification
79
+ remeasure: list[str]
80
+ # Which diagnostics to run after this device is loaded or adjusted.
81
+ # e.g. "spectral_balance", "low_headroom", "groove_motion", "plugin_health"
82
+
83
+ # How this device interacts with the 4 dimensions
84
+ dimensional_impact:
85
+ structural: str # "low" | "moderate" | "high" | "none"
86
+ rhythmic: str
87
+ timbral: str
88
+ spatial: str
89
+
90
+ # Which concept-packet aesthetics name this device in their reach_for
91
+ appears_in_packets:
92
+ artists: list[str]
93
+ genres: list[str]
94
+
95
+ # Free-form prose for the director to read when composing plan descriptions
96
+ notes: str
97
+ ```
98
+
99
+ ## Field rules
100
+
101
+ - `atlas_search_query` is a SEARCH HINT, not a URI. The actual URI is
102
+ resolved at runtime via `search_browser(query=atlas_search_query)`.
103
+ If the search returns multiple matches, the director picks the
104
+ first match whose name or URI substring equals `id` (case-insensitive).
105
+ - `parameter_name` values in `subtle_ranges` / `moderate_ranges` /
106
+ `aggressive_ranges` may differ from the parameter names that
107
+ `get_device_parameters` returns (display name vs. internal name).
108
+ Always resolve via `get_device_parameters` at runtime; the affordance
109
+ YAML names are advisory, not canonical.
110
+ - `subtle_ranges` / `moderate_ranges` / `aggressive_ranges` are
111
+ advisory numeric bands. Always confirm parameter range via
112
+ `get_device_parameters` — these bands are for HUMAN-readable
113
+ "what this sounds like" hints, NOT for automation-recipe bounds.
114
+ - `dimensional_impact` uses `"low"` / `"moderate"` / `"high"` / `"none"`
115
+ — not numeric. This maps onto the four-move-rule's dimension axis.
116
+ - `remeasure` should name metrics / tools that the director is
117
+ expected to run post-load. Listing `plugin_health` is mandatory for
118
+ any AU/VST device (see CLAUDE.md memory).
119
+ - `pairings` and `anti_pairings` describe DEVICE-level relationships,
120
+ not genre-level ones. A pairing like "Auto Filter before Echo for
121
+ dub sweeps" lives here; a packet's `reach_for` list lives in
122
+ concept/.
123
+
124
+ ## Scope for PR 3
125
+
126
+ The initial affordance set covers the 20 devices most-referenced across
127
+ concept packets:
128
+
129
+ 1. Echo
130
+ 2. Auto Filter
131
+ 3. Convolution Reverb
132
+ 4. Hybrid Reverb (if enriched in atlas; else skip)
133
+ 5. Drift
134
+ 6. Corpus
135
+ 7. Granulator III
136
+ 8. Simpler
137
+ 9. Wavetable
138
+ 10. Operator
139
+ 11. Ping Pong Delay
140
+ 12. Saturator
141
+ 13. Redux (if enriched in atlas; else Vinyl Distortion)
142
+ 14. Utility
143
+ 15. EQ Eight
144
+ 16. Compressor
145
+ 17. Glue Compressor
146
+ 18. Chorus-Ensemble
147
+ 19. Shifter
148
+ 20. Poli
149
+
150
+ ## Sync with atlas
151
+
152
+ The atlas already has `signature_techniques` for 47 devices. Affordance
153
+ YAMLs SHOULD NOT duplicate those — instead, `notes` can reference them
154
+ via `See atlas signature_techniques for recipes.`
155
+
156
+ Keep the axes distinct:
157
+ - **Atlas** = what exists, what presets are available, what recipes
158
+ work on this device
159
+ - **Affordance** = when to reach for this device, when to avoid it,
160
+ how its parameters translate to musical consequence
@@ -0,0 +1,133 @@
1
+ id: auto_filter
2
+ name: Auto Filter
3
+ type: effect
4
+ category: filter
5
+ aliases:
6
+ - "auto filter"
7
+ - "auto-filter"
8
+ atlas_search_query: "Auto Filter"
9
+
10
+ musical_roles:
11
+ - filter-sweep arranging
12
+ - dub-tail shaping on delay returns
13
+ - wobble-bass foundation (filter + LFO)
14
+ - build-up tension (closing filter into drop)
15
+ - single-source-morph melody (filter-as-melody)
16
+
17
+ strong_for:
18
+ - long-arc filter sweeps (4-16 bar)
19
+ - shaping delay returns (on the RETURN, not the input)
20
+ - LFO-driven wobble bass
21
+ - subtractive minimal-techno arrangement (filter-as-melody)
22
+ - removing high-end from samples that feel too bright
23
+
24
+ risky_for:
25
+ - already-filtered sources (compounded narrowness)
26
+ - tracks that depend on top-end for clarity (vocals, cymbals)
27
+ - busses with multiple harmonic sources (filter sweeps mask key)
28
+ - short sounds (filter envelope never resolves)
29
+
30
+ # All parameter values are 0-1 NORMALIZED (raw values you pass to
31
+ # set_device_parameter). The modern AutoFilter2 class uses 0-1 for every
32
+ # band-relevant parameter. value_string in the response is the source of
33
+ # truth for the display-unit (Hz, %, etc.) — always read it.
34
+ #
35
+ # Live-verified frequency mapping (AutoFilter2, v1.18.0):
36
+ # raw 0.10 → ~40 Hz (sub)
37
+ # raw 0.25 → ~100 Hz (low)
38
+ # raw 0.45 → ~450 Hz (low-mid — dub-filtered tails)
39
+ # raw 0.55 → ~900 Hz (mid)
40
+ # raw 0.65 → ~2 kHz (presence)
41
+ # raw 0.80 → ~5 kHz (brightness)
42
+ # raw 0.90 → ~10 kHz (air)
43
+ # The curve is roughly exponential — raw → display is NOT linear.
44
+ subtle_ranges:
45
+ frequency: [0.60, 0.85] # ~1.2-8 kHz (mid-high, opening the top end)
46
+ resonance: [0.0, 0.3]
47
+ envelope_amount: [0.0, 0.2]
48
+ lfo_amount: [0.0, 0.15]
49
+ moderate_ranges:
50
+ frequency: [0.40, 0.60] # ~300-1500 Hz (vocal / chord-stab territory)
51
+ resonance: [0.3, 0.6]
52
+ envelope_amount: [0.2, 0.5]
53
+ lfo_amount: [0.15, 0.4]
54
+ aggressive_ranges:
55
+ frequency: [0.25, 0.45] # ~100-450 Hz (dub / low-pass chop)
56
+ resonance: [0.6, 0.9] # still ≤1 — AutoFilter2 caps at 1.0
57
+ envelope_amount: [0.5, 1.0]
58
+ lfo_amount: [0.4, 1.0]
59
+ # Pre-v1.18.1 this YAML had LEGACY Hz values (1200-8000 etc) which
60
+ # applied to the pre-2010 AutoFilter device (class name AutoFilter,
61
+ # Frequency range 20-135 absolute). Live 12 ships AutoFilter2 which
62
+ # normalizes everything to 0-1 — the legacy values made set_device_parameter
63
+ # calls silently clamp or behave unpredictably.
64
+
65
+ pairings:
66
+ - device: Echo
67
+ order: after
68
+ purpose: filter the input before it hits the delay (dub chain)
69
+ - device: Saturator
70
+ order: after
71
+ purpose: harmonic saturation on the filtered signal
72
+ - device: Envelope Follower
73
+ order: parallel
74
+ purpose: kick-triggered filter sweeps on non-kick elements
75
+ - device: LFO # standalone LFO via mapped parameter
76
+ order: parallel
77
+ purpose: long-arc filter movement via mapped macro
78
+
79
+ anti_pairings:
80
+ - Multiple Auto Filters in series (use one with steeper slope instead)
81
+ - EQ Eight doing the same cut (redundant with filter)
82
+
83
+ remeasure:
84
+ - spectral_balance # filters directly change spectrum
85
+ - track_meters # narrow filtering can kill signal
86
+ - groove_motion # LFO-rate filter changes groove feel
87
+ # Always read value_string after setting any Auto Filter parameter —
88
+ # the raw 0-1 input maps non-linearly to display Hz/%/etc.
89
+
90
+ dimensional_impact:
91
+ structural: moderate # long sweeps ARE arrangement moves
92
+ rhythmic: low-moderate
93
+ timbral: high # filter is fundamental timbre
94
+ spatial: low
95
+
96
+ appears_in_packets:
97
+ artists:
98
+ - villalobos
99
+ - basic-channel
100
+ - hawtin
101
+ - skream-mala
102
+ - daft-punk
103
+ genres:
104
+ - dub-techno
105
+ - minimal-techno
106
+ - microhouse
107
+ - house
108
+ - deep-minimal
109
+ - dubstep
110
+ - uk-garage
111
+
112
+ notes: |
113
+ Live 12 ships two Auto Filter classes. The modern `AutoFilter2` uses
114
+ 0-1 NORMALIZED for Frequency and Resonance (live-verified against
115
+ v1.18.0). The legacy `AutoFilter` used an absolute 20-135 Hz range
116
+ for Frequency. This affordance documents the MODERN class — always
117
+ inspect the `class_name` field in `get_device_parameters` output
118
+ before applying: if it's `AutoFilter` (not `AutoFilter2`), the raw
119
+ values in this YAML will silently clamp or behave unexpectedly.
120
+
121
+ Defensive discipline: regardless of class, call
122
+ `get_device_parameters` after setting and read `value_string` for
123
+ the actual Hz value. The raw-to-display mapping is non-linear on both
124
+ classes.
125
+
126
+ For dub-techno delay returns: put Auto Filter ON the return track,
127
+ AFTER the Echo device. Low-pass at moderate frequency (raw ~0.40-0.55,
128
+ display ~300-900 Hz) with slow LFO (0.15 raw = ~0.26 Hz display)
129
+ gives the "tail movement" that carries harmony.
130
+
131
+ For minimal-techno subtractive: map a macro to the Frequency, draw
132
+ a 32-bar ramp from closed to open, and let the filter BE the
133
+ arrangement (Hawtin technique).
@@ -0,0 +1,91 @@
1
+ id: chorus_ensemble
2
+ name: Chorus-Ensemble
3
+ type: effect
4
+ category: modulation
5
+ aliases:
6
+ - "chorus-ensemble"
7
+ - "chorus ensemble"
8
+ - "chorus"
9
+ atlas_search_query: "Chorus-Ensemble"
10
+
11
+ musical_roles:
12
+ - thickening pads and leads
13
+ - synthwave / 80s lead character
14
+ - warming single-oscillator synths
15
+ - Juno-style ensemble emulation
16
+ - subtle stereo spread
17
+
18
+ strong_for:
19
+ - synthwave leads (Com Truise / Tycho aesthetic)
20
+ - warming Poli / Drift patches
21
+ - Juno-60-style ensemble chorus
22
+ - pads that feel "thin" from a single oscillator
23
+ - house / deep-house Rhodes thickening
24
+
25
+ risky_for:
26
+ - percussion (chorus smears transients)
27
+ - bass (chorus widens — destroys mono bass)
28
+ - already-chorused sources (Poli has internal chorus)
29
+ - modern-classical / ambient (adds period-specific character — may conflict)
30
+
31
+ subtle_ranges:
32
+ amount: [0.0, 0.15]
33
+ rate: [0.1, 0.8] # Hz
34
+ depth: [0.0, 0.2]
35
+ moderate_ranges:
36
+ amount: [0.15, 0.40]
37
+ rate: [0.3, 1.2]
38
+ depth: [0.2, 0.5]
39
+ aggressive_ranges:
40
+ amount: [0.40, 0.85]
41
+ rate: [0.8, 3.0]
42
+ depth: [0.5, 1.0]
43
+
44
+ pairings:
45
+ - device: Drift
46
+ order: after
47
+ purpose: thickening Drift pads (synthwave, house)
48
+ - device: Poli
49
+ order: after
50
+ purpose: extra thickness beyond Poli's internal chorus
51
+ - device: Wavetable
52
+ order: after
53
+ purpose: thickening wavetable pads (OPN aesthetic)
54
+ - device: Echo
55
+ order: after
56
+ purpose: chorus INTO echo for lush doubled tails
57
+
58
+ anti_pairings:
59
+ - "Bass tracks (chorus destroys mono compatibility on bass)"
60
+ - "Drum bus (chorus smears drum transients)"
61
+ - "Heavily-detuned Drift/Poli (already wide; chorus compounds)"
62
+
63
+ remeasure:
64
+ - stereo_width # chorus widens
65
+ - mono_compatibility
66
+ - spectral_balance
67
+
68
+ dimensional_impact:
69
+ structural: none
70
+ rhythmic: none
71
+ timbral: moderate
72
+ spatial: moderate
73
+
74
+ appears_in_packets:
75
+ artists:
76
+ - isolee-luomo
77
+ - com-truise-tycho
78
+ - daft-punk
79
+ genres:
80
+ - microhouse
81
+ - synthwave
82
+ - house
83
+
84
+ notes: |
85
+ Chorus-Ensemble is specialist: thickening synths, mostly pads
86
+ and leads. Never on percussion or bass. For synthwave,
87
+ moderate amount (0.3-0.5) + slow rate (0.5 Hz) is canonical.
88
+
89
+ In concept packets that list Chorus-Ensemble in reach_for, it's
90
+ typically paired with Drift or Poli — the chorus completes the
91
+ analog-polysynth character.
@@ -0,0 +1,98 @@
1
+ id: compressor
2
+ name: Compressor
3
+ type: effect
4
+ category: dynamics
5
+ aliases:
6
+ - "compressor"
7
+ atlas_search_query: "Compressor"
8
+
9
+ musical_roles:
10
+ - sidechain compression triggered by kick (pumping aesthetic)
11
+ - individual-track dynamics taming
12
+ - transient shaping (attack parameter)
13
+ - parallel compression for drum-bus density
14
+ - envelope-follower-triggered dynamic filtering
15
+
16
+ strong_for:
17
+ - house / disco / dance sidechain pumping (via Envelope Follower)
18
+ - vocal compression for consistency
19
+ - drum-bus glue (moderate ratio, slow attack)
20
+ - controlling peaks on transient-heavy material
21
+ - parallel processing for density without killing transients
22
+
23
+ risky_for:
24
+ - ambient / drone material (compression kills the dynamic evolution)
25
+ - transient-critical sources at aggressive settings (squash kills punch)
26
+ - already-limited material (compounded compression = lifeless)
27
+ - subtle-aesthetic contexts (Basic Channel, Gas) — the genre avoids compression
28
+
29
+ subtle_ranges:
30
+ threshold: [-6, -3] # dB
31
+ ratio: [1.5, 2.5]
32
+ attack: [10, 30] # ms
33
+ release: [50, 200] # ms
34
+ gain_reduction: [1, 3] # dB actual reduction target
35
+ moderate_ranges:
36
+ threshold: [-12, -6]
37
+ ratio: [2.5, 4.0]
38
+ attack: [2, 10]
39
+ release: [20, 50]
40
+ gain_reduction: [3, 6]
41
+ aggressive_ranges:
42
+ threshold: [-20, -12]
43
+ ratio: [4.0, 10.0]
44
+ attack: [0.1, 2]
45
+ release: [5, 20]
46
+ gain_reduction: [6, 15]
47
+
48
+ pairings:
49
+ - device: Envelope Follower
50
+ order: before # routed from external kick track
51
+ purpose: sidechain pumping (house / disco / dance)
52
+ - device: EQ Eight
53
+ order: before
54
+ purpose: cut problem frequencies before compressing
55
+ - device: Saturator
56
+ order: before
57
+ purpose: tame saturation peaks with downstream compression
58
+ - device: EQ Eight
59
+ order: after
60
+ purpose: restore lost brightness after compression
61
+
62
+ anti_pairings:
63
+ - "Multiple compressors in series at aggressive settings (squash compound)"
64
+ - "Limiter after compressor at aggressive settings (double-dynamics-kill)"
65
+
66
+ remeasure:
67
+ - track_meters # compression changes level
68
+ - spectral_balance # dynamic EQ shift
69
+ - groove_motion # sidechain pumping changes groove
70
+
71
+ dimensional_impact:
72
+ structural: none
73
+ rhythmic: moderate # sidechain pumping IS rhythmic texture
74
+ timbral: low
75
+ spatial: none
76
+
77
+ appears_in_packets:
78
+ artists:
79
+ - daft-punk
80
+ - moodymann-theo-parrish
81
+ - com-truise-tycho
82
+ - skream-mala
83
+ genres:
84
+ - house
85
+ - dubstep
86
+ - trap
87
+ - modern-classical
88
+ - drum-and-bass
89
+
90
+ notes: |
91
+ Compressor's most distinctive LivePilot use is sidechain pumping
92
+ via Envelope Follower — route the kick track's audio into
93
+ Compressor's sidechain input, ratio 4:1, attack 0.1 ms, release
94
+ 150-250 ms, and non-kick elements breathe with the kick.
95
+
96
+ For genres that AVOID compression (Basic Channel dub-techno,
97
+ Gas ambient), the packet's `avoid` list will explicitly name
98
+ heavy compression — respect it.
@@ -0,0 +1,113 @@
1
+ id: convolution_reverb
2
+ name: Convolution Reverb
3
+ type: effect
4
+ category: reverb
5
+ aliases:
6
+ - "convolution reverb"
7
+ - "convolution"
8
+ atlas_search_query: "Convolution Reverb"
9
+
10
+ musical_roles:
11
+ - cathedral / hall space for ambient and modern-classical
12
+ - dub-techno fog chain (100% wet on send)
13
+ - plate-reverb snare (Golden-era hip-hop)
14
+ - custom-IR aesthetic (spring, cassette, impulse loops)
15
+ - tail-harvesting (extract reverb tail as separate source)
16
+
17
+ strong_for:
18
+ - creating a specific real-world acoustic (hall, cathedral, chamber)
19
+ - dub-techno reverb chain (behind Echo on return, 100% wet)
20
+ - vintage plate / spring character via IR
21
+ - low CPU reverb for many simultaneous returns
22
+ - non-standard IRs (metal cabinet, car cabin, sampled vinyl noise)
23
+
24
+ risky_for:
25
+ - dry-aesthetic genres (hip-hop without intended plate, trap, boom-bap)
26
+ - tracks that already have strong spatial identity from another device
27
+ - short-tail needs (use Hybrid Reverb or Reverb instead)
28
+ - CPU-constrained sessions with many returns (less of a concern in 12.3+)
29
+
30
+ subtle_ranges:
31
+ wet: [0.05, 0.20] # dry/wet mix
32
+ decay_time: [0.5, 2.0] # seconds — actual parameter name
33
+ moderate_ranges:
34
+ wet: [0.25, 0.50]
35
+ decay_time: [2.0, 5.0]
36
+ aggressive_ranges:
37
+ wet: [0.55, 1.0]
38
+ decay_time: [5.0, 15.0]
39
+ # 100% wet on a return is the dub-techno default — context-dependent.
40
+ # On a send-return architecture (not an insert), wet=1.0 is functionally
41
+ # moderate (send level controls intensity); on an insert it's aggressive.
42
+
43
+ pairings:
44
+ - device: Echo
45
+ order: before
46
+ purpose: dub chain — Echo feeds the reverb for filtered-delay tails
47
+ - device: Auto Filter
48
+ order: before
49
+ purpose: filter the input before reverb for tone-shaped tails
50
+ - device: EQ Eight
51
+ order: after
52
+ purpose: shelf-cut low-end from reverb tails to prevent mud
53
+ - device: Utility
54
+ order: before
55
+ purpose: mono-ize input before reverb for centered space
56
+
57
+ anti_pairings:
58
+ - "Another large-IR reverb in series (use one at 100% wet on a send)"
59
+ - "Gated Delay on a reverb tail (Gated Delay expects dry input)"
60
+
61
+ remeasure:
62
+ - spectral_balance # reverb bloom can push low-mid
63
+ - stereo_width # hall IRs spread stereo
64
+ - low_headroom # tail buildup over time
65
+ - mud_content # low-end buildup from tail
66
+
67
+ dimensional_impact:
68
+ structural: low
69
+ rhythmic: low
70
+ timbral: moderate # IR choice colors tone
71
+ spatial: high # dominant consequence
72
+
73
+ appears_in_packets:
74
+ artists:
75
+ - basic-channel
76
+ - gas
77
+ - hawtin
78
+ - basinski
79
+ - stars-of-the-lid
80
+ - tim-hecker
81
+ - shackleton
82
+ - villalobos
83
+ - dj-premier-rza
84
+ - daft-punk
85
+ - johannsson-richter
86
+ - robert-henke
87
+ - photek-source-direct
88
+ - skream-mala
89
+ - burial
90
+ genres:
91
+ - ambient
92
+ - dub-techno
93
+ - deep-minimal
94
+ - minimal-techno
95
+ - microhouse
96
+ - modern-classical
97
+ - hip-hop
98
+ - drum-and-bass
99
+ - uk-garage
100
+
101
+ notes: |
102
+ Convolution Reverb is the most-referenced spatial device in the
103
+ catalog (15 artist packets). IR choice matters more than any other
104
+ parameter — Farfisa Spring for Basic Channel, cathedral for Gas,
105
+ Stocktronics RX-4000 for dub-techno variety, hall for Jóhannsson.
106
+
107
+ For dub-techno: place on a return track behind Echo, set wet to
108
+ 100%, let tracks send to it. For hip-hop snare: place on a return,
109
+ set IR to a plate, send snare at -9 dB.
110
+
111
+ Per CLAUDE.md analyzer-placement rule: if you load Convolution
112
+ Reverb on the master chain, the LivePilot_Analyzer must be AFTER
113
+ it, not before.
@@ -0,0 +1,84 @@
1
+ id: corpus
2
+ name: Corpus
3
+ type: effect
4
+ category: physical_model
5
+ aliases:
6
+ - "corpus"
7
+ atlas_search_query: "Corpus"
8
+
9
+ musical_roles:
10
+ - physical-modeling resonance on non-pitched sources
11
+ - metallic / glass / stone percussion textures (Arca / SOPHIE)
12
+ - pitched resonator on drums
13
+ - inharmonic bell-drone generator
14
+ - impossible-acoustic space creation
15
+
16
+ strong_for:
17
+ - transforming percussion into pitched tonal content
18
+ - creating metal-on-glass textures (Arca aesthetic)
19
+ - resonance-based sound design where the SOURCE gets replaced by its resonance
20
+ - experimental / noise work (atonal resonance)
21
+ - noise-bow technique (bowing noise through Corpus)
22
+
23
+ risky_for:
24
+ - pitched melodic material (Corpus will fight the source's harmony)
25
+ - already-resonant sources (double-resonance = chaos)
26
+ - dense mixes (Corpus's output has complex harmonic content)
27
+ - conservative production (it always sounds "processed")
28
+
29
+ subtle_ranges:
30
+ resonance_amount: [0.0, 0.25]
31
+ decay: [0.1, 0.5]
32
+ body_size: [0.3, 0.6]
33
+ moderate_ranges:
34
+ resonance_amount: [0.25, 0.55]
35
+ decay: [0.5, 2.0]
36
+ body_size: [0.15, 0.85]
37
+ aggressive_ranges:
38
+ resonance_amount: [0.55, 1.0]
39
+ decay: [2.0, 10.0] # long sustained resonance
40
+ body_size: [0.0, 1.0] # extremes
41
+
42
+ pairings:
43
+ - device: Erosion
44
+ order: before
45
+ purpose: noise input for resonance coloring
46
+ - device: Spectral Resonator
47
+ order: parallel
48
+ purpose: additional spectral content beyond Corpus model
49
+ - device: Convolution Reverb
50
+ order: after
51
+ purpose: spatial placement of resonance
52
+
53
+ anti_pairings:
54
+ - "Another Corpus in series (unpredictable feedback)"
55
+ - "Tension with Corpus (both physical models — pick one)"
56
+
57
+ remeasure:
58
+ - spectral_balance # Corpus dramatically changes spectrum
59
+ - low_headroom # resonance can build up level
60
+ - plugin_health
61
+
62
+ dimensional_impact:
63
+ structural: low
64
+ rhythmic: low
65
+ timbral: high
66
+ spatial: moderate # Corpus has inherent spatial character
67
+
68
+ appears_in_packets:
69
+ artists:
70
+ - arca-sophie
71
+ genres:
72
+ - experimental
73
+ - idm
74
+
75
+ notes: |
76
+ Corpus is the physical-modeling signature for Arca/SOPHIE aesthetic.
77
+ Use it to transform percussion into pitched textures, or to add
78
+ metallic resonance that sounds physical rather than synthesized.
79
+
80
+ Canonical technique: "Noise Bow" — bow a noise source through Corpus
81
+ to generate inharmonic drone. See atlas signature_techniques.
82
+
83
+ Plans using Corpus should note its `dimensional_impact.timbral=high`
84
+ means a Corpus plan counts as a timbral plan for the four-move rule.