Context
Found while closing #43 (D24, ADR-0031). That deliverable recovered five EIII/ESI banks whose header carried a mistyped copy of the directory name. Measuring #43's "second copy of a bank written twice" hypothesis turned up a real, separate mechanism on the same two discs — one that D24 deliberately does not touch.
What was found
_bank_offsets returns located as one address per bank name. Where a directory lists the same name on two entries, both resolve to the single header that name owns and read the same records twice:
| Disc |
Name |
Both entries read |
Files each |
Vol. 10 – Elements of Sound 1MB |
Harpsichord X |
records at 56981833, 57061251, … |
13 |
Vol. 17 – Heavy Guitars |
HvyGtr Maj.Open |
records at 305233485, 306590905, … |
6 |
Two volumes, one name, byte-identical record addresses. This is the ADR-0021 "no two volumes may claim one record" invariant (asserted disc-wide on protozoa) failing on these two discs — it is simply not asserted on them yet.
It is a different mechanism from #43: those five read nothing (a header the name-keyed lookup could not reach); these read the same thing twice (a name the lookup can only represent once).
The heavy arm has a second mystery
HvyGtr Maj.Open is listed at directory start 51 and 292. The entry at 292 name-matches a header actually called HvyGtr Maj.Open . The entry at 51's placement predicts an address holding a real EMULATOR 3X header — but its +16 name is blank ( X), declaring a 6.3 MB run of its own. So one arm of the pair points at a genuine, differently-named bank the directory does not name; what that bank is, and whether start=51 should read it rather than double-listing 292's records, is unestablished.
Why this is not #43 and is deferred
#43/D24 recovers a header the directory names once and the mastering mistyped. This is a name the directory writes twice, and fixing it means resolving a header per directory entry rather than per name (so each Harpsichord X reads its own header, and the blank-named arm of heavy is read or noted on its own terms) — plus reverse-engineering the blank-named 6.3 MB header. That is its own change with its own ADR.
Scope
Small and bounded — two names on two discs, both under SAMPLERDISC_TEST_DISCS (archive/vol.-3-orchestral/). D24 pinned elements1mb and heavy in tests/test_discs.py including this double-count; a fix here is expected to move those two sample totals, and the pin comments say so. Not being worked on now; filing so it is not rediscovered.
Context
Found while closing #43 (D24, ADR-0031). That deliverable recovered five EIII/ESI banks whose header carried a mistyped copy of the directory name. Measuring #43's "second copy of a bank written twice" hypothesis turned up a real, separate mechanism on the same two discs — one that D24 deliberately does not touch.
What was found
_bank_offsetsreturnslocatedas one address per bank name. Where a directory lists the same name on two entries, both resolve to the single header that name owns and read the same records twice:Vol. 10 – Elements of Sound 1MBHarpsichord X56981833, 57061251, …Vol. 17 – Heavy GuitarsHvyGtr Maj.Open305233485, 306590905, …Two volumes, one name, byte-identical record addresses. This is the ADR-0021 "no two volumes may claim one record" invariant (asserted disc-wide on
protozoa) failing on these two discs — it is simply not asserted on them yet.It is a different mechanism from #43: those five read nothing (a header the name-keyed lookup could not reach); these read the same thing twice (a name the lookup can only represent once).
The
heavyarm has a second mysteryHvyGtr Maj.Openis listed at directorystart51 and 292. The entry at 292 name-matches a header actually calledHvyGtr Maj.Open. The entry at 51's placement predicts an address holding a realEMULATOR 3Xheader — but its+16name is blank (X), declaring a 6.3 MB run of its own. So one arm of the pair points at a genuine, differently-named bank the directory does not name; what that bank is, and whether start=51 should read it rather than double-listing 292's records, is unestablished.Why this is not #43 and is deferred
#43/D24 recovers a header the directory names once and the mastering mistyped. This is a name the directory writes twice, and fixing it means resolving a header per directory entry rather than per name (so each
Harpsichord Xreads its own header, and the blank-named arm ofheavyis read or noted on its own terms) — plus reverse-engineering the blank-named 6.3 MB header. That is its own change with its own ADR.Scope
Small and bounded — two names on two discs, both under
SAMPLERDISC_TEST_DISCS(archive/vol.-3-orchestral/). D24 pinnedelements1mbandheavyintests/test_discs.pyincluding this double-count; a fix here is expected to move those two sample totals, and the pin comments say so. Not being worked on now; filing so it is not rediscovered.