{
  "schema": "s2s-bench-v1",
  "exhibit": "half-an-hour-with-dead-composers",
  "exhibit_title": "Half an Hour with Dead Composers",
  "exhibit_url": "https://research.strata2signal.com/half-an-hour-with-dead-composers/index.html",
  "licence": "CC BY 4.0",
  "attribution": "strata→signal research, research.strata2signal.com",
  "contact": "hello@strata2signal.com",
  "kind": "data-kit-provenance",
  "dataset": "ace-composers-2026-08 / article-dead-composers",
  "generated_utc": "2026-09-02T00:00:00Z",
  "what_this_is": "Two more adapters trained the same week as part one's, three merges built from them, the eleven clips the page plays, and exactly what happened to each file on the way here. Artifact names and role names only — never a path, never a host, never a person.",
  "run_window_utc": {
    "trained_sousa_utc": "2026-08-30T01:14:18Z - 2026-08-30T01:28:57Z",
    "trained_bach_utc": "2026-08-30 (run id 20260830T104030Z-bach0)",
    "merged_utc": "2026-08-30, offline on CPU — a weight merge touches no graphics card",
    "rendered_utc": "2026-08-30",
    "sousa_corpus_downloaded_utc": "2026-08-30T00:43Z - 00:49Z",
    "bach_corpus_downloaded_utc": "2026-08-30"
  },
  "hosts_described_by_role": "Training and rendering ran on ONE five-year-old consumer graphics card, the same card and the same recipe for all three composers, which is what makes the runs comparable. The merges ran offline on that machine's CPU with every card hidden from the process. No machine, address or person is named anywhere in this kit; the corpus receipts that name them are quoted with those strings removed.",
  "sanitisation_rules": {
    "path-to-role": "an absolute filesystem path becomes the role-relative path it names (music/checkpoints/..., adapters/...). Fired in the six adapter configs, the merge log, the three merge records and the merge tool.",
    "identity-withheld": "the honest user-agent string both corpus receipts record carries a personal name and email address. Its EXISTENCE and its effect (a 403 from one host, a clean fetch from the other) are published; the string is not.",
    "quoted-not-copied": "the Sousa and Bach training logs live on the training box and were not reachable from the lane that assembled this kit. Their text is published as a verbatim quotation from the arc's receipts pack, with that pack's own sha256 and the log's line numbers printed inside each file, and the substitution disclosed in the first sentence of both files and in the README."
  },
  "deliberately_unaltered": {
    "every measured value": "every loss, duration, distance, byte count, parameter count and checksum is as the instrument wrote it. No pass was dropped, smoothed or reordered — including Sousa's pass 7 and pass 10, whose losses go UP against the pass before them, and including pass five's better loss than pass ten's, which the article's confession turns on.",
    "the duplicate sha256": "distances-crossover.json lists two differently-named files carrying one sha256 (206f174346f91448...). That is the finding, not a defect in the kit: the serving engine accepted two adapters, reported both, and played one. It is left exactly as measured.",
    "the trainer's broken epoch counter": "the Sousa summary block prints 'Epochs 0 / 10' after ten completed passes. The counter never populates, in all four runs of the arc. Left as written and explained rather than corrected."
  },
  "omitted": {
    "the corpus manifests": "the article promises them and this kit does not have them. Sousa's and Bach's per-recording manifests live with their corpora on the training box, unreachable from this lane. Each manifest's OWN sha256 and its intake integrity result are published in rights-chain.md instead. Named as absent rather than reconstructed from prose — see the README.",
    "the sousa and bach train.log files": "present as quoted pass lines, not as the log files. See sanitisation_rules.quoted-not-copied.",
    "the adapter weights": "six 88,130,280-byte files — three trained, three merged — are not published here.",
    "the harness": "the trainer, the merge environment and the render service are not published; this kit ships receipts. The trainer is named and linked in the article's colophon.",
    "the held-back pieces": "5, 22 and 16 recordings held out of the three corpora. The lists live in each training dataset's own record. Their listening test has not been run.",
    "a fourth adapter and three further merges": "they exist in the arc's records and have a private parent trained under a consent that withholds publication. No number, name or derived work from them appears on the page or in this kit."
  },
  "open_caveats": {
    "the ruler has a noise floor": "four renders differing only in the random seed sit 0.18225 apart, against a largest measured adapter effect of 0.19274. No distance in this kit is an amount of style. The orderings the article keeps were all measured with the seed pinned.",
    "no listening gate": "no blinded listening test has been run on any clip in this series. The one listening event on the page is a single person's off-gate, unblinded preference, labelled as exactly that. Every merge record is stamped INFORMAL / NON-GATE by the tool that wrote it.",
    "which checkpoint is the better adapter": "pass five's Sousa checkpoint carries the better training loss and pass ten's is what shipped. Both renders are in this kit. No ear has ruled between them and nothing downstream was rebuilt.",
    "the pinned key": "the key estimator reads F major against a pinned D-flat on every solo-piano clip. Whether the pin carries little weight or the estimator is the wrong instrument for sixty seconds of one texture is not established by anything in this kit, and the flattering reading was not picked.",
    "the merges were rendered on a different checkpoint variant than they were trained on": "the adapters were trained against the fast variant and some renders in the wider arc used the base variant at a different shift setting. Nothing in this kit evaluates whether that is sound, and no render here is claimed to be the canonical use of these adapters."
  },
  "what_was_not_touched": "Every number published here is as recorded. The eleven served clips are the exact rendered bytes — no transcode, no normalisation, no re-cut — which is why the fingerprints printed on the page are checkable against the files the page serves.",
  "self_reference": "index.json, provenance.json and index.html are not listed among the files they describe: a file cannot carry its own sha256. index.json carries provenance.json's.",
  "file_count": 30,
  "files": [
    {
      "file": "README.md",
      "role": "What is in the kit, what could not be shipped and why, what was projected out of every file, and how to check the eleven fingerprints yourself.",
      "media_type": "text/markdown",
      "bytes": 11087,
      "sha256": "26470b7c8a94cf421ab0fcc0a3cebfd71209392943a471c9a81d8b6ee57c25f3",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "adapter-config-bach.json",
      "role": "The Bach adapter's PEFT configuration as saved beside the weights — rank 64, alpha 128, dropout 0.1 on q/k/v/o projections. One filesystem path projected.",
      "media_type": "application/json",
      "bytes": 1026,
      "sha256": "ee277affd305f97010c232997fe90347c791b1c35d3e9134c9d131ac2b677bad",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 1
      },
      "identical_to_original": false
    },
    {
      "file": "adapter-config-duet-bach-chopin.json",
      "role": "The Bach+Chopin merged adapter's own configuration — same rank, alpha and shape as its parents, which is the article's 'comes out as an ordinary adapter file'. One path projected.",
      "media_type": "application/json",
      "bytes": 1026,
      "sha256": "ee277affd305f97010c232997fe90347c791b1c35d3e9134c9d131ac2b677bad",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 1
      },
      "identical_to_original": false
    },
    {
      "file": "adapter-config-duet-chopin-sousa.json",
      "role": "The Chopin+Sousa merged adapter's own configuration. One path projected.",
      "media_type": "application/json",
      "bytes": 1026,
      "sha256": "13a4928ba30ef3031f65fd9a2534e3820f751b160bcb0a811c6ece94400900e0",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 1
      },
      "identical_to_original": false
    },
    {
      "file": "adapter-config-sousa-epoch5.json",
      "role": "The pass-five Sousa checkpoint's configuration — the better-loss adapter that did NOT ship, and that rendered Listen 4. One path projected.",
      "media_type": "application/json",
      "bytes": 1026,
      "sha256": "a471f52dacf8236ab11c20e73e4c0079c7dcf028d3bb19763dbaf37136899244",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 1
      },
      "identical_to_original": false
    },
    {
      "file": "adapter-config-sousa.json",
      "role": "The Sousa adapter's PEFT configuration as saved — the pass-ten file, which is the one that shipped and the one every downstream artefact used. One path projected.",
      "media_type": "application/json",
      "bytes": 1026,
      "sha256": "a471f52dacf8236ab11c20e73e4c0079c7dcf028d3bb19763dbaf37136899244",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 1
      },
      "identical_to_original": false
    },
    {
      "file": "adapter-config-trio.json",
      "role": "The trio merged adapter's own configuration. One path projected.",
      "media_type": "application/json",
      "bytes": 1026,
      "sha256": "ee277affd305f97010c232997fe90347c791b1c35d3e9134c9d131ac2b677bad",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 1
      },
      "identical_to_original": false
    },
    {
      "file": "clips.json",
      "role": "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, the adapter attached and its strength. Every digest was re-read off the served bytes when this file was written.",
      "media_type": "application/json",
      "bytes": 11493,
      "sha256": "133160dcbb75e30a8051017fa3c8b6cb9fb8105fabbeb985ae5e26b9866415de",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "distances-crossover.json",
      "role": "The instrument's output for part one's dial sweep and the crossover pair — including the two files that carry ONE sha256 between them, which is the article's 'blend that wasn't'.",
      "media_type": "application/json",
      "bytes": 1950,
      "sha256": "937abc20100611e5e843e077bc9711043ffb87a89bf56253b8d0922cdef0eb37",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "distances-duet.json",
      "role": "The duet's numbers: RMS, spectral centroid and band split for the three clips, and the six pairwise distances behind 'closer to each parent than the parents are to each other' (0.11245 and 0.12746, against 0.15214).",
      "media_type": "application/json",
      "bytes": 1410,
      "sha256": "89713d48b5f2bd8779d7eeda7ee2cd706fd98f32e673b816d9d5e48da7d12804",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "distances-seed-floor.md",
      "role": "The four-seed noise-floor table quoted from the listening session's own notes, the larger second reading disclosed, and the three per-adapter pulls beside it. Two of the three sit below the floor.",
      "media_type": "text/markdown",
      "bytes": 2451,
      "sha256": "f033692df5343074c3170729e01a0bae944223b98b3ffc746313a772354a5027",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "distances-sousa-adapter.json",
      "role": "The Sousa adapter's pull from its own switched-off baseline (0.19274) — the number the 0.18225 noise floor is measured against.",
      "media_type": "application/json",
      "bytes": 898,
      "sha256": "29b377747b6611808f8d1203a45ccb1f827abb9ed945235544254e8356760c51",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "distances-trio.json",
      "role": "The instrument's output behind the trio geometry: every clip's RMS and centroid and all ten pairwise distances — including trio-vs-chopin 0.11358 and bach-vs-sousa 0.11120, the two numbers that killed the retracted sentence.",
      "media_type": "application/json",
      "bytes": 1837,
      "sha256": "072bfe7cb92b7dd6c9e64c2a66ad35f4b87a07c5f88363901c70abc70b14cccb",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "merge-finale.log",
      "role": "The merge tool's own build log for two of the three merges — Bach+Chopin and the trio — with running-mean convergence every 64 modules and the final error rows. Parent and output paths projected to role names.",
      "media_type": "text/plain",
      "bytes": 1034,
      "sha256": "0ed6058b3fa792df825dc2e964869182bb956261de88241c2eb99322f680f145",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 8
      },
      "identical_to_original": false
    },
    {
      "file": "merge-record-duet-bach-chopin.md",
      "role": "The Bach+Chopin merged adapter's own record, written by the tool into its output directory: mean 0.0114, min 0.0016, max 0.0358 at layer 17's key projection. Paths projected.",
      "media_type": "text/markdown",
      "bytes": 690,
      "sha256": "bd0a1353a6862d8450e13956b30927f14e91f2bdcf2e3b12d28e8b0966a20433",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 2
      },
      "identical_to_original": false
    },
    {
      "file": "merge-record-duet-chopin-sousa.md",
      "role": "THE 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. Mean 0.0120, min 0.0017, max 0.0339. Paths projected.",
      "media_type": "text/markdown",
      "bytes": 787,
      "sha256": "fe217eed4caed7c6dadc6eedc90145efb27b3104b7c510d2d5c9e80aaf2dcf5e",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 2
      },
      "identical_to_original": false
    },
    {
      "file": "merge-record-trio.md",
      "role": "The trio merged adapter's own record: three parents at equal thirds, mean 0.0150, min 0.0020, max 0.0430 at layer 17's key projection. Paths projected.",
      "media_type": "text/markdown",
      "bytes": 780,
      "sha256": "2e4c3f80d417644621922ce0ca5f5b230460bf60302ca4757c71d258fa68cf7c",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 3
      },
      "identical_to_original": false
    },
    {
      "file": "merge_adapters.py",
      "role": "The merge tool itself: the docstring the article's algebra is quoted from, the line that hides every graphics card so the merge is a CPU operation, and the two lines defining the reported error as a relative Frobenius norm against the exact untruncated sum. Paths projected.",
      "media_type": "text/x-python",
      "bytes": 5733,
      "sha256": "7be907659fd1313e8d8bd7357a2d1afa765f278fcf769d5519df6e472d9c2c25",
      "stripped": [
        "absolute filesystem paths -> role names"
      ],
      "strip_counts": {
        "path-to-role": 1
      },
      "identical_to_original": false
    },
    {
      "file": "render-request-bach.json",
      "role": "The Bach request VERBATIM — the exact JSON body behind Listens 5 and 6. Seed 20260901, 72 BPM, D minor, 60 s, 8 steps.",
      "media_type": "application/json",
      "bytes": 500,
      "sha256": "c5d4aa5427b3a93685434aa5fc41d5a627794ccb8ed975235467bd1bd06171d0",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "render-request-duet.json",
      "role": "The duet request VERBATIM — the exact JSON body behind Listens 7, 8 and 9, all three on seed 20260831, 90 BPM, C minor. The request and the seed are held fixed; only the adapter moves.",
      "media_type": "application/json",
      "bytes": 482,
      "sha256": "d1694ac6b3cabf7cbf137a84d4d92615b0dcf9eca5694300cafe846f70bc8a99",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "render-request-sousa-march.json",
      "role": "The march request VERBATIM — Listens 2, 3 and 4, and the four-seed noise-floor measurement. Seed 20260830, 120 BPM, E-flat major, 2/4.",
      "media_type": "application/json",
      "bytes": 522,
      "sha256": "9b94691b01b5774fa59930053a6f31447f00df4bc5d0ff38bda9186c3b341781",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "render-request-sousa-probe.json",
      "role": "Listen 1's request VERBATIM. Its own payload: plain words naming the composer, no trigger tag, no adapter. A probe of what the stock model already knows, not a control for anything.",
      "media_type": "application/json",
      "bytes": 494,
      "sha256": "01b1d5c5a560a04b9f6708a9c47ab4cfa0afbe9f41c42ec1e59cd2e1922d92d7",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "render-request-trio.json",
      "role": "The trio request VERBATIM — Listens 10 and 11. Seed 20260901, 96 BPM, C minor, 60 s.",
      "media_type": "application/json",
      "bytes": 505,
      "sha256": "8f4676f69676983d29c56a6871f88cccdc21e7ca54d055370c98f3a7f5be3cff",
      "stripped": [],
      "strip_counts": {},
      "identical_to_original": true
    },
    {
      "file": "rights-chain.md",
      "role": "Both rights chains read at the source: Sousa under 17 U.S.C. § 105 with the archive mirror's per-item public-domain mark and the HTTP 403 that redirected the fetch; Bach under Kimiko Ishizaka's own CC0 dedications, with the 31-for-32 defect and the CC BY copy declined on purpose. Written for this kit; every quotation verbatim; the honest user-agent strings withheld because they carry a personal name and address.",
      "media_type": "text/markdown",
      "bytes": 9973,
      "sha256": "bf9e1d952ad3e8f72c41baaa366201045ba849f6bec74414c96de9bb10d538db",
      "stripped": [
        "honest user-agent strings withheld (personal name and address)"
      ],
      "strip_counts": {
        "identity-withheld": 2
      },
      "identical_to_original": false
    },
    {
      "file": "train-bach-passlines.md",
      "role": "The Bach log's pass lines and step lines, QUOTED verbatim from the arc's receipts pack with that pack's sha256 printed inside. The log file itself lives on the training box and is not in this kit; the file says so on its first line.",
      "media_type": "text/markdown",
      "bytes": 2424,
      "sha256": "a697601beb19d024a89ee1e288e95670c1c45c8c98ee4b0fa91f28325d2ee512",
      "stripped": [
        "quoted from the receipts pack rather than copied from the log file"
      ],
      "strip_counts": {
        "quoted-not-copied": 1
      },
      "identical_to_original": false
    },
    {
      "file": "train-chopin.log",
      "role": "Part one's training run, its own log start to finish — byte-for-byte the file part one's kit published: the configuration it printed for itself, the ten per-pass lines, and the summary carrying 4m 49s and a 5.7 GiB peak. 17 filesystem paths were projected when part one published it.",
      "media_type": "text/plain",
      "bytes": 8510,
      "sha256": "dad3839cec953e8c36a199f2a8f9afee7b4d37c36c6968bc887217170d715863",
      "stripped": [
        "absolute filesystem paths -> role names (in part one's kit)"
      ],
      "strip_counts": {
        "path-to-role": 17
      },
      "identical_to_original": false
    },
    {
      "file": "train-sousa-passlines.md",
      "role": "The Sousa log's pass lines, step lines and summary block, QUOTED verbatim from the arc's receipts pack with that pack's sha256 printed inside — including the pass-five/pass-ten checkpoint pair the article's confession turns on. The log file itself is not in this kit; the file says so on its first line.",
      "media_type": "text/markdown",
      "bytes": 3534,
      "sha256": "47e17ad8163ac305cd8ff6db0efff516ff7ac872c64503c988a5b55b122616e6",
      "stripped": [
        "quoted from the receipts pack rather than copied from the log file"
      ],
      "strip_counts": {
        "quoted-not-copied": 1
      },
      "identical_to_original": false
    }
  ]
}
