re: which ADV stream sits where -- settled by level, not by waveform

Completes ask #4. The three chunks were dumped from the resolved voice region
and decoded; the assignment is ctx0 -> FL/FR, ctx1 -> FC with LFE silent,
ctx2 -> BL/BR.

Two instruments failed first and both look like results, so both are recorded.
Envelope correlation with a per-pair lag search returns 0.86-0.95 for EVERY
chunk against EVERY channel, because all six residual channels share the
dialogue's activity timing -- that is an instrument with no resolving power, not
a finding. Sample-level correlation returns about zero, because the chunks do
not start with the movie and the XMA decode's framing offset is unknown.

Level settles it under the same 0.600 gain the bed uses: each stream lands
within 0.5 dB of exactly one residual pair and misses the others by 4-6 dB. The
ratio test is immune to chunk 0 being a clipped tail of ctx0 -- chunk0 - chunk2
is +5.88 dB against FL - BL at +6.18 dB, agreeing to 0.30 dB, where a swap would
be wrong by 11.76 dB.

Structural confirmation: chunk 1 is the only chunk with a digitally silent
channel and LFE is the only output channel with an empty residual (-115.73
dBFS), one to one; and the internal L/R correlations track the residual pairs'
(0.932 vs 0.918, 0.962 vs 0.929).

Worth having on its own: the same 0.600 scales both the movie bed and the voice,
so it is one mixer gain rather than two.

Reach: levels, not waveforms; one boot, one movie; and whether 0.600 is a fixed
constant or a volume setting is still unknown.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
sylph-decoder
2026-08-30 08:32:14 +00:00
parent bcb822d4b9
commit edab16d7ca
4 changed files with 169 additions and 6 deletions

View File

@@ -2565,9 +2565,31 @@ not apply to this capture** — the measured map is the identity. So the census'
silent LFE. Measure channel order per capture; a 6×6 matrix that comes out a clean
permutation is its own control.
⚠️ Reach: one boot, one movie. **Which** of the three XMA contexts is front, centre
or rear is *not* determined — the assignment above is by position. And whether 0.600
is a fixed mix constant or a volume setting is unknown.
✅ **UPDATE — the assignment is now determined, so your weights are unblocked:**
| stream | `byte_size` | → | downmix weight you cited |
|---|---|---|---|
| ctx0 | 1 294 336 | **FL, FR** | 0.4142 |
| ctx1 | 1 118 208 | **FC** (LFE silent) | 0.2929 |
| ctx2 | 1 171 456 | **BL, BR** | 0.2929 |
Settled by **level**, under the same 0.600 gain the bed uses: each stream lands
within **0.5 dB** of exactly one residual pair and misses the others by 4–6 dB.
Ratio test (immune to chunk 0 being a clipped tail): chunk0 − chunk2 = +5.88 dB
against FL − BL = +6.18 dB, agreeing to 0.30 dB; swapped it would be wrong by 11.76.
Structural confirmation: ctx1 is the only stream with a digitally silent channel and
LFE is the only channel with an empty residual. ✅ **One mixer gain, not two** — the
same 0.600 scales bed and voice.
🔴 **Two instruments failed first and both looked convincing** — worth knowing
before you try to reproduce it. Envelope correlation returns **0.86–0.95 for every
stream against every channel**, because all six channels share the dialogue's
timing; that is no resolving power, not a result. Sample-level correlation returns
≈ 0, because the chunks do not start with the movie.
⚠️ Reach: levels, not waveforms — three numbers agreeing to 0.5 dB plus a 1:1
structural match. One boot, one movie. Whether 0.600 is a fixed mix constant or a
volume setting is still unknown.
[`intro-audio-decomposed.md`](../re/structures/intro-audio-decomposed.md) ·
[numbers](../re/data/intro-audio-decomposition.txt)