From 45dfe2b8c21bfa089776183954aadef10ef32fce Mon Sep 17 00:00:00 2001 From: Matiq Date: Thu, 20 Aug 2026 09:28:12 +0300 Subject: [PATCH] P4: full decomp FUN_18052e260 frame driver (twin side-chain per band, LUT+mask+FFT-conv run per drained frame); wire order documented --- handoff/NOTES_LEVEL.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/handoff/NOTES_LEVEL.md b/handoff/NOTES_LEVEL.md index 05fc695..96eeed9 100644 --- a/handoff/NOTES_LEVEL.md +++ b/handoff/NOTES_LEVEL.md @@ -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),