From e445abbdb703cd0ed407212102135ad9f046ca94 Mon Sep 17 00:00:00 2001 From: sylph-decoder Date: Mon, 31 Aug 2026 00:09:56 +0000 Subject: [PATCH] method: ask whether an instrument returns zero for no difference Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v --- docs/re/METHOD.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/re/METHOD.md b/docs/re/METHOD.md index 05c8401a..46565d3d 100644 --- a/docs/re/METHOD.md +++ b/docs/re/METHOD.md @@ -2670,3 +2670,33 @@ untouched copy and **passed a wrong contract**. a checked value** — and this one was created by the fix for a different navigation problem. Forward markers here now name their target by **date and subject** rather than reproducing its heading. + +## Before asking whether an instrument can measure a difference, ask whether it returns zero for no difference + +`sylpheed-port`'s rule, after three cheap tests disqualified a difference-signal +path of theirs: source against a **second decode of itself** reached −inf (the +pipeline was fine), but a **lossless** encode of the identical fold reached only +14.2 dB where it must reach ~90. **An instrument that cannot verify an encode known +to preserve every sample says nothing about a lossy one** — so every difference +number in that thread was an artefact of the lag search, not a measurement. + +✅ **Applied to my coherence estimator, which had never had the test.** Its +"positive control" was a *filtered* copy reading **0.94**, and I had taken that as +the ceiling. It is not: + +| | all bands | +|---|---| +| wave 0 **against itself** | **1.0000** | +| a linear filter, **no delay** | **1.0000** | +| the same filter **+ 12 ms delay** | 0.9288–0.9380 | + +The estimator is exact; the 0.94 was the **delay's windowing cost**. The +instrument passed, and the finding it supports got *stronger* — the real ceiling is +1.0, so the measured 0.027 sits further below it than I had claimed. + +📌 **A positive control that is merely "high" hides the difference between an exact +instrument and a lossy one.** Mine read 0.94 for two different reasons — a correct +estimator plus a windowed delay — and I could not have separated them without the +identity case. ⚠️ Note what this cost to find: **one line, no new data**, and it +was available from the day the tool was written. Their equivalent test cost one +decode and no encoder, and they say the same thing about it.