P4: full decomp FUN_18052e260 frame driver (twin side-chain per band, LUT+mask+FFT-conv run per drained frame); wire order documented

This commit is contained in:
2026-08-20 09:28:12 +03:00
parent a6126d10ac
commit 45dfe2b8c2
+13
View File
@@ -706,6 +706,19 @@ Previously-cold roots now present: 180529fe0 (2051in), 180563440, 180563ce0 (IIR
Uses full-STFT frame budget 0x2404d8; tail marks bands needing rebuild (0x240467 flags).
- => 52e260 = per-frame dual-band SIDE-CHAIN driver; twin = per-band.
### FULL decomp FUN_18052e260 (decomp_funs2.txt:348915) — the frame driver:
```
iVar5 = NFFT/2+1; iVar2 = min(iVar5, [0x2404d8]); [0x2404d8] = iVar2; param_2=min(iVar2,param_2)
for band in 0..[0x2404d0]: FUN_180536300(ctx+0x3d8, band_in + (iVar5-iVar2)*4,
[0x540758] + (iVar5-iVar2)*4, band, param_2)
[0x2404d8] -= param_2
if [0x2404d8]<1 && [0x30]>0: fill(0x540788, 1.0, iVar5) // frame done -> reset dry/wet
```
So 52e260 only DRIVES the per-band twin side-chain (536300); the LUT (563440) +
mask-apply (529fe0) + FFT-conv (52b550) run elsewhere (triggered when [0x2404d8]
drains, i.e. per STFT frame). Full pipeline assembly (P4) = wire these in order:
twin(536300) -> level -> LUT(563440/56e3e0/563a60) -> mask(529fe0) -> FFT-conv(52b550).
### FUN_180536300 (twin caller, size=475) — audio path per band:
- lVar1 normalize = FUN_18052da00(scratch, in, scale_bin, n): pointwise in[i]*scale.
- band active (0x814): twin kernel FUN_180535880/180536f90(lVar2, base, band_i, lVar1, n),