re: close both remaining .slb questions in the backlog -- both were my errors
The declared sizes are honest (seek magic at data_at + declared_size, 7620/7620) and VOICE_TCAF_608 was stereo decoded as mono, not truncated. The four offsets are a segment-packing phase, not a per-directory header size. Neither was closed by finding something new; both were closed by correcting a mistake of mine.
This commit is contained in:
@@ -40,9 +40,24 @@ packet boundary, so `seek_pos % 2048` is a second and structural derivation of
|
||||
the offset (99.97 % on the labelled set). It resolves 26 of the 28 correctly and
|
||||
none wrongly; the combined rule is 99.95 %.
|
||||
|
||||
**Still open**: ❔ why 69.8 % of banks declare more `data` than they store, and
|
||||
❔ why the offset takes exactly four values by directory (see
|
||||
[`structures/slb-data-offset.md`](structures/slb-data-offset.md)).
|
||||
**Both remaining questions closed the same day**, and both by correcting an
|
||||
error of mine rather than by finding something new:
|
||||
|
||||
* ❌ **"69.8 % of banks declare more `data` than they store"** — the declared
|
||||
sizes are **honest**. Every `RIFF`-bearing entry on the disc carries `seek`
|
||||
magic at exactly `data_at + declared_size` with `packet_count × 2048 ==
|
||||
declared`, **7 620 / 7 620**. The TOC window is simply not the wave boundary.
|
||||
My supporting case, `VOICE_TCAF_608`, was not truncated either: it is **stereo**
|
||||
(170 of 8 021 banks are) and I decoded it as mono, which yields one frame. Read
|
||||
correctly it is 33.96 s, agreeing with both length signals inside the bank.
|
||||
* ❌ **"the offset takes four values by directory"** — the *cause* was wrong.
|
||||
`X = (cumulative start of the .pNN segment) mod 2048`; the per-directory table
|
||||
was a correlation, because directories cluster into segments. There is no
|
||||
header: those bytes are the previous bank's audio.
|
||||
|
||||
Both are written up in
|
||||
[`structures/slb-data-offset.md`](structures/slb-data-offset.md), including the
|
||||
`seek` layout (little-endian, packet count at `+12`) and the boundary recipe.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user