diff --git a/handoff/BLOCKMAP_529fe0.md b/handoff/BLOCKMAP_529fe0.md index 1d01779..18697c7 100644 --- a/handoff/BLOCKMAP_529fe0.md +++ b/handoff/BLOCKMAP_529fe0.md @@ -358,3 +358,26 @@ c=1/(1+g*tau/mult); up=exp(...); down=1-up. Эксперимент: одноразовый bidir с этими коэф. НЕ двигает центр кривой ⇒ q-зависимость катов не через эти IIR напрямую; тракт между main-loop и scratch содержит ещё этапы (ops A–D / steps 9–19 BLOCKMAP). + +## ДОПОЛНЕНИЕ 24z: FUN_180563a60 ДЕКОДИРОВАН ПОЛНОСТЬЮ — ЭТО ДЕТЕКТОРНАЯ LUT-ФОРМА! + +Постройка (на каждый банд, 1024 точки, вход double[+0x4198+i·8], +выход пары-floats в вектор [+0xe0], stride вектора 0x18): +``` +dB = log(input) · 8.68589 +idx = i / 1024 → store[2j] +t = (dB − A) / (B − A) ; A=[sub+0], B=[sub+4] (sub=obj@[rcx+0x180]) +t = clamp(t, 0, 1) +если γ(=[sub+0xc]) ≠ 1: + если [sub+0x10]==0: out = t^γ (классика) + иначе : out = sign(2t−1)·|2t−1|^γ + 1 (симметричный режим!) +else: out = t +out *= 0.5 → store[2j+1] +``` +Виртуальная альтернатива: [sub+0x90]!=0 → вызов [sub vtbl+0x10](A,B,dB) +с клампом [0,1]. +⇒ ЭТО ТА САМАЯ ФОРМА, ЧТО ДАЛА ФИТ cut=LUT(A,B,γ,M)! Стадия компрессии +уровня найдена материально: A/B/γ живут в объекте [band+0x180], +заполняются сеттерами. Осталось: снять их live-значения для наших конфигов +(расширить scalar-dump на [ctx+0x180]-объект) и найти потребителя таблицы +(интерполятор dB→out) в аудио-тракте.