re: full bank manifest -- 4114 banks, 390.9 minutes, and the durations self-validate
With the wave boundary exact and Channels read rather than assumed, every field describing a bank can be read: path, cue, sound id, channels, rate, data bytes, packets, samples, seconds. Duration comes from the last cumulative sample in the seek table over the sample rate -- arithmetic, no decoding. Nothing was fitted to an expectation, yet every category lands where its content says it should: BGM mean 146 s, Movie mean 79 s with an 11-minute maximum, Briefing 10.8 s, in-mission Voice 2.79 s never exceeding 7.3. If the boundary rule, the channel field or the seek table were misread, the numbers would not sort into those five shapes. Incidental: 4 banks run at 44100 Hz against 48000 everywhere else, and the BGM tracks are the stereo ones. 1021 of the 5135 FILES paths have no RIFF and are excluded as headerless.
This commit is contained in:
@@ -112,3 +112,40 @@ was wrong.
|
||||
* **Why 55 English banks have their first `RIFF` at or before 1392**, inside
|
||||
what the headerless reading treats as the header.
|
||||
* **Nothing here was run.** This is a static census of the archive.
|
||||
|
||||
|
||||
## ✅ A full bank manifest — and the durations validate the whole chain
|
||||
|
||||
**2026-08-26.** With the wave boundary exact and `Channels` read rather than
|
||||
assumed, every field needed to describe a bank can be *read*:
|
||||
|
||||
path | cue | sound id | channels | rate | data bytes | packets | samples | seconds
|
||||
|
||||
Committed as [`../data/voice-bank-manifest.txt`](../data/voice-bank-manifest.txt)
|
||||
— **4 114 banks**, every one carrying a full `RIFF`/`fmt `/`data`/`seek`
|
||||
structure. (1 021 of the 5 135 `FILES` paths have no `RIFF` and are excluded;
|
||||
those are the headerless banks.) Duration comes from the **last cumulative
|
||||
sample** in the `seek` table divided by the sample rate — arithmetic, no
|
||||
decoding.
|
||||
|
||||
**Total: 390.9 minutes — about 6½ hours of audio.**
|
||||
|
||||
The reason this is worth more than a listing is that nothing in it was fitted to
|
||||
an expectation, yet every category lands where its content says it should:
|
||||
|
||||
| directory | banks | total | mean | longest |
|
||||
|---|---|---|---|---|
|
||||
| root (`BGM_*`, `JNGL_*`) | 34 | 82.8 min | **146.0 s** | 277.5 s |
|
||||
| `Movie` | 62 | 81.4 min | **78.8 s** | **672.7 s** |
|
||||
| `Briefing` | 72 | 12.9 min | **10.8 s** | 26.8 s |
|
||||
| `etc` | 1 776 | 112.9 min | **3.8 s** | 136.8 s |
|
||||
| `Voice` | 2 170 | 100.9 min | **2.79 s** | 7.3 s |
|
||||
|
||||
Music tracks average two and a half minutes; a cutscene track runs up to eleven
|
||||
minutes; briefing lines are ten seconds; and in-mission radio chatter averages
|
||||
**2.8 seconds and never exceeds 7.3**. If the boundary rule, the channel field
|
||||
or the seek table were being misread, these numbers would not sort themselves
|
||||
into those five shapes.
|
||||
|
||||
Two incidental facts fall out: **4 banks run at 44 100 Hz** where everything else
|
||||
is 48 000, and the `BGM_*` tracks are the stereo ones.
|
||||
|
||||
Reference in New Issue
Block a user