# Data kit — Half an Hour with Dead Composers

Everything the article claims, with the artifact behind it. Published 2026-09-02 (UTC)
under CC BY 4.0 by strata→signal research.

The article's own promise is the contents list: "the full fingerprints of every clip and
the map from each player to its file, the render requests behind every clip verbatim, the
training logs' pass lines for all three runs, the merge error tables, the distance tables
behind the geometry claims — including the one that killed the retracted sentence — the
corpus manifests with their checksums, and the rights-chain receipts."

**Two of those could not be shipped and are named below rather than approximated.** The
corpus manifests are not here, and the Sousa and Bach training logs are here as quoted
pass lines rather than as the log files themselves. Read "What is NOT here, and why"
before you read anything else.

## The files

| file | what it is |
|---|---|
| `clips.json` | The eleven audio files the page plays: full sha256, byte count, the caption each plays under, and — for each one — the request file it was rendered from, the seed that request pinned, which adapter was attached and at what strength. |
| `render-request-sousa-probe.json` | Listen 1's request, **verbatim**. Its own payload: plain words, no trigger tag, no adapter. A probe, not a control. |
| `render-request-sousa-march.json` | The march request, **verbatim** — Listens 2, 3 and 4, and the four-seed noise-floor measurement. |
| `render-request-bach.json` | The Bach request, **verbatim** — Listens 5 and 6. |
| `render-request-duet.json` | The duet request, **verbatim** — Listens 7, 8 and 9, all three on one pinned seed. |
| `render-request-trio.json` | The trio request, **verbatim** — Listens 10 and 11. |
| `train-chopin.log` | Part one's training run, its own log start to finish, **byte-for-byte the file part one's kit published**: the config it printed for itself, ten per-pass lines, the summary carrying 4m 49s. |
| `train-sousa-passlines.md` | The Sousa log's pass lines, step lines and summary block, **quoted verbatim** — the log file itself is not in this kit, and the file says why on its first line. |
| `train-bach-passlines.md` | The same for Bach, with the same disclosure. |
| `adapter-config-sousa.json` | The Sousa adapter's PEFT configuration as saved beside the weights — the pass-ten file, which is the one that shipped. |
| `adapter-config-sousa-epoch5.json` | The pass-five checkpoint's configuration — the better-loss adapter that did **not** ship, and that rendered Listen 4. |
| `adapter-config-bach.json` | The Bach adapter's PEFT configuration as saved. |
| `adapter-config-duet-chopin-sousa.json` | The Chopin+Sousa merged adapter's own configuration — same rank, same alpha, same shape as its parents, which is the article's "comes out as an ordinary adapter file". |
| `adapter-config-duet-bach-chopin.json` | The Bach+Chopin merge's configuration. |
| `adapter-config-trio.json` | The trio merge's configuration. |
| `merge_adapters.py` | The merge tool itself, verbatim: the docstring the article's algebra comes from, the `CUDA_VISIBLE_DEVICES=""` line that makes the merge a CPU operation, and the two lines that define the reported error as a relative Frobenius norm. |
| `merge-finale.log` | The build log for two of the three merges — Bach+Chopin and the trio — with their running-mean convergence and their final error rows, as the tool printed them. |
| `merge-record-duet-chopin-sousa.md` | **The merged adapter's own record for the merge with no surviving build log.** The article's 1.2 % / 3.4 % / layer 7 row comes from this file, and from nothing else. |
| `merge-record-duet-bach-chopin.md` | The Bach+Chopin merged adapter's own record — the same numbers `merge-finale.log` prints, written by the tool into the output directory. |
| `merge-record-trio.md` | The trio merged adapter's own record. |
| `distances-trio.json` | The instrument's output behind the trio geometry: every clip's RMS and spectral centroid, and the ten pairwise distances — **including `trio vs chopin` 0.11358 and `bach vs sousa` 0.11120, the two numbers that killed the retracted sentence.** |
| `distances-duet.json` | The duet's numbers: the three clips' RMS, centroid and band split, and the six pairwise distances behind "closer to each parent than the parents are to each other". |
| `distances-sousa-adapter.json` | The Sousa adapter's pull from its own baseline (0.19274) — the number the noise floor is measured against. |
| `distances-crossover.json` | Part one's dial sweep and the crossover pair, including the two files that carry **one** sha256 between them: the article's "blend that wasn't". |
| `distances-seed-floor.md` | The four-seed noise-floor table, quoted from the listening session's notes, with the second and larger reading disclosed and the three per-adapter pulls beside it. |
| `rights-chain.md` | Both rights chains — Sousa via 17 U.S.C. § 105 and the archive mirror, Bach via Kimiko Ishizaka's own dedications — with the licence fields quoted verbatim, the 403 that redirected the Sousa fetch, the 31-for-32 defect, and the CC BY copy that was declined on purpose. |
| `provenance.json` | The machine-readable summary: what was projected out of each file and why, what was deliberately left unaltered, what is missing, and every file's sha256 and byte count. |
| `index.json` · `index.html` | The kit's own manifest and its browsable listing, both generated from this directory. |

## How to check the clips yourself

The eleven clips are served beside the article, one directory up, at `audio/`. From that
directory:

    sha256sum -c MANIFEST.sha256

Every line should print `OK`, and the first sixteen characters of each digest are the
codes printed beside the players on the page.

## What is NOT here, and why

**The Chopin+Sousa merge has no build log — and that is the disclosure, not the gap.**
The article says so in its own fine print. The tool writes its error table into two
places: the log it prints, and a `README.md` it drops into the output directory. For
`duet-chopin-sousa-r64` the log did not survive on any box; the merged adapter's own
record did, and it is in this kit as `merge-record-duet-chopin-sousa.md`. Its numbers
(mean 0.0120, max 0.0339 at layer 7's key projection) are the ones the article prints.
**The article may cite those numbers; it must not cite a log for them, and neither may
you.**

**The Sousa and Bach training logs are quoted, not copied.** Both runs happened on the
training box, and their `train.log` files live there —
`music/out/sousa-shakedown/20260830T004943Z-sousa0/train.log` and
`music/out/bach-shakedown/20260830T104030Z-bach0/train.log`. The lane that assembled this
kit could not reach that box, so what is published here is those logs' own text, quoted
verbatim from the arc's receipts pack, with the pack's sha256 printed in each file and
the log's own line numbers cited. **The article's Sousa and Bach numbers were read from
exactly that text.** Part one's Chopin log is the real file, byte-for-byte. Two of the
three runs' logs are therefore one remove further from you than the third, and it would
have been easy not to say so.

**The corpus manifests are not in this kit.** The article promises "the corpus manifests
with their checksums", and for Chopin part one's kit delivers exactly that. Sousa's
`manifest.sha256` / `manifest.json` and Bach's `manifest.sha256` live with their corpora
on the training box and were not reachable from this lane. What is published instead, in
`rights-chain.md`, is each manifest's **own sha256** as its corpus receipt records it —
`9b60f301…` and `9aa11cb9…` for Sousa, `d86db1ab…` for Bach — plus the integrity result
each intake recorded (Sousa 106/106 matched against archive.org's published MD5s and byte
lengths, zero mismatches; Bach 79/79, zero failures). A per-recording table is what is
missing, and inventing one from the corpus receipts' prose would have been a
reconstruction wearing a manifest's clothes. **This is named as absent because the count
in front of you should never be one you cannot check.**

Also not here, for ordinary reasons:

- **The adapter weights.** Six 88 MB files (three trained, three merged) are not
  published.
- **The trainer, the merge harness's environment, and the render service.** This kit
  ships receipts; the trainer is named and linked in the article's colophon.
- **The held-back pieces of all three corpora** — 5, 22 and 16 recordings. The lists live
  in each training dataset's own record. Their listening test has not been run.
- **Any blinded listening result**, because none exists. The article says so twice. The
  one listening event on the page is a single person's off-gate, unblinded preference,
  labelled as exactly that.
- **A fourth adapter, and three further merges**, which exist in the arc's records and
  have a private parent. They are excluded entirely, and no number from them appears
  anywhere on the page or in this kit.

## What was projected out, and why

Every file here is published as recorded, with ONE class of change: **absolute filesystem
paths were replaced by role-relative ones**, because this house does not publish the shape
of its own machines. Nothing measured was touched — every loss, duration, byte count,
parameter count and checksum is as the instrument wrote it.

- `adapter-config-*.json` — one path each (the base checkpoint, `music/checkpoints/…`),
  six files, six substitutions.
- `merge-finale.log`, `merge-record-*.md`, `merge_adapters.py` — parent-adapter and
  output paths projected to `adapters/…` and `music/…`.
- `train-chopin.log` — carried over byte-for-byte from part one's kit, where 17 paths were
  projected the same way.
- `rights-chain.md` is written for this kit rather than copied from the corpus receipts it
  summarises; every quotation inside it is verbatim, and the **honest user-agent strings
  are withheld** — both corpus receipts record them, and both carry a personal name and
  address. The fact travels; the identity does not.

One note so nothing reads as sleight of hand: **the bare timestamps in `train-chopin.log`
are UTC.** The training box runs `Etc/UTC` and the trainer writes local stamps with no
zone marker. They are left exactly as written, because editing a timestamp inside a
verbatim log is worse than explaining it.

## One thing in this kit contradicts a tidy directory, on purpose

`distances-crossover.json` lists `11-crossover-nocturne-brass.wav` and
`ctrl-sousa-only-0.6.wav` with **the same sha256** —
`206f174346f91448e27ae2b826eef18a04bbbce6adc5f4a36f2679e274022cfc`. That is not a
copy-paste error in the kit. Two renders requested as different things came back as the
same bytes, which is how the serving engine's silent single-adapter behaviour was caught,
and it is why the merges exist at all. Both files stay on the review shelf under both
names, because a duplicate that proves something is worth more than a tidy directory.
