{
 "schema": "s2s-bench-v1",
 "exhibit": "ten-minutes-with-living-artists",
 "exhibit_title": "Ten Minutes with Living Artists",
 "exhibit_url": "https://research.strata2signal.com/ten-minutes-with-living-artists/index.html",
 "licence": "CC BY 4.0",
 "licence_note": "CC BY 4.0 covers the RECORDS in this directory. The audio the article plays is share-alike — the corpus behind the adapter is CC0 / CC BY / CC BY-SA — and is filed beside the article at ../audio/ with its own manifest, not in this kit, so the two licences never sit in one directory.",
 "attribution": "strata→signal research, research.strata2signal.com",
 "contact": "hello@strata2signal.com",
 "kind": "data-kit-index",
 "published": "2026-09-03",
 "run_ids": {
  "wide corpus (the adapter the ear rejected)": "mnml-shakedown/20260831T023450Z-mnml0-r64",
  "one-artist control": "fm-control/20260831T193904Z-fmctl0-r64",
  "coherence bench": "ace-mnml-2026-09/coherence (sealed 2026-09-03T03:08:03Z, first embedding 03:19:28Z)"
 },
 "subject": "ACE-Step 1.5 (MIT), turbo variant, plus two LoRA adapters of 44,040,192 trainable parameters each (1.81% of 2.44B): one trained on 159 tracks from 41 Creative-Commons releases by 28 creator strings, one on a single artist under the identical recipe.",
 "what_varies": "within every comparison on the page the request body and the random seed are held fixed and only the adapter moves — absent, attached at 0.5, attached at 1.0, or swapped for the one-artist control.",
 "not_a_standard": "A field guide and a negative result, not a bench. The only listening evidence on the page is one person, labels visible, two requests. The coherence bench is pre-registered and MEASURED NEVER GATING: no number in it can pass, fail, promote or retire an adapter, and a null publishes as a null.",
 "sanitisation": "Absolute filesystem paths projected to role-relative ones; machine names replaced by the role each played; the training card published by class; GPU serials withheld; one local-offset timestamp restated in UTC. provenance.json names every rule and the count of times each fired, per file.",
 "known_absences": "The Round 4 blind KEY is not here and stays sealed until a verdict is recorded. The adapter weights, the corpus audio and the clip audio are not in this kit; the audio is beside the article for licence reasons and every fingerprint is in clips.json. The README names all of it.",
 "self_reference": "index.json, provenance.json and index.html are not listed among the files they describe. index.json carries provenance.json's sha256; MANIFEST.sha256 covers every kit file except itself, index.json and index.html.",
 "provenance": {
  "file": "provenance.json",
  "sha256": "ac3a2bfbff9cf9eacde82f20fdd4139d2e8118bb7644cc809deed3f69d6a4e06",
  "bytes": 25236
 },
 "file_count": 45,
 "files": [
  {
   "file": "PREREG-COHERENCE.md",
   "role": "The coherence bench's pre-registration, sealed before the first embedding, with its five filed amendments — two of which correct the registration itself (A-C3 measures a registered disjointness claim FALSE; A-C4 corrects the seal's own clock).",
   "media_type": "text/markdown",
   "bytes": 56053,
   "sha256": "ae721f1b4b244f9f658ff683b22bed11532a80fc0680e01dbb8592e118b44d59",
   "stripped": [
    "host-to-role",
    "identity-withheld",
    "offset-to-utc",
    "path-to-role",
    "person-to-role"
   ],
   "strip_counts": {
    "host-to-role": 2,
    "identity-withheld": 3,
    "offset-to-utc": 1,
    "path-to-role": 9,
    "person-to-role": 2
   },
   "identical_to_original": false
  },
  {
   "file": "PREREG-ROUND4.md",
   "role": "Round 4's pre-registration, written before the first clip of it existed: the twelve captions, the four arms, one seed per prompt, the settings pinned, and what would count as a result.",
   "media_type": "text/markdown",
   "bytes": 9505,
   "sha256": "983ecb22a857b118b93c3d18c6674aed1c0ccfa6e12f27d57bcc3c6d30cced58",
   "stripped": [
    "card-to-class",
    "host-to-role",
    "path-to-role",
    "person-to-role"
   ],
   "strip_counts": {
    "card-to-class": 1,
    "host-to-role": 1,
    "path-to-role": 5,
    "person-to-role": 3
   },
   "identical_to_original": false
  },
  {
   "file": "README.md",
   "role": "What each file is, the player-to-file map with full fingerprints, what was projected out of every file and why, what is NOT here, and the licence split between the records and the audio.",
   "media_type": "text/markdown",
   "bytes": 17502,
   "sha256": "27c1af96d598100cffc4657217ad04bad4beab5a945c7b85cd8dc08119b8f54a",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "bandwidth-audit.json",
   "role": "The bandwidth instrument's output for all 208 files: measured ceiling, roll-off, cliff and steepness, and the cutoff verdict — including the 20 rows flagged PREMATURE LOSSY CUTOFF.",
   "media_type": "application/json",
   "bytes": 92592,
   "sha256": "05344e0dc507a8a400f10dc2583856c2d8959afc08cecd3f5763cb8d8ee5a31a",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "clip-peaks-raw.tsv",
   "role": "The clipping diagnostic, one row per RAW render across all four rounds (65): sample peak, ffmpeg astats flat factor, peak count, integrated loudness, and the first sixteen characters of each render's sha256. The join key is (round, clip_id), because one clip id was rendered in two rounds.",
   "media_type": "text/tab-separated-values",
   "bytes": 5078,
   "sha256": "a1333852e33cf35b34115311a5ca1b532e004ba5056339baa57ce8989e8d863c",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "clips.json",
   "role": "The ten clips the article's players stream: full sha256 re-read off the staged bytes, byte count, the round and render each came from, the request as the engine received it (caption, seed, key, tempo, steps, guidance, normalisation), the loudness the harness recorded, and the raw sample-peak and flat-factor row measured for D-20260903-08.",
   "media_type": "application/json",
   "bytes": 16173,
   "sha256": "b663e58eb76946f846c5ef7bcedf4239a86fa770eeb96f18d7bdb54aa15e38d1",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 3
   },
   "identical_to_original": false
  },
  {
   "file": "coherence/RESULTS.json",
   "role": "The same results as data.",
   "media_type": "application/json",
   "bytes": 19909,
   "sha256": "59ec57a860c9e1b6187e4d58462f89e9807c04d1c37cd12bc6304c8f5a2dc2da",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "coherence/RESULTS.md",
   "role": "The coherence bench's results in prose and tables: both metrics, the intervals, the predictions scored against them, and what the run does not license anyone to say.",
   "media_type": "text/markdown",
   "bytes": 42628,
   "sha256": "5d180fda481c35dbbbd1a05999b8e802b499abf4633c43da9566ae7416146fa9",
   "stripped": [
    "host-to-role",
    "path-to-role"
   ],
   "strip_counts": {
    "host-to-role": 4,
    "path-to-role": 4
   },
   "identical_to_original": false
  },
  {
   "file": "coherence/RESULTS.sha256",
   "role": "The bench's OWN receipt over its twelve output files, computed on the run's unprojected bytes. Files this kit projected will not match it; MANIFEST.sha256 covers the published bytes, and the README names which files differ.",
   "media_type": "text/plain",
   "bytes": 989,
   "sha256": "522fcf58396a02c8560bc659cadebff53aa02aa621166366386a15df48491519",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "coherence/RUN.log",
   "role": "The run's transcript, step by step, with the timings and the two boxes' cross-checked crop digests.",
   "media_type": "text/plain",
   "bytes": 15014,
   "sha256": "bcb559a053f0b8d7ef518473642db82defd30ffc064d5c4f6af71e4d29b509c4",
   "stripped": [
    "host-to-role",
    "path-to-role"
   ],
   "strip_counts": {
    "host-to-role": 37,
    "path-to-role": 13
   },
   "identical_to_original": false
  },
  {
   "file": "coherence/crop_windows.sh",
   "role": "The cropping tool the bench shells out to.",
   "media_type": "text/x-shellscript",
   "bytes": 1826,
   "sha256": "c4856e9a33ecb930f10019e6d3562d18ec1c549deb565821f6678e33ce78bae1",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "coherence/crops.csv",
   "role": "Every crop the bench took, with its source file, window, offset, digest and duration.",
   "media_type": "text/csv",
   "bytes": 835101,
   "sha256": "f3ecd72feff773b13081d81efed751bb78e4754ed5e116a06430a744bf496f3e",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 2577
   },
   "identical_to_original": false
  },
  {
   "file": "coherence/embeddings-index.csv",
   "role": "The row order of embeddings.npz — which crop is which vector.",
   "media_type": "text/csv",
   "bytes": 745276,
   "sha256": "cbba8ba055550dbe6d3a82f6e162710cce74fcf40b4c6702ae13dc1db1e7b455",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 2577
   },
   "identical_to_original": false
  },
  {
   "file": "coherence/embeddings.npz",
   "role": "Every embedding the bench computed, as written. The results are re-derivable from this file and the index beside it.",
   "media_type": "application/octet-stream",
   "bytes": 4889733,
   "sha256": "f9e968cebe04894813654e414732adf7b0a9b9b2f1f7133fa82a4d4565d20e43",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "coherence/metric1-corpus-spread.csv",
   "role": "Metric 1: the per-corpus spread estimates at equal N.",
   "media_type": "text/csv",
   "bytes": 2788,
   "sha256": "2287ed0c42d839f199845754cfc09b4c56790ef21b435b90561aba31fd7a4019",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "coherence/metric1-draws.csv",
   "role": "Every subsample draw behind Metric 1's intervals.",
   "media_type": "text/csv",
   "bytes": 206085,
   "sha256": "0fdb008cb8c77012c2f8f7d80dca69c063f269d9200ec79b6df2e0544403a34e",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "coherence/metric2-pairs.csv",
   "role": "Metric 2: each base/adapter render pair and its distance to the corpus centroid.",
   "media_type": "text/csv",
   "bytes": 5426,
   "sha256": "97dbc1e4791660d0c784c0e229928207c7338433475cfbeffe8def7fc0870795",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "coherence/metric2-render-centroid.csv",
   "role": "Metric 2's per-render distances, one row per render.",
   "media_type": "text/csv",
   "bytes": 5761,
   "sha256": "dabb955a827bc33e200d47ea259473c7d0afd37174a421c66c128433e4b93f94",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 63
   },
   "identical_to_original": false
  },
  {
   "file": "coherence/run_bench.py",
   "role": "The bench itself, verbatim: the corpora it reads, the crop policy, the embedder pin, both metrics and the interval procedure.",
   "media_type": "text/x-python",
   "bytes": 47201,
   "sha256": "dd85e85ed7b4744252e467129760fa815e7fb0ef42793083681284b90ec973ab",
   "stripped": [
    "host-to-role",
    "path-to-role"
   ],
   "strip_counts": {
    "host-to-role": 6,
    "path-to-role": 1
   },
   "identical_to_original": false
  },
  {
   "file": "corpus-manifest.json",
   "role": "The intake manifest, one row per acquired file (208): source URL, the licence URL recorded on the archive item, tier, creator string, measured format, duration, loudness and bandwidth ceiling.",
   "media_type": "application/json",
   "bytes": 361631,
   "sha256": "dbd9c84a539ec51e724ad9b8edb6ce2736f62556815483d689ef847c4b2e854e",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 208
   },
   "identical_to_original": false
  },
  {
   "file": "corpus-manifest.sha256",
   "role": "The 208 checksums, in `sha256sum -c` form, relative to the corpus audio directory.",
   "media_type": "text/plain",
   "bytes": 27023,
   "sha256": "0838d191a919caf52e2e9efbc3ba4426964d42bfca2bfc3a9f171832db4c0bb8",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "corpus-provenance.md",
   "role": "How the corpus was assembled and what was measured on it: the two search pools, the licence-path match, the integrity check, the bandwidth audit and its verdicts, the exclusions and the sentence written before the result.",
   "media_type": "text/markdown",
   "bytes": 24610,
   "sha256": "6fbab1e1c06bc79bf662cdbdc90b8606c72366a58f5c5813b59e0c9a720b8d99",
   "stripped": [
    "host-to-role",
    "path-to-role"
   ],
   "strip_counts": {
    "host-to-role": 14,
    "path-to-role": 7
   },
   "identical_to_original": false
  },
  {
   "file": "credits.md",
   "role": "The attribution owed, release by release — the 41 releases, their archive items, their creator strings as recorded, and their licence tiers.",
   "media_type": "text/markdown",
   "bytes": 13105,
   "sha256": "ab1c57e507ca0a0c4452fcae9ab0e54cfc2a32ae87ba20a7a6588a0d0643a680",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "cross-arm-check-round1.json",
   "role": "Round 1's byte-distinctness checks: every arm pair at the same caption and seed, with each file's digest prefix.",
   "media_type": "application/json",
   "bytes": 1312,
   "sha256": "41b6cf0e10fa5024c9bc8ede5bbfb338e8b5bb4f09499e23b8a442cc5e6f69e5",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "cross-arm-check-round2.json",
   "role": "Round 2's byte-distinctness checks, over every pair of the round's seven clips.",
   "media_type": "application/json",
   "bytes": 3240,
   "sha256": "f95d2623a8e12cf8b887f8b44c5f09ec7f103b548e9da8d5fc4f70af89ba78d6",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "exclusions.json",
   "role": "The eight tracks excluded before training and why: a container-rate exclusion decided per item, with the ruling's own words and every excluded track named.",
   "media_type": "application/json",
   "bytes": 6399,
   "sha256": "28131ed476063ef45fa15b4efccd762d605fc191dc6c93723dbb6aea5cbc0b05",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "freeze-receipt.json",
   "role": "The freeze's own receipt: 208 in, 8 excluded, 200 post-exclusion, 41 held out, 159 trained, and the self-sha256 of both manifests it wrote.",
   "media_type": "application/json",
   "bytes": 720,
   "sha256": "9a0fafb508522d988a83a230e89327f0500a62070d272780f7134d57817d874b",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 1
   },
   "identical_to_original": false
  },
  {
   "file": "intake-receipt.md",
   "role": "The download receipt, frozen at acquisition time: what was fetched, when, with which user agent, and what each response carried.",
   "media_type": "text/markdown",
   "bytes": 16216,
   "sha256": "ef344265b2b0b73410861bb152108e2c493580ab00b973e75bb4354838a3c033",
   "stripped": [
    "host-to-role",
    "path-to-role"
   ],
   "strip_counts": {
    "host-to-role": 2,
    "path-to-role": 2
   },
   "identical_to_original": false
  },
  {
   "file": "records-round1.json",
   "role": "Round 1's six renders, one record each, exactly as the render harness wrote them: the request, the adapter and its strength, the seed used, the output sha256, timings, VRAM and the loudness measurement.",
   "media_type": "application/json",
   "bytes": 10978,
   "sha256": "d872820d87c6d0456a46e2e09d4599af4056b7e8c1439c40a7e43ed3ac7af86d",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 10
   },
   "identical_to_original": false
  },
  {
   "file": "records-round2.json",
   "role": "Round 2's seven renders, same shape.",
   "media_type": "application/json",
   "bytes": 12753,
   "sha256": "bba3818d1785674fbc2f89a0d02846079482df0c7ab5d7574ee7dbaeee1b1bd8",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 12
   },
   "identical_to_original": false
  },
  {
   "file": "records-round3.json",
   "role": "Round 3's four renders — the one-artist control — plus the cross-round determinism check that reproduced two Round 2 renders byte-for-byte.",
   "media_type": "application/json",
   "bytes": 9661,
   "sha256": "4f5d04149d4ced85dac026f10a260cab8026bd934bdc8379e26a6f0c1905aef5",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 8
   },
   "identical_to_original": false
  },
  {
   "file": "records-round4.json",
   "role": "Round 4's forty-nine renders (48 clips plus the determinism repeat): twelve captions, four arms each, with the prompt id, style, arm, dose and the caption as sent.",
   "media_type": "application/json",
   "bytes": 155884,
   "sha256": "6c1e7b4d8156c1e57efb325e2cdaa0837ebd3d15cade61bb93cb22f4bb48e048",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 122
   },
   "identical_to_original": false
  },
  {
   "file": "round4-blind-sheet.json",
   "role": "The blind sheet's LAYOUT — pair ids, styles, contests and the alpha/beta labels. It carries no arm names. The key that maps label to arm is NOT in this kit and stays sealed until a verdict is recorded.",
   "media_type": "application/json",
   "bytes": 4142,
   "sha256": "9369503f145da5648b67aaef70a6b11b7ecb3c36ae31d7dc9aa26cdcc5b08dd6",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "round4-captions-as-rendered.txt",
   "role": "Every Round 4 caption exactly as it was sent, one line per (prompt, arm) — including the trigger word the preprocessor prepends, which is the difference between the arms.",
   "media_type": "text/plain",
   "bytes": 5788,
   "sha256": "9c378ef05a721600597e6182d1008a92f68ac00e2510a77b4db8cfce9dd0f924",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "s-per-step.md",
   "role": "The two instruments that disagree about seconds-per-step, both readings, and the counting rule for each — which denominator, what it includes, and which one the lab's ledger marks authoritative.",
   "media_type": "text/markdown",
   "bytes": 3136,
   "sha256": "52095f4f0e1969acb4a153f82a5d9c6e1c983cbae1c0181b0cbd81d58d421713",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "split-fmctl0.json",
   "role": "The control run's split, written by the same script under the same rule.",
   "media_type": "application/json",
   "bytes": 14145,
   "sha256": "cccdcf0a922fe0a50a77b87929d7451d2012e06be7e16939e31c171385041195",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 1
   },
   "identical_to_original": false
  },
  {
   "file": "split-mnml0.json",
   "role": "The wide run's dataset split as the freeze script wrote it: the holdout rule verbatim, the caption rule and its PLACEHOLDER status, the per-tier walk that chose the held-back items, and the 159 training and 41 held-out work keys by name.",
   "media_type": "application/json",
   "bytes": 47216,
   "sha256": "4b0690ed0859001a1f5fea9ddf4cb4a7172086118082ae8957ce140c1a86bce4",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 1
   },
   "identical_to_original": false
  },
  {
   "file": "split-rule.py",
   "role": "The holdout rule as an executable pure function — the one implementation the freeze script and the dry run share, so the split cannot disagree with itself.",
   "media_type": "text/x-python",
   "bytes": 3555,
   "sha256": "66cf7b12e0e62279dda929e77e8be88f3a9cb2aa68e9a2e054153c57a8e9fcf6",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  },
  {
   "file": "train-fmctl0.log",
   "role": "The one-artist control's training run, the same trainer, the same recipe, its own log start to finish — 1m 33s. Same projections.",
   "media_type": "text/plain",
   "bytes": 8518,
   "sha256": "5b5ff763f827c1ea80a53df30a1a25e017ce1896e79ae2e695b89b5c99900ce7",
   "stripped": [
    "card-to-class",
    "path-to-role"
   ],
   "strip_counts": {
    "card-to-class": 1,
    "path-to-role": 17
   },
   "identical_to_original": false
  },
  {
   "file": "train-mnml0.log",
   "role": "The wide corpus's training run, the trainer's own log start to finish: the configuration it printed for itself, ten per-pass lines, both checkpoint writes, and the Training Complete banner carrying 10m 08s. Filesystem paths projected; the card named by class.",
   "media_type": "text/plain",
   "bytes": 9762,
   "sha256": "45baf098f0f1d0b0bc1d114f2f1b07e3afdcdc706299683b2b0076e80e0c9203",
   "stripped": [
    "card-to-class",
    "path-to-role"
   ],
   "strip_counts": {
    "card-to-class": 1,
    "path-to-role": 17
   },
   "identical_to_original": false
  },
  {
   "file": "unload-restore-control.json",
   "role": "The control that found the contamination: does attaching and then unloading an adapter restore the base decoder bit-exactly? It does not, and the record says which clip that ruined.",
   "media_type": "application/json",
   "bytes": 646,
   "sha256": "ba904b69eec7ca10d3aa016c83888fd8856f960c9789af82ae21142f5926ee71",
   "stripped": [
    "path-to-role"
   ],
   "strip_counts": {
    "path-to-role": 1
   },
   "identical_to_original": false
  },
  {
   "file": "MANIFEST.sha256",
   "role": "Every kit file's sha256 in `sha256sum -c` form, over the bytes published here — provenance.json included. It does not list itself, index.json or index.html; index.json carries its digest instead.",
   "media_type": "text/plain",
   "bytes": 3674,
   "sha256": "3a61e500f677c03aeba5549bdfd671167f8da8bedf92fc3005196334a93faad8",
   "stripped": [],
   "strip_counts": {},
   "identical_to_original": true
  }
 ]
}
