From d43bbfe66bde767c79e1d90d317ca9bacffbee7d Mon Sep 17 00:00:00 2001 From: Matiq Date: Sat, 22 Aug 2026 19:51:56 +0300 Subject: [PATCH] =?UTF-8?q?22i:=20RT=5FLVL=5FCAP=20inert=20(model=20post-I?= =?UTF-8?q?IR=20levels=20~1.06=20<<=20cap)=20=E2=80=94=20gap=20relocated?= =?UTF-8?q?=20to=20detector=20front-end=20amplitude=20chain?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dsp/framed_model.cpp | 8 ++++++++ handoff/NOTES_LEVEL.md | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/dsp/framed_model.cpp b/dsp/framed_model.cpp index 142a1ae..773e4dc 100644 --- a/dsp/framed_model.cpp +++ b/dsp/framed_model.cpp @@ -123,6 +123,14 @@ static void process_band_structural( fn529fe0::iir1(band_level.data(), kIIR_A2, kIIR_B2, nbin, 0.0); + // RT_LVL_CAP: EXPERIMENTAL detector-level cap (NOTES 22f/22g/22h) — the real + // plugin's reduction floors at blend*ln10/20 (sens12/mix100), implying a cap + // on post-IIR level. Opt-in; default off (canon untouched). + static const float lvl_cap = getenv("RT_LVL_CAP") ? atof(getenv("RT_LVL_CAP")) : 1e9f; + for (size_t k = 0; k < nbin; k++) { + if (band_level[k] > lvl_cap) band_level[k] = lvl_cap; + } + for (size_t k = 0; k < half; k++) { band_level[nfft - 1 - k] = band_level[k]; } diff --git a/handoff/NOTES_LEVEL.md b/handoff/NOTES_LEVEL.md index 1a6b7b4..60d564b 100644 --- a/handoff/NOTES_LEVEL.md +++ b/handoff/NOTES_LEVEL.md @@ -1648,3 +1648,14 @@ lvl_raw детектора перестаёт расти при эффектив 1. Декод FUN_18052d650 (IIR1) + leveltrack-путь на предмет ограничителя am. 2. Картирование F(sens,depth) сеткой 4×4 через мост (~30 мин рендеров) → фит. 3. Порт эмпирического пола в структурную цепь (env-параметризованный), корпус с гейтом. + +## ============ UPDATE 2026-08-22i: RT_LVL_CAP ИНЕРТЕН — разрыв в детекторном фронте ============ + +Порт капа пост-IIR уровня (RT_LVL_CAP env в process_band_structural, после IIR2): +корпус с cap=3.119 и 2.798 ДАЛ ТОЧНО БАЗОВЫЕ ЧИСЛА (TOTAL 2.286) — кап не связывается, +т.к. пост-IIR уровни модели максимум ~1.06 (lvl_raw 3.01 разводится IIR1 A[85]≈0.65). +⇒ Модели не ХВАТАЕТ уровня, а не лишний: реальный плагин доводит пост-IIR lvl до 3.12 +(пол), наш детекторный фронт (am/res/scale нормировка + IIR-сглаживание изолированных +пиков) теряет ~x2.8. ПРИОРИТЕТ СДВИНУТ: чинить детекторный фронт (амплитудная +нормировка am, форма res_k, сила IIR1/2 вдоль частоты), а не форму кривой. +RT_LVL_CAP оставлен в коде как инструмент (opt-in, инертен при текущих уровнях).