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.
- package/CHANGELOG.md +24 -0
- package/README.md +1 -1
- package/installer/codex.js +87 -9
- package/livepilot/.Codex-plugin/plugin.json +8 -0
- package/livepilot/.claude-plugin/plugin.json +8 -0
- package/livepilot/.mcp.json +8 -0
- package/livepilot/agents/livepilot-producer/AGENT.md +314 -0
- package/livepilot/commands/arrange.md +47 -0
- package/livepilot/commands/beat.md +81 -0
- package/livepilot/commands/evaluate.md +49 -0
- package/livepilot/commands/memory.md +22 -0
- package/livepilot/commands/mix.md +47 -0
- package/livepilot/commands/perform.md +42 -0
- package/livepilot/commands/session.md +13 -0
- package/livepilot/commands/sounddesign.md +58 -0
- package/livepilot/rubrics/default_preset_check.md +82 -0
- package/livepilot/rubrics/layer_accumulation.md +79 -0
- package/livepilot/rubrics/layer_precision.md +79 -0
- package/livepilot/rubrics/modulation_presence.md +63 -0
- package/livepilot/rubrics/sound_design_depth.md +40 -0
- package/livepilot/skills/livepilot-arrangement/SKILL.md +164 -0
- package/livepilot/skills/livepilot-composition-engine/SKILL.md +151 -0
- package/livepilot/skills/livepilot-composition-engine/references/form-patterns.md +97 -0
- package/livepilot/skills/livepilot-composition-engine/references/transition-archetypes.md +102 -0
- package/livepilot/skills/livepilot-core/SKILL.md +261 -0
- package/livepilot/skills/livepilot-core/references/ableton-workflow-patterns.md +831 -0
- package/livepilot/skills/livepilot-core/references/affordances/_schema.md +160 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/auto-filter.yaml +133 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/chorus-ensemble.yaml +91 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/compressor.yaml +98 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/convolution-reverb.yaml +113 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/corpus.yaml +84 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/drift.yaml +105 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/echo.yaml +108 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/eq-eight.yaml +95 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/glue-compressor.yaml +88 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/granulator-iii.yaml +104 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/hybrid-reverb.yaml +83 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/operator.yaml +98 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/ping-pong-delay.yaml +104 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/poli.yaml +98 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/saturator.yaml +98 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/shifter.yaml +77 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/simpler.yaml +113 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/utility.yaml +95 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/vinyl-distortion.yaml +92 -0
- package/livepilot/skills/livepilot-core/references/affordances/devices/wavetable.yaml +98 -0
- package/livepilot/skills/livepilot-core/references/artist-vocabularies.md +389 -0
- package/livepilot/skills/livepilot-core/references/automation-atlas.md +272 -0
- package/livepilot/skills/livepilot-core/references/concepts/_schema.md +158 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/akufen.yaml +116 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/aphex-twin.yaml +133 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/arca-sophie.yaml +131 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/autechre.yaml +130 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/basic-channel.yaml +140 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/basinski.yaml +126 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/boards-of-canada.yaml +124 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/burial.yaml +127 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/com-truise-tycho.yaml +121 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/daft-punk.yaml +117 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/dj-premier-rza.yaml +119 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/gas.yaml +134 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/hawtin.yaml +127 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/isolee-luomo.yaml +130 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/j-dilla.yaml +133 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/jeff-mills.yaml +120 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/johannsson-richter.yaml +132 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/madlib.yaml +124 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/moodymann-theo-parrish.yaml +121 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/oneohtrix-point-never.yaml +126 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/photek-source-direct.yaml +120 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/rashad-spinn-traxman.yaml +122 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/robert-henke.yaml +113 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/shackleton.yaml +124 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/skream-mala.yaml +119 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/stars-of-the-lid.yaml +119 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/tim-hecker.yaml +122 -0
- package/livepilot/skills/livepilot-core/references/concepts/artists/villalobos.yaml +135 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/ambient.yaml +137 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/boom_bap.yaml +124 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/deep-minimal.yaml +130 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/deep_house.yaml +130 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/detroit_techno.yaml +116 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/disco.yaml +123 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/downtempo.yaml +129 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/drone.yaml +133 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/drum-and-bass.yaml +119 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/dub-techno.yaml +132 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/dub.yaml +129 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/dubstep.yaml +120 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/experimental.yaml +136 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/footwork.yaml +119 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/hip-hop.yaml +132 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/house.yaml +126 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/hyperpop.yaml +128 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/idm.yaml +134 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/lo_fi.yaml +129 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/microhouse.yaml +138 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/minimal-techno.yaml +116 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/modern-classical.yaml +123 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/soul.yaml +125 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/synthwave.yaml +123 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/techno.yaml +123 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/trap.yaml +120 -0
- package/livepilot/skills/livepilot-core/references/concepts/genres/uk-garage.yaml +121 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/00-index.md +110 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/distortion-and-character.md +687 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/drums-and-percussion.md +753 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/dynamics-and-punch.md +525 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/eq-and-filtering.md +402 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/midi-tools.md +963 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/movement-and-modulation.md +874 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/space-and-depth.md +571 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/spectral-and-weird.md +714 -0
- package/livepilot/skills/livepilot-core/references/device-atlas/synths-native.md +953 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +34 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +204 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +173 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +211 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +188 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +162 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +229 -0
- package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +243 -0
- package/livepilot/skills/livepilot-core/references/genre-vocabularies.md +382 -0
- package/livepilot/skills/livepilot-core/references/m4l-devices.md +352 -0
- package/livepilot/skills/livepilot-core/references/memory-guide.md +178 -0
- package/livepilot/skills/livepilot-core/references/midi-recipes.md +402 -0
- package/livepilot/skills/livepilot-core/references/mixing-patterns.md +578 -0
- package/livepilot/skills/livepilot-core/references/overview.md +300 -0
- package/livepilot/skills/livepilot-core/references/pack-knowledge.md +319 -0
- package/livepilot/skills/livepilot-core/references/sample-manipulation.md +724 -0
- package/livepilot/skills/livepilot-core/references/sound-design-deep.md +140 -0
- package/livepilot/skills/livepilot-core/references/sound-design.md +393 -0
- package/livepilot/skills/livepilot-corpus-builder/SKILL.md +379 -0
- package/livepilot/skills/livepilot-creative-director/SKILL.md +455 -0
- package/livepilot/skills/livepilot-creative-director/references/anti-repetition-rules.md +214 -0
- package/livepilot/skills/livepilot-creative-director/references/creative-brief-template.md +222 -0
- package/livepilot/skills/livepilot-creative-director/references/hybrid-compilation.md +185 -0
- package/livepilot/skills/livepilot-creative-director/references/move-family-diversity-rule.md +258 -0
- package/livepilot/skills/livepilot-creative-director/references/phase-6-execution.md +409 -0
- package/livepilot/skills/livepilot-creative-director/references/the-four-move-rule.md +192 -0
- package/livepilot/skills/livepilot-devices/SKILL.md +213 -0
- package/livepilot/skills/livepilot-devices/references/load_browser_item-uri-grammar.md +82 -0
- package/livepilot/skills/livepilot-evaluation/SKILL.md +195 -0
- package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +176 -0
- package/livepilot/skills/livepilot-evaluation/references/evaluation-contracts.md +121 -0
- package/livepilot/skills/livepilot-evaluation/references/memory-promotion.md +110 -0
- package/livepilot/skills/livepilot-mix-engine/SKILL.md +136 -0
- package/livepilot/skills/livepilot-mix-engine/references/mix-critics.md +143 -0
- package/livepilot/skills/livepilot-mix-engine/references/mix-moves.md +105 -0
- package/livepilot/skills/livepilot-mixing/SKILL.md +157 -0
- package/livepilot/skills/livepilot-notes/SKILL.md +130 -0
- package/livepilot/skills/livepilot-performance-engine/SKILL.md +122 -0
- package/livepilot/skills/livepilot-performance-engine/references/performance-safety.md +98 -0
- package/livepilot/skills/livepilot-release/SKILL.md +151 -0
- package/livepilot/skills/livepilot-sample-engine/SKILL.md +117 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +87 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +51 -0
- package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +131 -0
- package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +225 -0
- package/livepilot/skills/livepilot-sound-design-engine/references/patch-model.md +119 -0
- package/livepilot/skills/livepilot-sound-design-engine/references/sound-design-critics.md +118 -0
- package/livepilot/skills/livepilot-wonder/SKILL.md +143 -0
- package/m4l_device/LivePilot_Analyzer.amxd +0 -0
- package/m4l_device/LivePilot_Elektron.amxd +0 -0
- package/m4l_device/LivePilot_Elektron.maxpat +758 -0
- package/m4l_device/livepilot_bridge.js +1 -1
- package/m4l_device/livepilot_elektron_bridge.js +82 -0
- package/mcp_server/__init__.py +1 -1
- package/mcp_server/composer/develop/apply.py +1 -1
- package/mcp_server/composer/full/apply.py +32 -6
- package/mcp_server/m4l_bridge.py +5 -0
- package/mcp_server/runtime/execution_router.py +6 -0
- package/mcp_server/runtime/mcp_dispatch.py +18 -0
- package/mcp_server/runtime/remote_commands.py +2 -0
- package/mcp_server/server.py +11 -7
- package/package.json +20 -5
- package/remote_script/LivePilot/__init__.py +1 -1
- package/remote_script/LivePilot/server.py +63 -2
- package/requirements.txt +3 -3
- 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.
|