Silence-based gap instruments are bounded by the content's own quiet seam; establish the floor with a sample-exact Web Audio reference + offline PCM before optimizing player machinery.
When instrumenting gapless-playback machinery (MSE stitches, native video loop, etc.) by detecting silence runs at the loop junction, the measurement is bounded below by the CONTENT: quiet passages at the seam read as 'gap' even in a mathematically perfect loop. We chased a ~40ms 'MSE junction gap' through appendWindow and sequence-mode changes that moved nothing — because ~35ms of it was the music itself (verified two ways: an AudioBufferSourceNode loop, which is sample-exact by construction, measured the same ~31ms; and offline PCM analysis of tail+head concatenated across the seam showed a 35ms sub-threshold run). After fixing the content (A/V-equal re-encode moving the seam to louder material, floor 0.1ms), the same instrument cleanly separated the variants: appendWindow cost 10ms, overlap-append got to 3ms, audio sequence-mode was counterproductive (+13ms, it chains at coded length including AAC final-frame padding), and the Web Audio buffer loop measured exactly the floor. Method: (1) build a sample-exact reference player (decodeAudioData + AudioBufferSourceNode loop with loopEnd at the marked duration, NOT buffer.duration — decoded PCM carries AAC end padding); (2) compute the offline floor by concatenating tail+head PCM across the loop point and measuring the longest sub-threshold run; (3) report player gap MINUS floor. Also: a differing seam POSITION changes the floor — players that wrap at different stream ends (mismatched A/V track durations) are not comparable.