docs: exact structural LUT curve formulas (FUN_180563440 linear/power-law), consts from PE; roadmap Q1 static side closed

This commit is contained in:
2026-08-19 20:45:45 +03:00
parent 2484829452
commit 02dd6e8aa7
+18
View File
@@ -622,3 +622,21 @@ Previously-cold roots now present: 180529fe0 (2051in), 180563440, 180563ce0 (IIR
object; not yet located. Registry gives per-bin WEIGHTS (done) — attack/release remain static-only. object; not yet located. Registry gives per-bin WEIGHTS (done) — attack/release remain static-only.
- Registry dump + all raw tables saved: /tmp/rtcapt/registry.txt, /tmp/rtcapt/*.f32. - Registry dump + all raw tables saved: /tmp/rtcapt/registry.txt, /tmp/rtcapt/*.f32.
- Scripts captured into repo: rtsnap_fast.py (snapshot), findctx.py (locate), rtchunk.py (chunked IO). - Scripts captured into repo: rtsnap_fast.py (snapshot), findctx.py (locate), rtchunk.py (chunked IO).
## ============ 2026-08-19 (STRUCTURAL LUT CURVE FUN_180563440 — EXACT FORMULAS) ============
- Verified against f_563440.dis + PE constants 0x1824c3c54=0.0009775171(=1/1023? 1/0x3ff),
0x1824c3ea4=1.0, 0x1824c41e0=2.0, 0x1824c4680=-1.0, 0x1824c3d8c=0.5, 0x1824c4f10=0x7fff.. (double |x| mask).
- Loop: 0x400 iterations (0..0x3ff), x = i*(1/1023)? const 0.0009775171 = 1/1023 → last bin x≈1.0.
(prior note said 1/1024 scale — corrected: constant value is 1/1023.)
- Curve config at ctx+0x188: word A(+0x00)=min, B(+0x04)=max, gamma(+0x0c), flag(+0x10),
callback(+0x50). Output written as double to ctx+0x198[i*8] (0x400 doubles).
- **Linear path (flag 0x10==0, 0x563595)**: t = x; if gamma!=1.0 and x>0: t = exp(log(x)/gamma);
val = A + (B-A)*t. (A=min of output, B=max).
- **Power-law path (flag!=0, 0x5635cd)**: t = 2x-1 (centered -1..1); if gamma!=1.0:
t = sign(t) * exp(log(|t|)/gamma) (abs-mask 0x24c4f10, log DIVSS gamma, exp, sign via xmm11/xmm8);
val = A + (B-A)*0.5*(1+t). When gamma=1.0 → val = A + (B-A)*x (identity linear).
- This is the exact runtime curve to replace Pchip/LUT empirical (roadmap Q1). Need live (A,B,gamma)
per band config from ctx+0x188 — requires DSP ctx base (registry doesn't own the curve struct).
- Level-tracker IIR (FUN_180563ce0) INIT confirmed: 341 bins x2?, state rows at +0x28/+0x40/+0x58
init [1,0,0,0]/[-1,0,0,0], level coeff 0.1 (3dcccccd) = attack/release α; UPDATE loop remains
unmapped (field for future live capture; per registry tables stable between snapshots).