{
 "schema_version": "1.0",
 "page_kind": "article",
 "pack_kind": "generate",
 "slug": "half-an-hour-with-dead-composers",
 "title": "Half an Hour with Dead Composers",
 "dek": "Two more dead composers taught the same way — a hundred and six marches, then Bach — and then blending composers with linear algebra, where the obvious method is wrong, the right one costs a measurable one percent, and a sentence already staged for publication had to be taken back before you ever saw it.",
 "published": "2026-09-02",
 "series": [
  "guide",
  "bench"
 ],
 "licence": "CC BY 4.0",
 "status": "pending-judge",
 "pack_note": "no judge is seated, so every chip is held",
 "notice": "items with published:false are held and are not this page's published words",
 "source": {
  "url": "https://research.strata2signal.com/half-an-hour-with-dead-composers/",
  "md_url": "https://research.strata2signal.com/half-an-hour-with-dead-composers/index.md",
  "md_sha": "754d21f83188e58e06107fb0104a3860aab31931c8d88b056d1c94835f79e6e3",
  "html_sha": "8358576cf9f4057a147d45a635eeedd878a03af920a62501e581d5be778a2e71",
  "anchors_sha": "9aab98bc0adf36c55befb5e039482ba02033a65aed459fd54d490752e7ebc154"
 },
 "short": {
  "paragraph": "Two more dead composers taught the same way - a hundred and six marches, then Bach - and then blending composers with linear algebra, where the obvious method is wrong, the right one costs a measurable one percent, and a sentence already staged for publication had to be taken back before you ever saw it.",
  "from_dek": true,
  "counts": {
   "words": 3504,
   "minutes": 16,
   "tables": 2,
   "kit": true
  },
  "bullets": [
   {
    "text": "the Bach and Chopin merge has a mean error of 1.1 %",
    "figure": "1.1 %",
    "cite": "you-cannot-average-two-composers",
    "quote": "The correct target is to add the adapters' effects, not their pieces - and that sum is too big to fit back in an adapter-sized file, so it gets squeezed to fit: a standard technique (truncated SVD) finds the best small stand-in by one exact measure - least squares, matrix by matrix - and the tool that does it then prices its own approximation against the exact sum it could not keep: merge parents mean error vs the exact blend worst matrix Bach + Chopin 2 1.1 % 3.6 % - a key projection, layer 17 Chopin + Sousa 2 1.2 % 3.4 % - a key projection, layer 7 the trio 3 1.5 % 4.3 % - a key projection, layer 17 Two parents cost about one percent of error; a third adds about 27 % more.",
    "span": [
     9848,
     9856
    ]
   },
   {
    "text": "the margin the false version failed by was 0.00238",
    "figure": "0.00238",
    "cite": "the-sentence-we-took-back",
    "quote": "The margin the false version failed by, 0.00238, is nearly two orders of magnitude below the seed-to-seed spread our ruler carries - we retracted the sentence because it fails arithmetically, not because the geometry swung.",
    "span": [
     13624,
     13632
    ]
   }
  ]
 },
 "sections": [
  {
   "id": "previously-in-five-minutes",
   "heading": "Previously, in five minutes",
   "level": 2,
   "span": [
    1175,
    1993
   ],
   "chunks": [
    [
     1175,
     1993
    ]
   ],
   "chars": 818,
   "digest": "the article recaps part one, which involved an open-weights music generator, a small detachable adapter trained with LoRA in under five minutes on a five-year-old consumer graphics card, and a strength dial. the two adapters mentioned are sousa-shakedown and bach-shakedown.",
   "digest_skipped": null
  },
  {
   "id": "sousa-a-hundred-and-six-marches",
   "heading": "Sousa: a hundred and six marches",
   "level": 2,
   "span": [
    1993,
    5659
   ],
   "chunks": [
    [
     1993,
     5659
    ]
   ],
   "chars": 3666,
   "digest": "the second corpus consists of 106 recordings of the complete marches of John Philip Sousa by a full military band. training took 14 minutes 36 seconds. a lesson was learned to select checkpoints based on measured loss rather than recency, though the pass-ten file was shipped.",
   "digest_skipped": null
  },
  {
   "id": "bach-the-pianist-who-freed-her-own-recordings",
   "heading": "Bach: the pianist who freed her own recordings",
   "level": 2,
   "span": [
    5659,
    7644
   ],
   "chunks": [
    [
     5659,
     7644
    ]
   ],
   "chars": 1985,
   "digest": "the third corpus uses 79 recordings from Kimiko Ishizaka's Open Bach projects. training took 8 minutes 23 seconds. the split machinery was updated to handle a file containing two pieces, ensuring the same piece never sits on both sides of the test.",
   "digest_skipped": null
  },
  {
   "id": "the-bill",
   "heading": "The bill",
   "level": 2,
   "span": [
    7644,
    8568
   ],
   "chunks": [
    [
     7644,
     8568
    ]
   ],
   "chars": 924,
   "digest": "a table compares Chopin, Sousa, and Bach across training files, held back pieces, training passes, training time, and training error. the total training time for three composers was 27 minutes 48 seconds on one five-year-old card.",
   "digest_skipped": null
  },
  {
   "id": "you-cannot-average-two-composers",
   "heading": "You cannot average two composers",
   "level": 2,
   "span": [
    8568,
    10798
   ],
   "chunks": [
    [
     8568,
     10798
    ]
   ],
   "chars": 2230,
   "digest": "averaging two adapters creates mathematical chimeras. the correct method is to add the adapters' effects and use truncated SVD to squeeze the sum. merging Bach and Chopin results in a mean error of 1.1 %.",
   "digest_skipped": null
  },
  {
   "id": "where-the-blends-actually-sit",
   "heading": "Where the blends actually sit",
   "level": 2,
   "span": [
    10798,
    12612
   ],
   "chunks": [
    [
     10798,
     12612
    ]
   ],
   "chars": 1814,
   "digest": "the duet of Chopin and Sousa is closer to each parent than the parents are to each other. an informal listening preference noted the duet was unique. equal weights do not guarantee an equal blend in terms of waveform or brightness.",
   "digest_skipped": null
  },
  {
   "id": "the-sentence-we-took-back",
   "heading": "The sentence we took back",
   "level": 2,
   "span": [
    12612,
    13922
   ],
   "chunks": [
    [
     12612,
     13922
    ]
   ],
   "chars": 1310,
   "digest": "a published sentence claiming the trio was closer to each parent than any two parents were to each other was retracted because it was false. the corrected version states that for each parent, the trio sits closer to that parent than that parent sits to either other composer.",
   "digest_skipped": null
  },
  {
   "id": "the-rulers-noise-floor",
   "heading": "The ruler's noise floor",
   "level": 2,
   "span": [
    13922,
    14894
   ],
   "chunks": [
    [
     13922,
     14894
    ]
   ],
   "chars": 972,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "the-blend-that-wasnt",
   "heading": "The blend that wasn't",
   "level": 2,
   "span": [
    14894,
    15800
   ],
   "chunks": [
    [
     14894,
     15800
    ]
   ],
   "chars": 906,
   "digest": "the serving engine silently plays only the last adapter touched, even when two are requested. this was proven when a request for two adapters at 0.6 returned a file byte for byte identical to a Sousa-only control.",
   "digest_skipped": null
  },
  {
   "id": "what-we-did-not-measure",
   "heading": "What we did NOT measure",
   "level": 2,
   "span": [
    15800,
    16835
   ],
   "chunks": [
    [
     15800,
     16835
    ]
   ],
   "chars": 1035,
   "digest": "the article notes that no formal, blinded listening test has been run to see if merges sound like blends. it also did not measure whether the better-loss Sousa checkpoint is the better adapter or if the pinned key was honoured.",
   "digest_skipped": null
  },
  {
   "id": "what-to-take-with-you",
   "heading": "What to take with you",
   "level": 2,
   "span": [
    16835,
    17767
   ],
   "chunks": [
    [
     16835,
     17767
    ]
   ],
   "chars": 932,
   "digest": "the summary notes that three dead composers cost under half an hour of training, that you cannot average two adapters, and that a distance ruler proves change rather than style.",
   "digest_skipped": null
  },
  {
   "id": "how-to-check-our-work",
   "heading": "How to check our work",
   "level": 2,
   "span": [
    17767,
    18449
   ],
   "chunks": [
    [
     17767,
     18449
    ]
   ],
   "chars": 682,
   "digest": null,
   "digest_skipped": "credits"
  },
  {
   "id": "who-ran-this-and-thanks",
   "heading": "Who ran this, and thanks",
   "level": 2,
   "span": [
    18449,
    20014
   ],
   "chunks": [
    [
     18449,
     20014
    ]
   ],
   "chars": 1565,
   "digest": null,
   "digest_skipped": "credits"
  },
  {
   "id": "the-rest-of-the-seminar",
   "heading": "The rest of the seminar",
   "level": 2,
   "span": [
    20014,
    20599
   ],
   "chunks": [
    [
     20014,
     20599
    ]
   ],
   "chars": 585,
   "digest": null,
   "digest_skipped": "credits"
  }
 ],
 "chips": [
  {
   "id": "c-ebee5602",
   "q": "how does the sousa training process differ from chopin?",
   "a": "The sousa corpus consists of 106 recordings of full military band marches, which is 4.4 times as many recordings as the chopin corpus. Training for sousa took 14 minutes 36 seconds, making it the longest run mentioned in the story.",
   "cites": [
    "sousa-a-hundred-and-six-marches"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-0daf3928",
   "q": "how was the bach corpus licensing handled?",
   "a": "The bach corpus uses recordings from Kimiko Ishizaka's Open Bach projects. These files carry CC0 public-domain deeds or public-domain marks in their metadata, ensuring the recordings are free of obligations.",
   "cites": [
    "bach-the-pianist-who-freed-her-own-recordings"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-647e4fcb",
   "q": "what is the total training time for the three composers?",
   "a": "The total training time for the three composers is 27 minutes 48 seconds.",
   "cites": [
    "the-bill"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-11ed911a",
   "q": "why is averaging two adapter files mathematically incorrect?",
   "a": "An adapter is a product of two learned matrices. Averaging the matrices directly creates mathematical chimeras—middle terms that pair one composer's squeeze with another's projection—which belong to neither composer.",
   "cites": [
    "you-cannot-average-two-composers"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-a22d6959",
   "q": "how does the duet compare to its parent recordings?",
   "a": "Using a waveform distance ruler, the 50/50 chopin + sousa duet is closer to each parent than the parents are to each other, with distances of 0.112 and 0.127 against 0.152 between the parents.",
   "cites": [
    "where-the-blends-actually-sit"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-fbd5880f",
   "q": "what error led to the retraction of a specific claim?",
   "a": "A claim stating the trio was closer to each parent than any two parents were to each other was retracted because it was arithmetically false. The trio sits 0.11358 from chopin, while bach and sousa sit 0.11120 from each other.",
   "cites": [
    "the-sentence-we-took-back"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-995d85f3",
   "q": "what limits the interpretation of the distance measurements?",
   "a": "The ruler's noise floor is 0.18225 on average for sousa renders, which is 95 % of the largest measured adapter effect. This floor prevents reading any distance as an amount of style, though orderings remain valid.",
   "cites": [
    "the-rulers-noise-floor"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-e53a6432",
   "q": "what happens when the engine is asked to load two adapters?",
   "a": "The serving engine silently plays only the last adapter touched. This was proven when a request for two adapters at 0.6 strength produced a file byte for byte identical to a sousa-only control.",
   "cites": [
    "the-blend-that-wasnt"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  }
 ],
 "related": [
  {
   "slug": "ten-minutes-with-living-artists",
   "why": "shares ground with § Previously, in five minutes · § Where part two left off"
  },
  {
   "slug": "chopin-in-five-minutes",
   "why": "shares ground with § Previously, in five minutes · § What to take with you"
  },
  {
   "slug": "home-inference-and-diffusion-rig-cost",
   "why": "shares ground with § Previously, in five minutes · § What the card is like for training"
  }
 ],
 "thanks": "## Who ran this, and thanks {#who-ran-this-and-thanks}\n\nThe corpora: the United States Marine Band's complete Sousa marches, via the Internet\nArchive's mirror — *\"Audio and scores courtesy of the one and only, the President's\nOwn, The U.S. Marine Band\"*; Kimiko Ishizaka's *Open Goldberg Variations* and *Open\nWell-Tempered Clavier* — dedications that are the whole point of those projects; and\nMusopen's *Set Chopin Free* recordings, carried over from part one. None of the three\ndemands credit, which is exactly why we give it. The model: ACE-Step 1.5 (MIT — its row on our [licence ledger](/licences/)) —\nevery clip on this page is AI-generated, and says so. The trainer: Side-Step\n(github.com/koda-dernet/Side-Step), the corrected-timestep LoRA trainer vendored in\nACE-Step 1.5; its upstream licence is CC BY-NC-SA 4.0, though the vendored copy says\nit follows ACE-Step's MIT — we proceed on the stricter reading, and wrote to ask.\n\nAnd beneath all of it, the open tools this work stood on without modifying: PyTorch\nand torchaudio, which ran the training, and PyTorch again for the merges' arithmetic; Hugging Face's\nPEFT library, the LoRA machinery itself; FFmpeg, the decoder that read every training\nfile; and the Internet Archive, three times over — the two items that carried the Bach\nrecordings, the mirror that carried the marches, and the Wayback Machine that held part\none's licence page. None of them owed us anything. A\nsmall team and a fleet of AI agents did the work; the humans signed the numbers —\n[how that works](/how-we-work/) is next door.",
 "kit": {
  "url": "https://research.strata2signal.com/half-an-hour-with-dead-composers/data/",
  "licence": "CC BY 4.0",
  "files": [
   "README.md",
   "adapter-config-bach.json",
   "adapter-config-duet-bach-chopin.json",
   "adapter-config-duet-chopin-sousa.json",
   "adapter-config-sousa-epoch5.json",
   "adapter-config-sousa.json",
   "adapter-config-trio.json",
   "clips.json",
   "distances-crossover.json",
   "distances-duet.json",
   "distances-seed-floor.md",
   "distances-sousa-adapter.json",
   "distances-trio.json",
   "merge-finale.log",
   "merge-record-duet-bach-chopin.md",
   "merge-record-duet-chopin-sousa.md",
   "merge-record-trio.md",
   "merge_adapters.py",
   "render-request-bach.json",
   "render-request-duet.json",
   "render-request-sousa-march.json",
   "render-request-sousa-probe.json",
   "render-request-trio.json",
   "rights-chain.md",
   "train-bach-passlines.md",
   "train-chopin.log",
   "train-sousa-passlines.md"
  ]
 },
 "seat_class": {
  "writer": "gemma-class",
  "judge": null,
  "writer_runtime": "vllm"
 },
 "bench": {
  "bullets_written": 3,
  "bullets_kept": 2,
  "digests_written": 11,
  "digests_kept": 10,
  "chips_written": 8,
  "chips_kept": 8,
  "chips_grounded": 0,
  "chips_published": 0,
  "dropped_by": {
   "new_noun": 0,
   "figure": 1,
   "length": 0,
   "cite": 0,
   "judge": 0,
   "quote": 0,
   "directive": 0,
   "redaction": 1,
   "profanity": 0
  },
  "new_noun_tokens_checked": [
   "0.00238",
   "0.11120",
   "0.112",
   "0.11358",
   "0.127",
   "0.152",
   "0.18225",
   "0.6",
   "1.1",
   "106",
   "14",
   "14m",
   "23",
   "27",
   "36",
   "36s",
   "4.4",
   "48",
   "50/50",
   "79",
   "8",
   "95",
   "Bach",
   "CC0",
   "Chopin",
   "Ishizaka's",
   "John",
   "Kimiko",
   "LoRA",
   "Open",
   "Philip",
   "SVD",
   "Sousa",
   "Sousa-only"
  ],
  "new_noun_tokens_withheld": 0,
  "figure_definition": "v3",
  "drops": [
   {
    "kind": "digest",
    "reason": "redaction",
    "item": null,
    "item_chars": 228,
    "withheld": "a string carrying a fenced literal",
    "detail": ""
   },
   {
    "kind": "bullet",
    "reason": "figure",
    "item": "the longest run in this story was 14m 36s",
    "detail": "terminal token not verbatim in the cited span"
   }
  ]
 },
 "generated_utc": "2026-09-09T01:25:45Z"
}
