22j: white-noise probe — real TF is flat (warp not output multiplier), reduction is contrast-driven; adaptive-twin lead

This commit is contained in:
2026-08-22 20:22:23 +03:00
parent bf8c12603c
commit dee3864c3c
2 changed files with 73 additions and 8 deletions
+36
View File
@@ -1659,3 +1659,39 @@ lvl_raw детектора перестаёт расти при эффектив
пиков) теряет ~x2.8. ПРИОРИТЕТ СДВИНУТ: чинить детекторный фронт (амплитудная
нормировка am, форма res_k, сила IIR1/2 вдоль частоты), а не форму кривой.
RT_LVL_CAP оставлен в коде как инструмент (opt-in, инертен при текущих уровнях).
## ============ UPDATE 2026-08-22j: WHITE-NOISE PROBE — архитектура расшифрована ============
Белошумный пробник через сатурированный конфиг (trim0 на шуме 6 dBFS RMS):
REAL (плагин): передача ПЛОСКАЯ −0.01…−1.65 dB на ВСЕХ частотах;
лёгкая вмятина −1.04 @678 (центр полосы), HF rolloff 1.5 @8k.
МОДЕЛЬ (canon): фейковый низкочастотный «пол» −24 дБ @50Гц от W=kBand768·kWarp·res^rp.
МОДЕЛЬ (NOWARP): форма совпала — плоско ~−2.1…−2.7, вмятина 4.45 @678.
### ВЫВОДЫ АРХИТЕКТУРЫ
1. W=warp НЕ является бланкетным множителем выхода: реальный плагин пропускает
широкополосный контент почти на unity ⇒ RT_NOWARP правилен по духу.
2. Реальный плагин режет СТАЦИОНАРНЫЙ ТОН на −20.72, но НЕ режет шум ⇒ редукция
управляется КОНТРАСТОМ бина к соседям/шумовому полу (смысл IIR1/2 вдоль частоты =
бегущий референс), а не абсолютным уровнем.
3. Без blend в выходе уровни ШУМА сходятся: real lvl≈+0.123 vs наш +0.098 (Δ0.02 окт);
уровни ТОНА: real 3.444 vs наш 3.012 (Δ0.43 окт = ×1.35 амплитуда) ⇒ расхождение
растёт с уровнем ⇒ подозрение на res_k (twin АДАПТИРУЕТСЯ к сигналу во времени,
res_k уменьшается при длительном тоне) либо am-нормировку при высоких уровнях.
4. blend(0.8) в нашей модели даёт фантомный −1.94 dB бланкет — в реальном выходе его нет;
exp2(lvl) без blend точнее описывает шумовой случай.
### Рабочая гипотеза цепочки (v22j)
lvl_raw[k,t] = am[k,t]/res_k(t)·scale (res_k(t) — адаптивный twin!)
lvl_ref[k,t] = IIR1/IIR2 вдоль ЧАСТОТЫ от lvl_raw (бегущий референс соседей)
редукция = f(lvl_raw lvl_ref или lvl_raw/lvl_ref) ← контраст
mask = exp2(−редукция) (без blend-бланкета)
sidechain-in clamp ±1.0 (колено/пин при 0 dBFS)
### NEXT
1. Декод FUN_18052d650/IIR1 семантики заново: аргументы (что есть x, что есть acc),
направление и КАК результат используется (референс vs сигнал).
2. Тест адаптивного twin: рендер тона разной ДЛИТЕЛЬНОСТИ (0.5/2/8 c) через мост —
если пол зависит от длины ⇒ res_k(t) адаптируется, взять динамику из NOTES_TWIN.
3. Формулы контраста перебрать офлайн на траекториях RT_DUMP_ALL (движок phaseA готов).