warning: in the working copy of 'M3-PLAN.md', LF will be replaced by CRLF the next time Git touches it warning: in the working copy of 'docs/RELEASE-RUNBOOK.md', LF will be replaced by CRLF the next time Git touches it diff --git a/M3-PLAN.md b/M3-PLAN.md index 80ee6fa..8b543af 100644 --- a/M3-PLAN.md +++ b/M3-PLAN.md @@ -8,6 +8,12 @@ > flaky one. Vocabulary: `CONTEXT.md`. Gate: `pwsh scripts/gates.ps1` green with the M3 > requirements activated. +**Current release gate (after T4d/T4e):** the Helper window is TravelEar's only UI; the +in-game Offset-row tasks below are historical and superseded by T4d. Run 7's operator verdict: +word endings seem okay and loudness is okay, but reverb remains too wet and Local Voice sounds +over-processed/robotic. Before T4, complete a fresh bells/megaphone regression run and T4a's +measured reference capture, including diagnosis of that coloration; run 7 does not sign these off. + ## Scope In: T0 spike (what `LocalVoicePlayer`/`SelfEcho` already wire; whether the Sink should be fed @@ -414,6 +420,44 @@ Each is activated (`required_stages` set) in the commit that starts its task, pe over 8112 frames; 71 mixer floats seen, among them `VoicePitch`, `SuperWetPitch`, `SuperWet_Speechlessness` and `Voice_SuperWet`, all written by the game for the local listener — the inputs T4e needs. Follow-ups: T4d (the window), T4e (bells rows 9-10). +- **M3 run 7 — operator verdict recorded** (2026-09-10 12:45-14:29 local, + `logs\game-20260910-124528.log`; recovered during the DRI handover from lia). + **Reavo's ear:** word endings seem okay; loudness is okay; reverb is still too wet and needs + T4a's thorough parameter-matching pass. Local Voice sounds over-processed and robotic + compared with other players; the raw mic feed has no such issue. This accepts word endings + provisionally and loudness for this run, not overall fidelity. The robotic coloration is an + unresolved symptom, not yet attributed to reverb, codec, dynamics, pitch processing, or output + monitoring. T4a should retain the same signal's decoded `input.wav`, `local-voice.wav`, + and Switch listener capture to distinguish the processing delta from the peer reference; + a raw-mic recording of the same speech provides the operator's clean baseline. + Final stats: 101496 frames encoded = decoded, `errors 0`, encoder feed `dropped 0`, + `underruns 0`; Sink sent 101474 frames. Gate passed 40734 blocks and silenced 60762; + 34263 tail frames explain why the encoder feed's 74997 voice blocks exceed passed blocks. + Helper closed the pipe after 101474 frames and exited 0; its last stream counters were + 0 underruns, 40 starves, 18 trims (192960 samples), 0 dropped samples. These counters + establish transport observations, not an audible-continuity verdict. + Lia's whole-run scan reports Offset 167-168 ms, no `Offset row` lines, environment reverb + tracking room changes (examples: Room -173 mB / Decay 6.3 s and -370 mB / 1.4 s), + indoor gain 0.50-1.00, and limiter reduction 0.0 dB. Absence of row logging is consistent + with T4d, but neither the Helper caption nor either game's settings menu was visually + verified by this log. + **T4e and megaphone unexercised:** bell bloom openings 0, voice pitch 1.000, + speechlessness 0.00, megaphone broadcasts 0. No acceptance credit for either. + Lia's scan reports makeup 1.6-2.3 (about 4-7 dB) and pre-clip peaks no higher than 0.49; + final stats show makeup 1.91 / 5.6 dB and pre-clip peak 0.49. Run 6's wind-up was not + seen, and the operator found loudness okay in this run. Most gate blocks were silenced, + so this does not close the earlier wind-up question; T4a remains required for fidelity. + The scan also counted 1137 Dissonance DecoderPipeline + encoded-packet-write warnings and 216 very late packets amid network warnings. + Those messages originate in the game's playback/network stack; their cause and audible + impact are not established here. Game shutdown also logged Unity/EOS errors, distinct + from TravelEar's zero decode-error counter and the Helper's exit 0. + **Next operator run:** keep hold 450 ms, output trim -3 dB, fall reverb off, Sink + endpoint Aux Input. Check the Helper's Offset caption and absence of a TravelEar row + in both game settings menus; talk while approaching/leaving a red bell for pitch bend, + fade and dark wash; then hallway, big room, megaphone, and a loud sentence. Record the + ear verdict with the new session log and matching Helper interval. T4a uses the + PC-speaker / Switch-listener topology below, outdoors first as the relative reference. ### T4a — Reference capture (added 2026-09-09 after run 5) diff --git a/docs/RELEASE-RUNBOOK.md b/docs/RELEASE-RUNBOOK.md index 11c75cb..0bd9354 100644 --- a/docs/RELEASE-RUNBOOK.md +++ b/docs/RELEASE-RUNBOOK.md @@ -52,8 +52,9 @@ No signing; the published release is the final artifact. 7. **Fresh-install check**: extract the zip into a clean BepInEx install (or move the dev copies of `BepInEx\plugins\TravelEar` and `BepInEx\TravelEar.Helper` aside first), launch, - one solo run: Helper window appears, `Local Voice stats` and `Offset:` lines in the log, the - Settings > Audio row present. + one solo run: Helper window appears, `Local Voice stats` and `Offset:` lines in the log. + Confirm `TravelEar offset: N ms` appears in the Helper's status window after streaming; + TravelEar adds no Offset row in either the main-menu or pause-menu Settings > Audio. 8. **Docs**: nothing to publish. `docs-site/` ships in the repo and was verified by the gates. Thunderstore upload (manifest.json + icon + README) is a manual follow-up once v1 is stable.