re: a per-channel level check is blind to remap corruption, by construction
The port made this point while building a checker for the channel-map trap, and it refutes a sentence in my own write-up. In the known-bad control all six channels report a peak of -18.063656 dB, identical to six decimals, while the file contains three duplicate pairs. Equal tone amplitudes make the peak table uniform however the channels are permuted or duplicated; on real content the peaks simply differ from one another, which looks equally healthy. The table is uninformative either way. So "the WAV has plausible per-channel levels" was not weak evidence that a capture was sound, it was none, and this page implied otherwise. The per-channel peak table is the natural thing to eyeball after a capture and it cannot see this failure at all. What detects it is hashing each channel. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsEPXWVaEpyfudtR6re1Pd
This commit is contained in:
@@ -49,6 +49,25 @@ map given to `parec` explicitly:
|
||||
|
||||
No duplicates. **CONTROL PASSED.**
|
||||
|
||||
## 🔴 And a LEVEL CHECK cannot see this failure — by construction
|
||||
|
||||
The port made this point while building a checker for it, and it refutes
|
||||
something written above.
|
||||
|
||||
In the known-bad control, **all six channels report a peak of −18.063656 dB,
|
||||
identical to six decimals, while the file contains three duplicate pairs.** Equal
|
||||
tone amplitudes make the peak table uniform no matter how the channels are
|
||||
permuted or duplicated — and on *real* content the peaks simply differ from each
|
||||
other, which looks equally healthy. Either way the table is uninformative.
|
||||
|
||||
⚠️ So "the WAV has plausible per-channel levels" was not weak evidence that the
|
||||
capture was sound; it was **no** evidence, and this page said otherwise. The
|
||||
per-channel peak table is the natural thing to eyeball after a capture and it is
|
||||
**blind to remap corruption**. What detects it is hashing each channel and
|
||||
comparing — the port's `tools/port/check-capture`, controlled in both directions
|
||||
(six distinct tones → PASS; this page's known-bad pattern → FAIL naming all four
|
||||
pairs; the withdrawn capture → FAIL on `ch2 == ch5`).
|
||||
|
||||
## The rule
|
||||
|
||||
⚠️ **A null sink whose `channel_map` differs from the client's makes PulseAudio
|
||||
|
||||
Reference in New Issue
Block a user