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,272 @@
1
+ # Automation Atlas — LivePilot v1.6
2
+
3
+ Complete knowledge corpus for musically intelligent automation. Load this reference when working with automation tools.
4
+
5
+ ---
6
+
7
+ ## 1. Curve Theory
8
+
9
+ ### Why exponential for filters
10
+ Filter frequency perception is logarithmic (octaves). 100Hz → 200Hz is the same perceptual distance as 1kHz → 2kHz. An exponential curve in the normalized 0–1 range maps to perceptually even movement across the frequency spectrum. Linear automation on a filter sounds like it's rushing through the highs and crawling through the lows. Use `exponential` with `factor` 2.0–3.0 for filter cutoff.
11
+
12
+ ### Why logarithmic for volume
13
+ Human loudness perception follows a logarithmic curve (Weber-Fechner law). -6dB = half perceived loudness, not half amplitude. A logarithmic fade-in sounds smooth; a linear fade-in sounds like nothing happens then suddenly gets loud. Use `logarithmic` with `factor` 2.5–3.5 for volume fades.
14
+
15
+ ### Why S-curve for crossfades
16
+ Natural acceleration/deceleration. Avoids the "hole in the middle" of linear crossfades where combined energy dips. The smoothstep function (3t² - 2t³) ensures the rate of change is zero at both endpoints, so the transition feels organic. Use `s_curve` for any A→B crossfade.
17
+
18
+ ### Why spike for throws
19
+ Dub production technique — instant send level spike creates a single reflection that decays naturally through the reverb/delay tail. Any other shape creates unnatural sustained reflections. The exponential decay (peak × e^(-decay×t)) models how real acoustic energy dissipates.
20
+
21
+ ### Pan is linear
22
+ Stereo position perception is roughly linear. A pan pot moving at constant speed sounds even. No need for perceptual correction on pan automation.
23
+
24
+ ### Resonance is dangerous
25
+ Filter resonance is non-linear — subtle changes at low values, dramatic and potentially destructive at high values. Self-oscillation begins above ~0.85 on most filters. Never automate resonance above 0.85 without explicit user intent. Use `breathing` recipe with reduced amplitude (0.05–0.10) for subtle resonance movement.
26
+
27
+ ---
28
+
29
+ ## 2. The Perception-Action Loop (5 levels)
30
+
31
+ **MANDATORY for all automation work.** Never write automation blind — always perceive first.
32
+
33
+ ### Level 1: Reactive
34
+ Single read, single action. The simplest loop.
35
+ 1. `get_master_spectrum` → read frequency content
36
+ 2. Identify one issue (e.g., "mud below 200Hz")
37
+ 3. Apply one automation (e.g., HP filter sweep)
38
+ 4. `get_master_spectrum` → verify improvement
39
+
40
+ ### Level 2: Diagnostic
41
+ Multi-step investigation using EQ as a microscope. See Section 3 (Diagnostic Filter Technique).
42
+
43
+ ### Level 3: Verification
44
+ Act → measure → adjust cycle. For every automation written:
45
+ 1. Read spectrum BEFORE
46
+ 2. Write automation
47
+ 3. Read spectrum AFTER
48
+ 4. Compare: did the problem frequency range improve?
49
+ 5. If not, `clear_clip_automation` → adjust parameters → try again
50
+ 6. Log the successful parameters in memory for reuse
51
+
52
+ ### Level 4: Cross-Track
53
+ Solo each track, build spectral map, write complementary automation.
54
+ 1. For each track: solo → `get_master_spectrum` → record fingerprint
55
+ 2. Find frequency overlaps between tracks (masking)
56
+ 3. Write complementary automation: as kick's filter opens, bass's filter narrows
57
+ 4. Verify no new masking was introduced
58
+ 5. Store the cross-track map in memory
59
+
60
+ ### Level 5: Full Pipeline
61
+ Per-track analysis across entire session.
62
+ 1. Run Level 4 for all tracks
63
+ 2. Build session-wide spectral map
64
+ 3. Write automation considering all interactions
65
+ 4. Verify global mix spectrum
66
+ 5. Iterate until balanced
67
+
68
+ ---
69
+
70
+ ## 3. Diagnostic Filter Technique
71
+
72
+ Using EQ Eight as a measurement instrument. Step-by-step:
73
+
74
+ 1. **Load EQ Eight** on target track via `find_and_load_device`
75
+ 2. **Configure band 1** as narrow bandpass: Q=8, gain=0dB, frequency=100Hz
76
+ - Use `set_device_parameter` to set Filter Type to Band Pass, Q to 8.0
77
+ 3. **Solo the track** via `set_track_solo`
78
+ 4. **Read spectrum** at 100Hz: `get_master_spectrum` → note the `sub` value
79
+ 5. **Sweep frequency** through key ranges:
80
+ - 100Hz, 200Hz, 300Hz, 500Hz, 1kHz, 2kHz, 5kHz, 10kHz
81
+ - At each: `set_device_parameter` (frequency) → `get_master_spectrum` → record
82
+ 6. **Build frequency map**: `{100Hz: 0.18, 200Hz: 0.25, 300Hz: 0.09, ...}`
83
+ 7. **Identify problems**: resonance buildup, mud, harshness, dead zones
84
+ 8. **Remove diagnostic EQ** — always clean up: `delete_device`
85
+ 9. **Un-solo the track**: `set_track_solo` (toggle off)
86
+ 10. **Write targeted automation** addressing what was found
87
+
88
+ ### What to look for:
89
+ - **Mud** (200-400Hz): values > 0.20 suggest buildup → HP filter automation
90
+ - **Resonance** (narrow peak in 300-800Hz): ringing → notch filter or gentle sweep
91
+ - **Harshness** (2-5kHz): values > 0.25 suggest brightness → LP filter or shelf automation
92
+ - **Dead zone** (any range with 0.00): frequency hole → boost or different device
93
+
94
+ ---
95
+
96
+ ## 4. Genre Recipes
97
+
98
+ ### Techno
99
+ - `filter_sweep_up` on LP cutoff, 32 bars, factor 2.0 — the classic build
100
+ - `sidechain_pump` on pad volume via Utility gain, 1 beat loop
101
+ - `stutter` on vocals before drop, 0.5 beats, frequency 16
102
+ - `stereo_narrow` on master bus, 8 bars before drop → instant widen at drop
103
+ - Long transitions: combine HP filter + reverb send + stereo width, all exponential
104
+
105
+ ### Dub
106
+ - `dub_throw` on Send A at each snare position, 1 beat duration
107
+ - `tape_stop` on clip transpose for transitions, 0.5 beats
108
+ - `washout` on delay feedback, 4 bars → cut at phrase boundary
109
+ - `breathing` on filter cutoff, 4 bars — everything breathes in dub
110
+ - Tip: never automate delay feedback above 0.85 (infinite feedback risk)
111
+
112
+ ### Ambient
113
+ - `breathing` on filter cutoff, 4 bars, amplitude 0.10 — subtle is key
114
+ - `perlin` noise on reverb mix, 8 bars, amplitude 0.15, seed varies
115
+ - `brownian` drift on wavetable position, 16 bars, volatility 0.05
116
+ - Polyrhythmic automation: 3-beat filter + 5-beat reverb + 7-beat pan = 105-beat cycle
117
+ - Less is more. Ambient automation should be felt, not heard.
118
+
119
+ ### Hip Hop
120
+ - `tape_stop` on clip transpose, 0.5 beats — classic vinyl stop
121
+ - `vinyl_crackle` on Redux bit depth, 16 bars — lo-fi character
122
+ - `sidechain_pump` on bass under kick, 0.5 beat — tight pocket
123
+ - `fade_out` on filter for transitions between sections
124
+ - Keep automation sparse — hip hop is about groove, not modulation
125
+
126
+ ### IDM / Experimental
127
+ - `stutter` on volume, 0.5 beats, frequency 16 — micro-editing
128
+ - `euclidean` on filter cutoff: 5 hits across 8 steps — rhythmic intelligence
129
+ - `stochastic` on grain parameters, narrowing 0.7 — controlled chaos
130
+ - `spring` on filter cutoff for overshoot character
131
+ - Layer multiple polyrhythmic automations for generative evolution
132
+
133
+ ---
134
+
135
+ ## 5. Sound Design Automation
136
+
137
+ ### Wavetable position
138
+ Exponential sweep for timbral morphing over 8–16 bars. The timbral change is often perceptually logarithmic, so exponential automation creates even-sounding evolution.
139
+
140
+ ### Grain size
141
+ Sine modulation at 0.5–2Hz for alive textures. The slow oscillation prevents the grainular artifacts from sounding static. Use `breathing` recipe adapted: center 0.5, amplitude 0.15.
142
+
143
+ ### Reverb decay
144
+ Link inversely to volume: quieter passages get longer tails for natural space. As volume drops, reverb decay increases. Automate both with complementary curves.
145
+
146
+ ### Delay feedback
147
+ Spike for throws (dub technique). NEVER exceed 0.9 on feedback — infinite feedback creates dangerous signal buildup. Use `dub_throw` recipe with peak capped at 0.85.
148
+
149
+ ### Filter resonance
150
+ Subtle sine modulation creates vocal/crying quality. Watch for self-oscillation above 0.85. Use amplitude 0.05–0.10 for subtle character, 0.15–0.25 for expressive.
151
+
152
+ ---
153
+
154
+ ## 6. Arrangement Techniques
155
+
156
+ ### The Build (16–32 bars before drop)
157
+ Combine multiple automations, all exponential:
158
+ 1. HP filter: 0→0.6 (remove low end gradually)
159
+ 2. Volume: 0.7→1.0 (subtle lift)
160
+ 3. Reverb send: 0→0.5 (add wash)
161
+ 4. Stereo width: 1.0→0.0 (collapse to mono)
162
+ 5. At drop: instant step back to defaults
163
+
164
+ ### The Drop (instant)
165
+ Step automation restoring all build parameters to default values. No curves — immediate snap. Use `steps` curve with a single value at time 0.
166
+
167
+ ### The Strip (8–16 bars)
168
+ Gradual HP filter rise removing elements one by one:
169
+ 1. First: HP filter on bass track (removes bass)
170
+ 2. Then: HP filter on drums (removes kick)
171
+ 3. Then: HP filter on pads (removes mids)
172
+ 4. Only high frequencies remain → transition point
173
+
174
+ ### The Crossfade (2–8 bars)
175
+ S-curve volume automation between two sections:
176
+ - Outgoing track: s_curve from 1.0 to 0.0
177
+ - Incoming track: s_curve from 0.0 to 1.0
178
+ - S-curve prevents the energy dip of linear crossfades
179
+
180
+ ---
181
+
182
+ ## 7. Micro-Editing and Humanization
183
+
184
+ ### Velocity vs volume
185
+ Velocity is timbre — it changes how the sound is generated (harder hits, brighter tone). Volume automation is loudness — it changes amplitude after generation. They are different tools.
186
+
187
+ ### Per-note filter accent
188
+ Automate filter cutoff to spike on accented notes. Use `spike` with duration matching the note length. Creates timbral accents without touching velocity.
189
+
190
+ ### Spatial punctuation
191
+ Send spikes on specific hits create spatial depth variation. Snare → reverb throw on beat 2 and 4. Hi-hat → delay throw on off-beats. Use `dub_throw` recipe.
192
+
193
+ ### Humanization via Perlin noise
194
+ Tiny pitch/filter variations make programmed music feel human:
195
+ - `perlin` on detune: amplitude 0.02, frequency 0.5
196
+ - `perlin` on filter cutoff: amplitude 0.05, frequency 0.3
197
+ - Different seeds per track — each voice drifts independently
198
+
199
+ ---
200
+
201
+ ## 8. Polyrhythmic Automation
202
+
203
+ ### The concept
204
+ Unlinked automation envelopes with different loop lengths create long, non-repeating cycles:
205
+ - 4-beat clip loop + 3-beat filter envelope + 5-beat reverb envelope
206
+ - Total cycle: LCM(4, 3, 5) = 60 beats before exact repetition
207
+ - 60 beats ≈ 15 bars at 4/4 — feels evolving, never static
208
+
209
+ ### Prime number rule
210
+ Use prime-number beat lengths for maximum non-repetition:
211
+ - 3, 5, 7, 11, 13 beats
212
+ - LCM of primes = their product (all coprime)
213
+ - 3 × 5 × 7 = 105 beats ≈ 26 bars before exact repeat
214
+
215
+ ### Implementation
216
+ 1. Create clip with N-beat loop (your base rhythm)
217
+ 2. `apply_automation_shape` with `duration` = M beats (M ≠ N, preferably prime)
218
+ 3. The automation loops at M beats, the clip loops at N beats
219
+ 4. Add another automation with duration = P beats (another prime)
220
+ 5. Total cycle = LCM(N, M, P) beats
221
+
222
+ ### Use cases
223
+ Essential for ambient, installation, generative work. Creates the sense of "always evolving" that distinguishes produced music from loops.
224
+
225
+ ---
226
+
227
+ ## 9. Cross-Track Spectral Mapping
228
+
229
+ ### Process
230
+ 1. **Solo each track** one at a time
231
+ 2. **Read spectrum**: `get_master_spectrum` → record {sub, low, mid, high, presence, air}
232
+ 3. **Build spectral fingerprint** for each track:
233
+ ```
234
+ Kick: sub=0.45, low=0.30, mid=0.05, high=0.02
235
+ Bass: sub=0.35, low=0.40, mid=0.15, high=0.03
236
+ Pad: sub=0.05, low=0.15, mid=0.35, high=0.25
237
+ ```
238
+ 4. **Find overlaps**: kick and bass both strong in sub/low = masking
239
+ 5. **Write complementary automation**: as kick opens, bass narrows
240
+ 6. **Verify**: un-solo all, check master spectrum for improvement
241
+
242
+ ### Complementary automation patterns
243
+ - **Kick + Bass**: sidechain pump on bass volume, or complementary filter sweeps
244
+ - **Vocals + Pads**: automate pad filter to duck in vocal frequency range (1–4kHz)
245
+ - **Multiple synths**: different breathing rates (frequency 0.3, 0.5, 0.7) to weave in/out
246
+
247
+ ### Store findings
248
+ Use `memory_learn` to save spectral maps and successful automation combinations. Build a knowledge base about the session's sounds for consistent decisions.
249
+
250
+ ---
251
+
252
+ ## 10. Golden Rules
253
+
254
+ 1. **Always use Utility gain for volume automation** — preserve the mixer fader for mixing. Automate the Utility device's Gain parameter, not track volume.
255
+
256
+ 2. **Exponential for filters, logarithmic for volume** — never linear for either. This is perceptual science, not preference.
257
+
258
+ 3. **Subtle automation (5–15% range) for organic feel; dramatic (full range) for transitions.** Most automation should be felt, not heard. Save the big sweeps for builds and drops.
259
+
260
+ 4. **ALWAYS verify with `get_master_spectrum` after writing automation.** The feedback loop is mandatory, not optional.
261
+
262
+ 5. **Use `clear_clip_automation` before rewriting.** Don't stack conflicting curves — clear first, then write fresh.
263
+
264
+ 6. **Use the diagnostic filter technique before guessing at problem frequencies.** Measurement beats intuition.
265
+
266
+ 7. **Store spectral findings in memory.** Build a knowledge base about this session's sounds. Cross-session awareness makes every future decision better.
267
+
268
+ 8. **Delay feedback NEVER above 0.9.** Infinite feedback creates dangerous signal buildup. Cap at 0.85 for safety, even in experimental contexts.
269
+
270
+ 9. **density 16–32 for most curves.** 16 points per bar gives smooth results for gentle curves. 32 for fast modulations or detailed shapes. Above 64 is rarely worth the overhead.
271
+
272
+ 10. **When in doubt, use a recipe.** The 15 built-in recipes encode production wisdom. Start with the recipe, then customize if needed.
@@ -0,0 +1,158 @@
1
+ # Concept Packet Schema
2
+
3
+ Concept packets are structured YAML files that turn prose entries in
4
+ `artist-vocabularies.md` and `genre-vocabularies.md` into machine-readable
5
+ payloads the Creative Director compiles into briefs and diversity seeds.
6
+
7
+ Files live in:
8
+
9
+ ```
10
+ livepilot/skills/livepilot-core/references/concepts/
11
+ ├── artists/<slug>.yaml # per-artist packets
12
+ ├── genres/<slug>.yaml # per-genre packets
13
+ └── _schema.md # this file
14
+ ```
15
+
16
+ The narrative .md files stay — they are human-facing overviews. The YAML
17
+ is the source-of-truth for director compilation.
18
+
19
+ ## Loading
20
+
21
+ The director's Phase 1 concept-packet load step resolves user references
22
+ as follows:
23
+
24
+ 1. Normalize the user's reference (artist or genre, lowercase, hyphenate spaces).
25
+ 2. Check `artists/<slug>.yaml` first, then `genres/<slug>.yaml`.
26
+ 3. If no exact match, check the `aliases` field of each packet.
27
+ 4. If still no match, fall back to the narrative .md file and flag
28
+ the packet as unstructured.
29
+
30
+ ## Schema
31
+
32
+ ```yaml
33
+ # REQUIRED
34
+ id: str # e.g. "dub_techno__basic_channel"
35
+ name: str # human-readable, e.g. "Basic Channel / Rhythm & Sound"
36
+ type: artist | genre | hybrid
37
+ aliases: list[str] # alternate names for lookup (can be [])
38
+
39
+ # The sound IS — not what to do, what it sounds like
40
+ sonic_identity: list[str] # bullet points describing the sound
41
+
42
+ # What the director reaches for — populates Phase 3 candidate pool
43
+ reach_for:
44
+ instruments: list[str] # Ableton/pack device names — must exist in atlas
45
+ effects: list[str] # effect device names
46
+ packs: list[str] # pack names for atlas_pack_info lookup
47
+ utilities: list[str] # Utility, Spectrum, EQ Eight, etc. for diagnostic chain
48
+
49
+ # Hard filter — candidate plans failing these get dropped in Phase 3
50
+ avoid: list[str]
51
+
52
+ # Stylistic tendencies — inform plan descriptions, not mandatory
53
+ rhythm_idioms: list[str]
54
+ harmony_idioms: list[str]
55
+ arrangement_idioms: list[str]
56
+ texture_idioms: list[str]
57
+
58
+ # For sample-heavy aesthetics — what the sample plays in the track
59
+ sample_roles: list[str] # texture_bed | transient_ghost | dub_tail_source | ...
60
+
61
+ # Cross-reference to the technique catalog
62
+ key_techniques:
63
+ - name: str # e.g. "dub_throw"
64
+ source: str # sample-techniques.md | sound-design-deep.md | atlas
65
+ device: str # when source is atlas — the device name
66
+ notes: str # optional inline hint
67
+
68
+ # How the director weights the goal vector for this aesthetic
69
+ evaluation_bias:
70
+ target_dimensions: # weights (sum loosely to 1.0)
71
+ depth: float
72
+ groove: float
73
+ motion: float
74
+ contrast: float
75
+ novelty: float
76
+ cohesion: float
77
+ clarity: float
78
+ protect: # floor values — below these = identity break
79
+ clarity: float
80
+ cohesion: float
81
+ low_end: float # packets that require bass weight
82
+
83
+ # How the director biases the 3-plan family diversity
84
+ move_family_bias:
85
+ favor: list[str] # families to prefer (subset of the six canonical)
86
+ deprioritize: list[str] # families to avoid unless user explicitly asks
87
+
88
+ # 4-move rule coverage expectation
89
+ dimensions_in_scope: list[str] # from {structural, rhythmic, timbral, spatial}
90
+ dimensions_deprioritized: list[str] # from the same set — for narrow-idiom packets
91
+ # (dub-techno deprioritizes rhythmic; ambient
92
+ # deprioritizes rhythmic + structural; beat-
93
+ # focused deprioritizes spatial)
94
+
95
+ # Default novelty budget when no user framing is present
96
+ novelty_budget_default: float # 0.0 – 1.0
97
+
98
+ # Tempo hints — optional, mainly for genre packets
99
+ tempo_hint:
100
+ min: int
101
+ max: int
102
+ time_signature: str # "4/4", "2-step", etc.
103
+
104
+ # Cross-links
105
+ canonical_artists: list[str] # genre packets list representative artists
106
+ canonical_genres: list[str] # artist packets list their genres (slugs from genres/)
107
+
108
+ # Free-form prose the director can read when composing the brief identity line
109
+ notes: str
110
+ ```
111
+
112
+ ## Field rules
113
+
114
+ - `type: artist` packets MUST have `canonical_genres` populated.
115
+ `canonical_artists` is optional for artist packets (typically `[]` or
116
+ omitted — putting `[]` is redundant but accepted for schema symmetry).
117
+ - `type: genre` packets MUST have `canonical_artists` populated.
118
+ `canonical_genres` is optional for genre packets.
119
+ - `move_family_bias.favor` + `move_family_bias.deprioritize` should not
120
+ overlap.
121
+ - `dimensions_in_scope` + `dimensions_deprioritized` should together
122
+ cover all four dimensions (structural / rhythmic / timbral / spatial).
123
+ - `evaluation_bias.target_dimensions` weights should loosely sum to 1.0
124
+ (not strictly enforced — they're ratios).
125
+ - `evaluation_bias.protect` floor values are 0.0 – 1.0 where higher
126
+ means more strictly protected.
127
+ - `novelty_budget_default` applies only when the user's turn contains
128
+ NO explicit framing mapping to the `creative-brief-template.md`
129
+ novelty table. User framing always wins.
130
+ - `tempo_hint` should reflect the actual artist's / genre's canonical
131
+ tempo range, not a genre-general band. If you set 120-130 for an
132
+ artist whose tracks are 95-110, the agent will send the wrong tempo.
133
+
134
+ ## Relationship to narrative .md files
135
+
136
+ - `artist-vocabularies.md` — narrative overview, human-facing
137
+ - `genre-vocabularies.md` — narrative overview, human-facing
138
+ - `concepts/artists/*.yaml` — structured, machine-loaded
139
+ - `concepts/genres/*.yaml` — structured, machine-loaded
140
+
141
+ When a new artist or genre is added, update BOTH. The narrative .md
142
+ gives a reader an overview; the YAML gives the director an executable
143
+ packet. They should not disagree.
144
+
145
+ ## Sync check (future CI)
146
+
147
+ A test in `tests/test_concept_packets.py` should verify:
148
+
149
+ 1. Every `### <name>` heading in `artist-vocabularies.md` has a matching
150
+ `artists/<slug>.yaml`.
151
+ 2. Every `## <name>` heading in `genre-vocabularies.md` has a matching
152
+ `genres/<slug>.yaml`.
153
+ 3. Every YAML parses cleanly and has all required fields.
154
+ 4. Every `canonical_artists` / `canonical_genres` cross-reference
155
+ resolves to an existing packet.
156
+ 5. Every `key_techniques.name` resolves to either a line in
157
+ `sample-techniques.md` / `sound-design-deep.md` or an atlas
158
+ `signature_techniques` entry.
@@ -0,0 +1,116 @@
1
+ id: microhouse__akufen
2
+ name: Akufen (Marc Leclair)
3
+ type: artist
4
+ aliases:
5
+ - "akufen"
6
+ - "marc leclair"
7
+
8
+ sonic_identity:
9
+ - micro-second vocal and radio clippings triggered percussively
10
+ - melodic AND rhythmic content emerge simultaneously from the same chop source
11
+ - '"My Way" album is the canonical reference'
12
+ - no coherent vocal survives — everything is syllable-or-shorter
13
+
14
+ reach_for:
15
+ instruments:
16
+ - Simpler # slicing mode, 1/64 length
17
+ effects:
18
+ - Snipper # Building Max Devices
19
+ - PitchLoop89
20
+ - Auto Filter # on drum bus
21
+ - Convolution Reverb
22
+ packs:
23
+ - Voice Box
24
+ - Chop and Swing
25
+ - Latin Percussion
26
+ - Lost and Found
27
+ utilities:
28
+ - Utility
29
+
30
+ avoid:
31
+ - coherent vocal samples (longer than one syllable)
32
+ - pitched singing
33
+ - long-sustain material
34
+ - stock presets
35
+
36
+ rhythm_idioms:
37
+ - micro-chopped vocals triggered as percussion
38
+ - 4/4 underneath but the chops override the grid
39
+ - off-grid re-trigger via probability
40
+
41
+ harmony_idioms:
42
+ - implied tonality via chopped-syllable pitch relationships
43
+ - no conventional chord changes
44
+
45
+ arrangement_idioms:
46
+ - constant chop-pattern variation
47
+ - single loop evolves through retriggering, not adding layers
48
+
49
+ texture_idioms:
50
+ - entire track IS texture — vocal fragments fill the sonic field
51
+ - reverb/filter sends tucked at -20 to -30 dB
52
+
53
+ sample_roles:
54
+ - rhythmic_chop
55
+ - melodic_chop
56
+ - transient_ghost
57
+
58
+ key_techniques:
59
+ - name: "Vocal micro-chop (Akufen)"
60
+ source: atlas
61
+ device: Simpler
62
+ notes: the technique's name literally comes from this artist
63
+ - name: "micro_chop"
64
+ source: sample-techniques.md
65
+ - name: "stab_isolation"
66
+ source: sample-techniques.md
67
+
68
+ evaluation_bias:
69
+ target_dimensions:
70
+ groove: 0.24
71
+ novelty: 0.18
72
+ motion: 0.16
73
+ depth: 0.12
74
+ contrast: 0.12
75
+ cohesion: 0.10
76
+ clarity: 0.08
77
+ protect:
78
+ clarity: 0.50
79
+ cohesion: 0.60
80
+ low_end: 0.60
81
+
82
+ move_family_bias:
83
+ favor:
84
+ - arrangement
85
+ - sound_design
86
+ - device_creation
87
+ deprioritize:
88
+ - mix
89
+ - performance
90
+
91
+ dimensions_in_scope:
92
+ - rhythmic
93
+ - timbral
94
+ - structural
95
+ dimensions_deprioritized:
96
+ - spatial
97
+
98
+ novelty_budget_default: 0.65
99
+
100
+ tempo_hint:
101
+ min: 122
102
+ max: 128
103
+ time_signature: "4/4"
104
+
105
+ canonical_artists: []
106
+ canonical_genres:
107
+ - microhouse
108
+
109
+ notes: |
110
+ Akufen asks reward extreme source-material discipline: the sample is
111
+ the instrument, and the patch work is in Simpler's slice envelope,
112
+ pitch ranges, and re-trigger probability. Plan distribution:
113
+ arrangement (clip-level chop re-sequencing with
114
+ dimension_hint="rhythmic"), sound_design (Simpler slice parameters
115
+ + Snipper drift), device_creation (load Auto Filter + Convolution
116
+ on the drum bus for the signature filtered-chop tail).
@@ -0,0 +1,133 @@
1
+ id: idm__aphex_twin
2
+ name: Aphex Twin (Richard D. James)
3
+ type: artist
4
+ aliases:
5
+ - "aphex twin"
6
+ - "aphex"
7
+ - "richard d. james"
8
+ - "rdj"
9
+ - "afx"
10
+
11
+ sonic_identity:
12
+ - fast shifting timbres
13
+ - melodic acid lines
14
+ - detailed micro-percussion
15
+ - gliding portamento leads
16
+ - FM-heavy sound design
17
+ - occasional brutal distortion
18
+
19
+ reach_for:
20
+ instruments:
21
+ - Operator # FM with 6+ operators if layered
22
+ - Analog # 303-style acid
23
+ - Simpler # MIDI auto-trigger for rapid drum variation
24
+ - Wavetable
25
+ effects:
26
+ - Erosion
27
+ - Pitch Hack
28
+ - Roar # distortion
29
+ - Microtuner
30
+ - Grain Delay
31
+ packs:
32
+ - Core Library synths
33
+ - MIDI Tools
34
+ utilities:
35
+ - EQ Eight
36
+
37
+ avoid:
38
+ - single-textured drones (opposite of Hecker)
39
+ - slow-evolving pads (unless in ambient-phase track)
40
+ - preset factory drum racks
41
+ - conservative production
42
+
43
+ rhythm_idioms:
44
+ - rapid drum variation via Simpler auto-trigger
45
+ - micro-percussion at 1/32 and 1/64
46
+ - breakbeat chopping
47
+ - Amen break variations
48
+
49
+ harmony_idioms:
50
+ - acid basslines (303-derived)
51
+ - occasional microtonal moments
52
+ - melodic motifs with heavy portamento
53
+ - minor-key melodic phrases
54
+
55
+ arrangement_idioms:
56
+ - fast timbral shifts — a section may change sound every 4 bars
57
+ - IDM-adjacent structural non-linearity
58
+ - ambient pieces on the opposite extreme (long sustain)
59
+
60
+ texture_idioms:
61
+ - FM bells
62
+ - digital grain
63
+ - acid-bass squelch
64
+ - DX7-style bell clusters
65
+
66
+ sample_roles:
67
+ - rhythmic_chop
68
+ - melodic_source
69
+ - percussive_ghost
70
+
71
+ key_techniques:
72
+ - name: "Aphex ambient FM pad"
73
+ source: atlas
74
+ device: Operator
75
+ - name: "303 acid bass"
76
+ source: atlas
77
+ device: Analog
78
+ - name: "micro_chop"
79
+ source: sample-techniques.md
80
+ - name: "DX7 bell cluster"
81
+ source: atlas
82
+ device: Operator
83
+
84
+ evaluation_bias:
85
+ target_dimensions:
86
+ novelty: 0.20
87
+ motion: 0.18
88
+ groove: 0.16
89
+ contrast: 0.14
90
+ depth: 0.12
91
+ cohesion: 0.10
92
+ clarity: 0.10
93
+ protect:
94
+ clarity: 0.55
95
+ cohesion: 0.55
96
+ low_end: 0.65
97
+
98
+ move_family_bias:
99
+ favor:
100
+ - sound_design
101
+ - arrangement
102
+ - device_creation
103
+ deprioritize:
104
+ - performance
105
+
106
+ dimensions_in_scope:
107
+ - rhythmic
108
+ - timbral
109
+ - structural
110
+ - spatial
111
+ dimensions_deprioritized: []
112
+
113
+ novelty_budget_default: 0.7
114
+
115
+ tempo_hint:
116
+ min: 120
117
+ max: 170
118
+ time_signature: "4/4" # or complex when user specifies
119
+
120
+ canonical_artists: []
121
+ canonical_genres:
122
+ - idm
123
+ - ambient
124
+
125
+ notes: |
126
+ Aphex is the canonical IDM "all dimensions in scope" case. Plans
127
+ distribute freely. Typical three-plan set: sound_design (FM patch
128
+ on Operator), arrangement (rhythmic — probability + Simpler
129
+ auto-trigger with dimension_hint="rhythmic"), device_creation (load
130
+ Analog for 303-style acid line).
131
+
132
+ Ambient-phase Aphex (SAW II, etc.) requires re-reading the brief
133
+ as a modern_classical/ambient packet — user should disambiguate.