P2: level-tracker UPDATE-loop located (inline bidirectional IIR in FUN_180529fe0), structural module leveltrack (iir_first_order/bidirectional/unrolled4); scalar==unrolled verified; remaining = live A[] coeffs

This commit is contained in:
2026-08-19 23:53:01 +03:00
parent cff28a605c
commit 433a0026e6
5 changed files with 116 additions and 1 deletions
+17 -1
View File
@@ -534,7 +534,23 @@ getFunctionContaining(0x52ac64) and has the complete per-band loop + FFT-conv).
### Next: (1) hammer the residual -0.6 dB on dual 500Hz cases (structural); (2) multi-band combos (band>=2); (3) C++ port.
## ============ 2026-08-19 (continuation): LEVEL-PATH DECOMPILED — FUN_180563440 + FUN_180563ce0 ============
## ============ UPDATE 2026-08-19f: LEVEL-TRACKER UPDATE-LOOP LOCATED (structural) ============
The UPDATE loop is NOT a separate function — it is the inline bidirectional IIR smoothing
inside FUN_180529fe0 per-band loop (consumers_out.txt). Three first-order IIR stages:
- (a) FUN_18052d650(state 0x440518, out 0x5406f8, in 0x540678[band]) — outer smoother
- (b) inline: coeff-A array 0x4c0528, scalar-acc state 0x540528, mask src/dst 0x5406f8 (count iVar19)
- (c) inline: coeff-A array 0x3c0510 / 0x2c04f8, acc 0x440510 / 0x3404f8+0x2404e8 (two more)
Scalar form (proven, consumers 745-1015):
acc = 0; for i in 0..N-1: y = x[i]*A[i] + acc; acc = y; x[i] = (float)y
i.e. cumulative leaky-integrator over A[i] (running-acc coefficient). Vector variant does 4/iter.
=> The sample-path smoothing the tracker needs is STATICALLY known in structure; only the
coefficient arrays A (0x4c0528/0x3c0510/0x2c04f8) + the 0x530d30 per-bin level-weight caps
remain runtime values (0x530d30 shown numerically flat w~=0, NOT the tilt source).
Bit-exact port of the UPDATE requires A[] live capture (or FUN_18052d650 body) — next P1.5-ish.
Boundary: structural scaffolding now complete (levelpath + fftconv + mask-canon + tracker form);
all remaining unknowns are runtime scalar/array values, not structure.
## ============ 2026-08-19 continuation: LEVEL-PATH DECOMPILED — FUN_180563440 + FUN_180563ce0 ============
### FUN_180563440 (dsp/levelpath.cpp dump, f_563440.dis 222 lines) — LUT curve + twin-mask + combine
Three-phase per-frame structure: