Commit 96bc7bcd by PLN (Algolia)

feat(tide-table): pack-level sample grouping above the folder (#85)

PLN's insight: the FOLDER is a loose convention, not the true grouping. rample*
is ONE bank sliced A0..S57; 808* is one drum machine split per voice; *_commodore
is one chip sliced by role. So adds the PACK granularity above the folder —
per-pack / per-folder / per-sample, weakest-to-strongest binding (per-sample stays
the only ground truth).

sample_packs.py: a curated REGISTRY (drum_machine / bank / chip / source / genre)
+ an auto-grouper (prefix-before-digit & underscore head/tail tokens, ≥2 folders)
that PROPOSES packs the registry missed — it caught trance_* and voices_*, now
folded in. A pack needs ≥2 grounded folders (a 1-folder pack is just a folder; it
may gain siblings when #84 grounds all 718 — provenance notes this).

Rolls the per-SAMPLE family counts up to the pack and asks the real question:
does a pack live in one audio family, or span the wheel? 22 packs over 83/150
folders; 15 of them deliberately span multiple families:

  rample  → 8 families (snare/kick/hat/fx/break/pad…) — a bank IS a grab-bag
  jungle  → 11 families — a whole genre's kit
  808     → kick/hat/perc — one machine, three voices
  commodore → bass/fx/pad/lead/synth — the chip, every role

That origin-vs-sound mismatch is the point, not noise: a pack defined by ORIGIN
(a song, a machine, a console) is EXPECTED to scatter across the audio clusters.
Feeds the Unwrapped viz (group-by-pack vs audio-cluster as a story lens) and
vibe-search scoping. Never lets a pack boundary bias the audio analysis — it's a
hint to compare against, never a law.
parent 4e5d6a23
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