docs: NOTES — IIR3 bidirectional decode, combine thunk semantics, Step 2 re-scope
This commit is contained in:
@@ -1221,3 +1221,35 @@ chain, not the bridge. comb stays OPEN (structural combine/acc, P4/P5).
|
||||
NEXT: step 3 wire combine_acc track into mask output (currently computed,
|
||||
discarded); step 4 FFT-conv 0x535a70 mask smoothing; then decode BandConfig
|
||||
ctx+0x188 writers to replace MULT placeholder with decomp value.
|
||||
|
||||
## ============ UPDATE 2026-08-21b: IIR3 bidirectional + combine semantics from raw decomp ============
|
||||
### IIR3 is BIDIRECTIONAL (corrects NOTES:830 "inline TWICE")
|
||||
- consumers_out.txt:955-1075: TWO [reset state 0x440510=0, forward pass, backward
|
||||
pass] pairs. State PERSISTS from forward into backward within a pair; reset
|
||||
between pairs. Operand order verified: y[i] = x[i]*B3[i] + state*A3[i]
|
||||
(A3@0x3c0510 multiplies STATE, B3@0x340510 multiplies x). Backward iterates
|
||||
nbin-2 .. 1 with descending coefficient index.
|
||||
- Wired into structural chain (commit 1a616e1); LUT_MULT retuned 4.4->4.2;
|
||||
smoke mean|err| 1.021 (vs 0.993 fwd-only — parity within noise, kept faithful).
|
||||
|
||||
### Combine block EXACT semantics (thunk-level, corrects both 20h and 20j notes)
|
||||
- 8d60 sub: args (acc=0x5407c8, mask=0x540678, dst=f6f8=0x5406f8), dst=3rd arg:
|
||||
f6f8[i] = mask[i] - acc[i] (acc NOT overwritten by sub; 20j was wrong)
|
||||
- mirror f6f8 (11940 x2)
|
||||
- 3c40 fma: f6f8_upper += kRTAtt*acc_upper ; f6f8_lower += kRTRel*acc_lower
|
||||
(dst = F6F8 halves, b = acc — 20h had this right)
|
||||
- 5a20: acc += mask (persistent per-band accumulator)
|
||||
|
||||
### CRITICAL SCOPE FINDING for Step 2 (combine wiring)
|
||||
- In the ONLINE single-band path (0x5408b8==0) the updated f6f8/acc have NO
|
||||
consumer inside FUN_180529fe0 before warp/IIR3/dry-wet: warp applies to
|
||||
band buffer directly, blend overwrites f6f8 next band/frame. Verified by
|
||||
exhaustive grep of consumers_out.txt (last 0x5406f8 use = offline branch).
|
||||
- => combine CANNOT close t1k/al single-band tails by itself; its effect must
|
||||
enter via (a) multiband combiner 0x5316e0 reading acc/f6f8 across bands, or
|
||||
(b) FFT-conv stage. Step 2 re-scoped: decode 0x5316e0 acc consumption FIRST,
|
||||
only then wire. Do NOT invent a track->mask feedback (would be empirical).
|
||||
- Online blend confirmed: f6f8 = freqaxis*(1-mix) + mix*fVar25(0.8) via
|
||||
6e40+15060 thunks, then bigkernel exp2 in-place on band (line 805-832).
|
||||
|
||||
### Commits: 9ffe60e (IIR3 fwd-only + retune), 1a616e1 (bidirectional + decode).
|
||||
|
||||
Reference in New Issue
Block a user