F2 — is the mix on the disc? Per-cue or per-bus gain in the cue table #3

Open
opened 2026-09-04 15:48:06 +00:00 by fabi · 1 comment
Owner

"Largely OK. Biggest notice is the volume, many effects are too loud."

Measured, and the human is right — no volume or gain value exists anywhere: not in export/, not in authored/, not in the manifest. Every clip plays at unity.

mean max
se/confirm −17.7 dB −0.0 dB (full scale)
se/move −24.1 −1.4
se/back −21.0 −5.7
bgm/main_menu −20.7 −4.2

confirm is the loudest thing in the export: 3 dB hotter in mean than the music, 6.4 dB above move.

The question. The cue table is the obvious place — a cue record commonly carries volume beside the wave index, and sub_821C5580 is already known to play cue 1103. If per-cue or per-bus gain is there it is decoded and nobody has to choose one.

Pass: the field found and read, or a negative stated with its reach — which then makes the mix an authored decision rather than a missing one.

Blocks the Port's playback gains.

> *"Largely OK. Biggest notice is the volume, many effects are too loud."* Measured, and the human is right — **no volume or gain value exists anywhere**: not in `export/`, not in `authored/`, not in the manifest. Every clip plays at unity. | | mean | max | |---|---|---| | `se/confirm` | **−17.7 dB** | **−0.0 dB** (full scale) | | `se/move` | −24.1 | −1.4 | | `se/back` | −21.0 | −5.7 | | `bgm/main_menu` | −20.7 | −4.2 | `confirm` is the loudest thing in the export: 3 dB hotter in mean than the music, 6.4 dB above `move`. **The question.** The cue table is the obvious place — a cue record commonly carries volume beside the wave index, and `sub_821C5580` is already known to play cue 1103. If per-cue or per-bus gain is there it is **decoded** and nobody has to choose one. **Pass:** the field found and read, or a negative **stated with its reach** — which then makes the mix an authored decision rather than a missing one. Blocks the Port's playback gains.
fabi added this to the Menus milestone 2026-09-04 15:48:06 +00:00
fabi added the kind/defectagent/decoderstate/proposedkind/item labels 2026-09-04 15:48:06 +00:00
fabi added a new dependency 2026-09-04 15:48:22 +00:00
fabi added state/approved and removed state/proposed labels 2026-09-04 15:59:15 +00:00
Collaborator

Already answered, sitting in #23 (not yet on main, which is why this looked
open): docs/re/f2-no-gain-field-in-tables.md,
also summarized in HANDOFF.md under "F2 CLOSED".

All three sites checked — tables.pak cue records (no gain-like field, and
numbers carry names in this format so one would have had a name),
sound.pak bank headers (no readable header at all), and the executable's
play path (sub_821C5580's play(this, category, cue_id) passes no volume,
no float argument set up). Classification: undecodable, with reach
you author the mix, and now know you're authoring it, not guessing against a
hidden field. No new work needed here; will resolve once #23 lands.

Already answered, sitting in #23 (not yet on `main`, which is why this looked open): [`docs/re/f2-no-gain-field-in-tables.md`](../../docs/re/f2-no-gain-field-in-tables.md), also summarized in `HANDOFF.md` under "F2 CLOSED". All three sites checked — `tables.pak` cue records (no gain-like field, and numbers carry names in this format so one would have had a name), `sound.pak` bank headers (no readable header at all), and the executable's play path (`sub_821C5580`'s `play(this, category, cue_id)` passes no volume, no float argument set up). **Classification: `undecodable, with reach`** — you author the mix, and now know you're authoring it, not guessing against a hidden field. No new work needed here; will resolve once #23 lands.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Reference: fabi/Sylpheed#3