# Is this container's AUDIO clock real time? -- 2026-08-30 # # WHY: ui-keyframe-time-unit.md reads "the game presents at 27.6 fps" off frame # counts over wall-clock windows on one container. A guest running ~92 % of real # time produces the same numbers, and three trials sharing a container cannot # separate the two. sylpheed-port raised the general form of this after finding # their own box takes 146.6 s of wall clock for 137.44 s of media (+6.7 %) on a # 720p Theora decode, and warned that cross-agent timing must go through media # length rather than wall clock. # # THE REFERENCE, and it is media-derived, not wall-clock derived: # BGM_103's loop bounds are BIT offsets in the XMA decoder context # (menu-bgm-loop-fields-conflict.md), and each wave's duration follows from its # own declared byte rate on the disc, cross-checked against the decoded PCM # (4 211 729 frames / 48 000 Hz = 87.744 s, 0.007 % from the declared 87.75). # # ctx bits/s declared cycle bits media s wall s wall/media # 0 353470 22,034,741 62.34 61.87 0.9925 # 1 358325 22,677,193 63.29 61.87 0.9776 # # ⚠️ THE METHOD'S OWN ERROR BAR IS 1.5 %. The two stems are sample-synchronous and # must have equal duration; the linear bits->seconds conversion gives 62.34 and # 63.29, disagreeing by 1.5 %. That is the precision available here, and it is why # menu-bgm-loop-fields-conflict.md refused this conversion for the loop question. # It is good enough for THIS question, which is about a 8.5 % effect. # # ✅ RESULT: wall/media = 0.985 +- 0.015. # A uniform 8.5 % slowdown predicts 1.085. The measurement is 10 % away from # that AND ON THE OTHER SIDE OF 1.0 -- wall clock is if anything SHORTER than # media, not longer. A container running the whole guest slow is REFUTED. # # 🔴 WHAT THIS DOES **NOT** SETTLE, and it is the part that matters. # This bounds the AUDIO clock. On a box with no GPU, audio can hold real time on # a timer while RENDERING lags -- so it does not follow that the frame clock is # real time, and every number the doubt was raised about (27.6 fps, the 8.5 % # splash excess) is a FRAME-clock number. # # What it does establish is that the two clocks can be COMPARED: if the frame # clock ran 8.5 % slow while audio did not, a UI animation's wall-clock period # would exceed its declared period in a run whose audio rate is nominal. That is # a single-capture measurement, and it is what frame_vs_audio_clock.py does.