docs: NOTES — Pchip LUT fix + comb diagnosis (level-dependent, not multiband)

This commit is contained in:
2026-08-21 00:34:18 +03:00
parent e5e9700333
commit 8e4e40b25a
+23
View File
@@ -1114,3 +1114,26 @@ framework — produces correct transform, but NOT bit-exact to the plugin DSP-FF
giant (FUN_18002f980 recursion + per-log2 factor tables) remain unwired. This is the
multi-week gap (roadmap P3), required only for byte-parity of the FFT-conv path; the
bridge renderer does not depend on it.
## ============ UPDATE 2026-08-21: FIX — restore Pchip LUT (revert 12094f8) + comb diagnosis ============
### FIX (commit e5e9700): revert parametric LUT regression.
12094f8 replaced the empirical Pchip LUT (framed_model) with the parametric linear
form (CAP_A_LEVEL=-24/B=28/gamma=1). With gamma=1 that reduces to IDENTITY on
xv=log10(am/res), breaking the whole mask chain: t1kq fc-scan err jumped +7.9 dB.
Re-instated lut_pchip: t1kq mean|err| 0.226 (was 7.9). Confirms NOTES:1060 F1 closure
(no parametric set beats Pchip at fixed bridge params). lut_parametric helper + CAP_
consts remain in framed_model.hpp as live-capture reference (currently unused).
### 24-bit metric loader CHECK
render_parity.py:43 already uses correct 24->64-bit sign extension (x>=0x800000 =>
x-0x1000000), NOT the buggy OR-0xFF000000. Repo metric harness is correct; an earlier
symptom of ~50 dB phantom ref levels was an artifact of a scratch loader, not the repo.
### COMB DIAGNOSIS (biggest open gap, mean 10 dB / max 14.7)
comb.wav tones are at ~-25.6 dBFS (500/1000/1500/2000/3000). comb_ref reduce = +0.02 dB
= soothe2 lets ALL tones pass ~unity on this input. Our model over-cuts -7..-15 dB.
=> NOT a multiband-combine problem; it is LEVEL-dependent: at input ~-25.6 dBFS with
band sens 2.24 for two of four bands, real reducer output is ~neutral, ours still cuts.
Likely the bridge LUT/level_scale is calibrated on the al_* fit levels, not on this
low/wide band config. Same class as the known low-level over-cut (al lv18/24, NOTES:964).
Next: calibrate level_scale per input level / verify sens enters the level path correctly.