Commit 954b5d65 by PLN (Algolia)

todo: voice cards for kick, clap, hat sound design

parent 9de5a606
# Voice cards: craft kicks, claps, hats from measurements, not from copied recipes (2026-11-01)
PLN: sound design is a mess, "often I just copy prior recipes". Take110 showed the cost: d1
(`jazz`, `000_BD.wav`) has no attack transient (1-2 kHz at -62 dB re peak) and no energy under
35 Hz, and nothing in the workflow said so until stems were analysed after the fact
(`mix/analysis/Take110.md`).
## What exists
- `tools/analyze_samples.py`: whole-sample band shares (sub <80, low 80-250, mid 250-2k, hi >2k),
dominant bin, duration; searchable by bank and thresholds. Finds layer candidates, e.g.
`--search kick --min-sub 30 --min-hi 1` returned `kick` (65 Hz, sub 78%), `popkick:5`, `hardkick_rha`.
- `blocks/*.tidal` (kicks, snares, drums, noise ...): the recipes, unmeasured.
- Stem EDA on a take (Take110 scripts): what the voice does *among the others* (masking, band ownership).
## What is missing
- Time-domain descriptors that make a kick a kick: click-to-body ratio in the first ~5-10 ms, decay
T20/T40, pitch glide, hit-to-hit level spread. Band shares of a whole file hide them.
- Class awareness (kick, snare/clap, hat, break) and targets per class.
- Targets that come from sounds PLN already loves (d3 hats on Take110 are "a banger whenever
present"), not from textbook numbers.
- A loop from "this voice lacks X" to "these samples add X" to a Tidal snippet and a level-matched A/B.
## Shape
1. Descriptors per class, added to the analyser (`--class kick`).
2. `voice-card <bank:n>`: one screen + PNG: descriptors, class targets, what is missing.
3. Complement search from a card: candidates that add the missing bands, a layered Tidal snippet
(`superimpose`/`stack`, gain, `nudge`), a dry A/B render, summed-spectrum check.
4. In-context check with the take EDA after a run (does it get masked, does it own a band).
5. Recipes in `blocks/` get cards; a recipe without one is flagged as unmeasured.
## Order and acceptance
0. Measure first (no tool yet): descriptors on ~20 kicks PLN likes and ~20 he calls tame; do they
separate the two groups? If not, the descriptors are wrong, not the sounds. Write the result down.
1. Kicks only. `voice-card jazz` flags no click and no sub; the search proposes at least 3 layers; the
layered A/B measurably adds the missing bands; PLN prefers it by ear to `jazz` alone.
2. Then claps/snares (d2), hats (d3), breaks (d8: bright 3 kHz hump, see the Take110 file).
## Open questions
- Synths (`superkick`, `superhat`) have no file: render offline in SC (NRT) or capture through the rig.
- Samples live on a spinning LGD disk for part of the library: copy the few files locally first
(CLAUDE.md audio-on-LGD rule), never sweep the mount.
- Effects chain (`gF`, `gM`, `room`, `crush`) changes the voice: measure post-chain from stems, and
say which chain a card was measured through.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment