diff --git a/docs/re/audio-capture-alsa-file-tee.md b/docs/re/audio-capture-alsa-file-tee.md index f41ef21a..64842ef1 100644 --- a/docs/re/audio-capture-alsa-file-tee.md +++ b/docs/re/audio-capture-alsa-file-tee.md @@ -131,6 +131,45 @@ clean capture.** At 9.98 % / 8.37 gaps/s it sits right on the port's "≥10 % silent *and* ≥1 gap/s" fail bar. **Do not treat it as an oracle without saying which side of that line it fell on.** +## ✅ SOLVED — `--gpu=null` removes the residual, and the capture is clean + +The residual padding was the guest running at **0.70× real time**, and the +dominant load is **llvmpipe software rendering** — which an *audio* capture does +not need at all. + +| configuration | silence | gaps/s | +|---|---|---| +| PulseAudio monitor, xenia default | 39.3 % | 30.5 | +| ALSA tee → paced slave, rendered (llvmpipe) | 9.98 % | 8.37 | +| **ALSA tee → paced slave, `--gpu=null`** | **0.31 %** | **0.01** | + +**One gap in 67.7 s.** Six distinct channels, no duplicates, peaks −5.15 / −4.55 +/ −4.47 / −11.65 / −6.73 / −6.40 dBFS. For scale, the port's *genuine music bed* +control measures 1.1 % silence at 3.3 gaps/s — **this capture is cleaner than +their known-good reference.** + +✅ **Control that the run is still comparable:** `ADV`'s three XMA contexts +(1 294 336 / 1 118 208 / 1 171 456) appear in the `--gpu=null` log, so the +movie's voice is decoding exactly as in a rendered boot. That is also better +provenance for an *audio* question than screenshots were — it evidences the thing +being recorded rather than what was on screen. + +### The full working recipe + +```bash +MAP=front-left,front-right,front-center,lfe,rear-left,rear-right +pactl load-module module-null-sink sink_name=cap channels=6 channel_map=$MAP +# asound.conf: NO include; tee in front of a PACED slave +# pcm.!default { type file slave.pcm { type pulse } file "…" format raw } +ALSA_CONFIG_PATH=…/asound.conf PULSE_SINK=cap \ + run-canary --apu=alsa --mute=false --gpu=null … +ffmpeg -f f32le -ar 48000 -ac 6 -i capture.raw out.wav # float32, not s16 +``` + +⚠️ `--gpu=null` means **no video**, so screen-based provenance is unavailable — +use the XMA probe instead. And it is only appropriate when the question is about +audio; it changes what the guest is doing. + ## Consequences for verification 🔴 **Short file becomes the failure mode**, so a capture check needs an