Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
Tidal
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PLN
Tidal
Commits
954b5d65
Commit
954b5d65
authored
Nov 01, 2026
by
PLN (Algolia)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
todo: voice cards for kick, clap, hat sound design
parent
9de5a606
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
0 deletions
+43
-0
2026-11-01-voice-cards.md
TODO.d/2026-11-01-voice-cards.md
+43
-0
No files found.
TODO.d/2026-11-01-voice-cards.md
0 → 100644
View file @
954b5d65
# 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.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment