23b: mask->FIR chain decoded — DESIGN body is vectorized LOG2 of band curve (poly fingerprinted), WIN_freq identified as periodic Hann(4096) falling half applied to FIR[n/2..n), full ILT stub->impl table resolved offline (ilt_resolve.py), live buffer catalog extended (SIMD lane masks at 0x540598, complex identity reset between callbacks, overlap buffer at 0x5406f8 non-zero), plugin output proven nondeterministic across renders (LCG dither) — spectral metrics only; ptrace lab scripts + lessons (TRACECLONE before CONT, sub-second host lifecycle under -renderproject)
This commit is contained in:
@@ -2224,3 +2224,50 @@ dual НЕ в пост-обработке кривой R.
|
||||
0x1802a24c0 (3КБ AVX2) и complex-op шагов с буферами 0x540548/550/598 — следующий
|
||||
статический шаг; альтернатива — трассировка промежуточных буферов живьём
|
||||
(снапшоты в момент аудио-колбека, не между кадрами).
|
||||
|
||||
## ============ UPDATE 2026-08-23g (23b): ДИЗАЙН=LOG(band), Hann-окно, PRNG-дизеринг ============
|
||||
|
||||
### Что доказано декодом (детали в BLOCKMAP 23b)
|
||||
1. Полная цепь построения FIR на полосу залочена по raw asm (52b550–52b8bb):
|
||||
scalar-shape ×2 → **DESIGN: scratch=log(bands[i])** (векторный log2, полином
|
||||
идентифицирован по константам, тело 0x1802a24c0) → copy→FIR@0x540668 →
|
||||
4 комплекс-op (A..D) на буферах 0x540548(SIMD/twiddle-workspace)/0x540598
|
||||
(YMM-маски 8×1/8×0×64) вокруг нормировки &FIR[1]÷K и bigkernel →
|
||||
**FIR[2048..4095] ×= Hann_freq[2048..4095]** (падающая половина периодического
|
||||
Hann(4096), пик ровно на стыке!) → FIR[0]=1,FIR[1]=0 → dry/wet над 2n флоатами.
|
||||
Структура log→ops→exp-класс + окно = классический frequency-sampling /
|
||||
минимально-фазовый дизайн кернела. Гипотеза механизма скайрта: геометрия
|
||||
задаётся ОКНОМ и комплекс-ops на log-спектре, а не постобработкой R.
|
||||
2. WIN_freq опознан численно (w[1024]=0.5,w[2048]=1.0) — прежняя трактовка
|
||||
«0.5→0.8» относилась к другому слоту (0x540698).
|
||||
3. freqaxis: шаг 11.71303 vs точные 11.71875 — накопительная f32-ошибка построения;
|
||||
сетка внутренняя 48k/4096 подтверждена независимо.
|
||||
4. Выход плагина недетерминирован от рендера к рендеру (md5 разные, rms равные) —
|
||||
LCG-прологи реально дизерят; честная метрика только спектральная.
|
||||
|
||||
### Динамика: почему живые кривые «статичны»
|
||||
Realtime-playback без аудио-девайса НЕ вызывает processing (все треды спят);
|
||||
кривые 22y — продукт инициализации проекта. `-renderproject` прожимает весь
|
||||
цикл за ~0.8 c (init+render+exit); перехват требует SEIZE+TRACECLONE ДО первого
|
||||
CONT главного треда. FUN_180529fe0/52d650/536300/52e260 не ловятся в рендер-окне
|
||||
⇒ маск-цепь выполняется при загрузке/param-change, рендер использует кэш.
|
||||
Следующий динамический шаг (если понадобится): bp на входе process-callback vtbl
|
||||
или трасса окна init (поймать DESIGN в момент param-change).
|
||||
|
||||
### Инструментарий этого раунда (закommичено)
|
||||
scripts/ilt_resolve.py (резолв стабов офлайн), scripts/firtrace.py (полный каталог
|
||||
буферов + GUI-флаг 0x2404bc), scripts/firstop.py (SIGSTOP-семплирование),
|
||||
fntrace*.py/fnhw.py/fnall.py (ptrace-лаборатория: INT3/DR, уроки — см. BLOCKMAP),
|
||||
hotips.py. .dis тела: conv_float_a24c0, conv_double_fa420, imp_*, th_* (19 impl).
|
||||
|
||||
### Контрольные числа dual (цель раунда, неизменны)
|
||||
cut@500=10.32 дБ const ∀q; @2000=11.82 @q=0.5; Δcut≈2.25·(−ln res).
|
||||
Модель сейчас: −0.18/@500-ок + провал скайрта.
|
||||
|
||||
### NEXT (пересмотр после декода)
|
||||
1. numpy-реплика цепи log→opsA-D→window с КАЛИБРОВКОЙ ops по измеренным H(f)
|
||||
(корпус референсов уже есть); критерий — воспроизведение Δcut(res) геометрии.
|
||||
2. Если ops A-D ≈ exp-раундтрип со сглаживанием: транскрипция за RT_FIRCONV,
|
||||
гейт corpus --vs-bridge + контрольные числа dual.
|
||||
3. ptrace-эскалация ТОЛЬКО если численная репликация не сойдётся: цель —
|
||||
брейкпоинт в момент param-change (init-окно хоста), а не рендер.
|
||||
|
||||
Reference in New Issue
Block a user