From 1380bbdcff389457c82c3a33a3de496f5dfd5445 Mon Sep 17 00:00:00 2001 From: Sylpheed port agent Date: Sat, 29 Aug 2026 18:16:46 +0000 Subject: [PATCH] port: re-run the P5/P6 gate, and verify the cues with a null control rather than a detector The leaf path, the plate pulse, the BGM level fix, the voice export, the focus fix and a diagnostic flag have all landed since the gate was last run. I had been verifying pieces against captures without once re-running the whole walk, which is the mission's actual test. It works. Nine steps unattended: down x4 through all five buttons, (A) into EXTRAS, (B) back to main_menu with FOCUS RESTORED to ptbtn05 (HANDOFF Q5's rule, live), up, (A) on OPTIONS which prints the archive gap rather than pretending. Every shot non-blank. Filmstrip shared as 1788027380-788b1faafc3e. THE SOUND IS VERIFIED BY A NULL CONTROL, NOT A DETECTOR. I first tried counting sharp level rises: it found ONE onset in the walk and THE SAME ONE in the music bed alone, which contains no cues -- a 50 ms envelope cannot see a short cue over the bed. The right response to a detector that cannot separate its control from its subject is to stop using it, not to widen the window until the numbers look better. So the technique that settled the voice: shadow the three cues with silence through data/mods/, run the identical walk, compare. cues playing peak +0.0003 dBFS RMS -18.36 cues silenced peak -4.74 dBFS RMS -20.78 Silencing three sound effects costs 4.74 dB of peak and 2.43 dB of RMS, and the walk's peak is SET BY a cue rather than by the music. The mod log confirms exactly three files shadowed. No detector, no threshold, and the control is the same run with one input changed. Recorded under the Dummy driver. It shows the cues reach the Master bus at the right moments; it does not show they are the cues the game plays -- that is Q8, and authored/audio.json still carries the offsets as measured. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF --- docs/port/DECISIONS.md | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/docs/port/DECISIONS.md b/docs/port/DECISIONS.md index 02c926b5..0372315e 100644 --- a/docs/port/DECISIONS.md +++ b/docs/port/DECISIONS.md @@ -4123,3 +4123,50 @@ uncontrolled instrument, but a control chosen where it could not fail. fitted. A rotation about a declared pivot rather than the centre would displace by roughly that; if it still matters once the association is adopted, it gets measured rather than derived. + +## Re-running the P5/P6 gate after eight iterations of changes + +The leaf path, the plate pulse, the BGM level, the voice export, the focus fix +and a new diagnostic flag have all landed since the gate was last actually run. +The mission's test is *"a human presses a d-pad and Ⓐ and moves through those +screens"*, and I had been verifying pieces of that against captures without once +re-running the whole walk. + +**It works.** Nine steps, unattended: + +| step | | | +|---|---|---| +| ⬇ ×4 | `ptbtn01` → `ptbtn05` | focus moves, every frame drawn | +| Ⓐ | `EXTRAS` → screen `extras`, focus `ptbtn11` | | +| Ⓑ | back to `main_menu`, **focus restored to `ptbtn05`** | HANDOFF Q5's rule, live | +| ⬆, Ⓐ | `ptbtn04` `OPTIONS`, destination outside this archive | prints the gap rather than pretending | + +Filmstrip shared as `1788027380-788b1faafc3e`. Every shot is non-blank (frame +means 31.5–33.1). + +### The sound is verified by a null control, not by a detector + +I first tried an onset detector: count sharp level rises in the recording. It +found **one** onset in the walk — and **the same one** in the music bed alone, +which contains no cues. The 50 ms envelope cannot see a short cue over the bed. +⚠️ **The right response to a detector that cannot separate its control from its +subject is to stop using it**, not to widen the window until the numbers look +better. That is the shape this session has hit five times. + +So the same technique that settled the voice: shadow the three cues with silence +through `data/mods/`, run the identical walk, and compare. + +| | peak | RMS | +|---|---|---| +| walk, cues playing | **+0.0003 dBFS** | −18.36 | +| walk, cues silenced | **−4.74 dBFS** | −20.78 | + +**Silencing three sound effects costs 4.74 dB of peak and 2.43 dB of RMS**, and +the walk's peak is *set by* a cue rather than by the music. The mod log confirms +exactly three files shadowed. No detector, no threshold, and the control is the +same run with one input changed. + +⚠️ Recorded under the Dummy driver, as everything audio here is. It shows the +cues reach the Master bus at the right moments; it does not show they are the +cues the game plays — that is HANDOFF Q8, and `authored/audio.json` still carries +the offsets as measured rather than decoded.