Repository navigation
#652: measure live display/monitor sync and reduce WASAPI latency - #655
Conversation
#652 measurement evidenceRepository/builds. Accepted beta Commands. In each isolated worktree, build with
Negative sign means audio lags video. One 60 fps frame is 16.67 ms. Beta/current A/B differ by just 2.8 ms on the synthetic monitor clap, so these runs do not reproduce the subjective regression between builds. They do isolate a large monitor delay that a passing Program.mp4 conceals. The candidate cuts that live delay by ~193 ms while keeping the recorded path inside 50 ms. Artifacts. Each evidence JSON includes all clap times, pair deltas, counter snapshots, selected monitor endpoint, loopback capture log, and its
Buffer experiments. GoXLR shared legacy mode negotiated an actual 44.5 ms endpoint buffer even when asked for 0 ms; 20 ms ring gave −53.2 ms live skew and 0/0 counters. A 10 ms ring gave −53.8 ms and 5 underruns, so it was reverted. GoXLR Checks. Release targets rebuilt. |
#652 live operator A/V sync
The same-run clap harness now compares Program shared-texture publish, GoXLR Game WASAPI loopback, and the recorded Program. A matched 24 s A/B at Program depth 2 found ~240 ms of live monitor lag on both accepted beta
db9e703and maind23dc9d5, while the recording was within ~20 ms. This points to the monitor path in the synthetic run; it does not establish why the later human report felt worse.The monitor adapter now requests the endpoint's low shared period through
IAudioClient3and holds a 20 ms ring target. On GoXLR the actual endpoint buffer fell to 22 ms. The final 24 s run measured video minus monitor audio at -46.2 ms (12.2 ms spread), video minus recorded audio at -33.4 ms (13.5 ms spread), with zero monitor underruns and zero lost samples. The harness fails if any of the three paths is missing or if live skew exceeds 50 ms.No Program delay, per-guest Zoom offset, ingest change, or SRT/NDI work.
docs/BACKLOG.mdlists #652 as unranked, awaiting real-human acceptance. Texture publish is measured rather than physical display scanout. Long-show drift remains to be validated because GoXLR's low-period stream does not exposeIAudioClockAdjustment.Detailed commands, SHAs, and artifact paths are in the first PR comment. Relates to #652.