Commit 0ca81596 by PLN (Algolia)

docs(tasks): archive #85 (pack-level grouping) to completed-archive

Pre-compact Pass 4: structured long-term-learning entry. The keeper insight —
each grouping grain answers a different question (folder=author's label,
pack=origin, sample=timbre); the origin-vs-sound MISMATCH (15/22 packs span the
family wheel by design) is the story, not an error.
parent c17dd0d5
...@@ -7,6 +7,29 @@ snapshot in `board-archive.md`. Newest first. ...@@ -7,6 +7,29 @@ snapshot in `board-archive.md`. Newest first.
--- ---
## #85 — Pack-level sample grouping (the grouping above the folder)
- **Description:** The Dirt-Samples FOLDER is a loose convention, not the true grouping —
`rample*` is one bank sliced A0..S57, `808bd/cy/hc/mc` is one drum machine per voice,
`*_commodore` is one chip sliced by role. PLN wanted the PACK granularity above the
folder, so we can browse/aggregate at three grains (pack / folder / sample).
- **Done:** `sample_packs.py` + `sample_packs.json` (commit 96bc7bc), captain's log 016.
A curated REGISTRY (types: drum_machine / bank / chip / source / genre) + an auto-grouper
(alpha-prefix-before-digit + underscore head/tail tokens, ≥2 folders) that PROPOSES
packs the registry missed — it caught `trance_*` and `voices_*`, folded in. Reads the
already-grounded `sample_families.json` (no audio → fast, CPU-light). 22 packs over
83/150 grounded folders; rolls per-sample family counts up to each pack.
- **Learnings:** Each grain answers a different question — folder = "what did the pack
author call this slice?", pack = "where did it come from?", sample = "what does it
actually sound like?". The signal isn't agreement, it's the MISMATCH: 15 of 22 packs
span multiple audio families BY DESIGN (rample → 8 families, jungle → 11, one Commodore
chip → bass/lead/pad/fx/synth). A pack defined by ORIGIN is *expected* to scatter across
the timbre wheel; that scatter is a story (for Unwrapped viz / vibe-search scoping), not
an error. A 1-folder "pack" is just a folder within the grounded subset — require ≥2
(may gain siblings when #84 grounds all 718). Same discipline as the folder: a hint to
compare against, never a law.
- **Deps:** Builds on the grounded `sample_families.json` (#69 resolver); feeds the
Unwrapped viz (#64 lineage) and vibe-search. Re-run after #84.
## #65 — Fix serve.py Range broken-pipe crash on audio seek ## #65 — Fix serve.py Range broken-pipe crash on audio seek
- **Description:** `armada/serve.py copyfile()` threw `ConnectionResetError`/`BrokenPipeError` - **Description:** `armada/serve.py copyfile()` threw `ConnectionResetError`/`BrokenPipeError`
(Errno 104) when a browser aborts/seeks a Range request mid-stream (e.g. `proxy_take89.mp3` (Errno 104) when a browser aborts/seeks a Range request mid-stream (e.g. `proxy_take89.mp3`
......
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