23e: law closed quantitatively — FIR=exp(0.984*scratch) pointwise; real/FIR cut ratio constant 1.80 across configs and bins (linear post-scale, EMPIRICAL until conv-stage decoded); center independence of q proven live (scratch43 -0.6565 vs -0.6551); skirt shift matches within 3% (1.46 vs 1.50 dB)
This commit is contained in:
@@ -2327,3 +2327,30 @@ CONT, дамп rcx/rdx на хите (скрипт fnall.py готов, нуже
|
||||
4. reaper.ini: alsa_outdev/indev=null прописаны (бэкап /tmp/opencode/reaper.ini.bak)
|
||||
— realtime колбек всё равно не ожил (cpu 0.2 t/s), вопрос закрыт в пользу
|
||||
render-snap метода.
|
||||
|
||||
## ============ UPDATE 2026-08-23i (23e): ЗАКОН СОШЁСЯ КОЛИЧЕСТВЕННО ============
|
||||
|
||||
Серия rendersnap: dual_b1q_0.5 + dual_b1q_3.0 (стационарные фазы).
|
||||
1. **FIR = exp(0.984·scratch)** поточечно (коэф идентичен @43/@171) ⇒ ops
|
||||
между log и exp — скалярный раундтрип, никакой межбиновой магии в самих ops.
|
||||
2. **real_cut / FIR_cut = 1.798–1.810 константа** по всем 4 точкам
|
||||
(q0.5: 5.70/6.58 FIR против 10.32/11.82 real; q3.0: 5.69/5.76 против
|
||||
10.29/10.32). Между кернелом и слышимым применением — ЛИНЕЙНЫЙ масштаб
|
||||
~1.805 в дБ-домене (кандидат: двойное применение/нормировка conv-стадии;
|
||||
залочить при декоде потребителя, до тех пор EMPIRICAL-константа).
|
||||
3. **Центр не зависит от q живьём**: scratch43 = −0.6565(q0.5) vs −0.6551(q3)
|
||||
при том, что сырой bands[] мигает от 0.3 до 382 (детекторные IIR дают
|
||||
стационар). Скайрт: Δscratch171(q3−q0.5)=+0.0937 ln ⇒ ×0.984×1.805 =
|
||||
**+1.46 дБ** против реального Δ=1.50 дБ — сходится в пределах 3%.
|
||||
4. Структура механизма окончательно: mask_log(f) = G(log(am_frame(f)), res_band(f));
|
||||
кернел = exp(mask_log) c падающим Hann-окном на [n/2..n); применение =
|
||||
свёртка × масштаб 1.805. Это УЖЕ наша каноническая структура am/res — но
|
||||
вход амплитуды берётся из спектра кадра напрямую (не через наш lvl-тракт),
|
||||
и применение — FIR-свёртка, а не поточечное умножение STFT.
|
||||
### NEXT (конкретика)
|
||||
1. Восстановить точную зависимость scratch(band, res): прогнать q-серию
|
||||
{0.1,0.2,...,10} + am-серию, аппроксимировать G (ожидаем линейность в логах
|
||||
вида −k·ln(am/res)+c, k≈0.984·?): две точки уже дают k_skyрт согласован.
|
||||
2. Найти источник масштаба 1.805 (декод потребителя FIR: кто читает 0x540668).
|
||||
3. Транскрипция RT_FIRCONV=1: bands=STFT-спектр кадра → scratch=G(...) →
|
||||
kernel=exp·HannWin → rfft-свёртка overlap-add → гейт корпуса.
|
||||
|
||||
Reference in New Issue
Block a user