Skip to main content

max / audiofiles

Record the family.* namespace as ratified Decided 2026-08-07. The prefix is not cosmetic: apply_policy skips a tag the sample already has, so sharing instrument.* with the filename rules would make the layer's value-add over them unmeasurable, and a sample is one family but legitimately several instruments, so exclusivity is expressible under a dedicated prefix and never under instrument.*.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-07 13:16 UTC
Signed with PGP, not checked
Commit: ab5d6c9777c0b73dc562623c171d6b105c600a00
Parent: 0a3a6f9
1 file changed, +13 insertions, -7 deletions
@@ -31,13 +31,19 @@
31 31
32 32 /// The seven families from `af-coarse-families`, in register order.
33 33 ///
34 - /// The `family.` prefix is a **placeholder and is not ratified**. The note names
35 - /// these as bare words (`low`, `drum-bright`, `music`) and the shipped vocabulary
36 - /// is `instrument.*`, which `low` and `music` do not fit under; a separate
37 - /// namespace keeps the k-NN's answers from contending with the tags the filename
38 - /// rules emit, and keeps provenance readable. Nothing here writes a tag into a
39 - /// user's library, so the measurement does not wait on the ruling. Anything that
40 - /// does ship tags must.
34 + /// The `family.` prefix is **ratified** (2026-08-07), not a placeholder. The note
35 + /// writes them as bare words in prose; the tags are namespaced, for three reasons
36 + /// that are mechanical rather than cosmetic:
37 + ///
38 + /// - `exemplar::apply_policy` skips any tag the sample already carries. Sharing
39 + /// `instrument.*` with the filename rules would mean the layer silently no-ops
40 + /// wherever a rule already fired, and the layer's value-add over the rules is
41 + /// the one number the ship decision most needs.
42 + /// - A sample is one family but legitimately several instruments, so exclusivity
43 + /// is expressible under a dedicated prefix (`tags::remove_tags_by_prefix`) and
44 + /// never under `instrument.*`.
45 + /// - Not a novel namespace: `starter_rules::OTHER_CLASSES` already ships
46 + /// `type.loop` and `character.fx` beside `instrument.*`.
41 47 pub(crate) const FAMILIES: &[Family] = &[
42 48 Family {
43 49 label: "low",