P4: Phase B — framed_model re-transcribed to the confirmed chain (NOTES:199-226)
Fixes structural divergences: IIR1 into shared 0x5406f8 buffer + bridge to band mask (FUN_18052d650, 0x5160); IIR2 on band mask; Hermitian mirror (0x11940); blend step f6f8=axis(1-mix)+mix*0.8, mask=exp2(-mask)*f6f8; real combine via kRTAtt/kRTRel weights (0x5406c8/6e8); warp, IIR3x2, dry/wet. Validation: t1kq only1 fc1000 -21.1 vs -22.1 (OK); fc-scan shape intact; dual @500 matches (s30 -51.5 vs -53.7), @2000 gap -4..-13 vs -29.6 remains. That gap = dB-domain band LUT (FUN_180563a60) not yet in chain -> Phase A.
This commit is contained in:
@@ -923,3 +923,28 @@ swept 800..1200, refs t1kq_only1_<fc> = true single-band) tracks the reference s
|
||||
Remaining under-cut off-center: real soothe reduces ~16-22 dB broadly across
|
||||
800-1200 while model narrows; candidate = FFT-conv smoothing + warp + q shape.
|
||||
DEFAULT level_scale for am/res path ~= 35-45 (was 600 for the wrong am*res path).
|
||||
|
||||
## ============ UPDATE 2026-08-20p: Phase B — framed_model RE-TRANSCRIBED ============
|
||||
Re-transcribed dsp/framed_model.cpp per confirmed chain (NOTES:199-226, source
|
||||
/tmp/consumers_out.txt:638-1111). Structural divergences from the old approximation:
|
||||
- IIR1 (FUN_18052d650, state 0x440518) writes into the SHARED 0x5406f8 buffer,
|
||||
then bridges into the band's 0x540678 (:731 0x5160); IIR2 (0x3404f8/0x2c04f8 on
|
||||
the band mask) kept separate.
|
||||
- mirror 0x11940: upper half = reversed lower (Hermitian), full-nfft scratch.
|
||||
- blend step: f6f8 = 0x540698·(1−mix) + mix·0.8; mask = exp2(−mask)·f6f8. C_AXIS=1.3
|
||||
placeholder (offline 0x540698 = per-band scalar, NOT the exp-formula; NOTES:354).
|
||||
- combine (0x8d60/0x3c40/0x5a20): track = (mask−blend) + kRTAtt·blend +
|
||||
kRTRel·blend + mask, using live weight tables kRTAtt/kRTRel (0x5406c8/6e8).
|
||||
- warp (0x540768·0x5406a8), IIR3 (A3/B3)x2, dry/wet identity.
|
||||
|
||||
VALIDATION (scale sweep):
|
||||
- DUAL (band fc=500, tones 500+2000 at −7.23 dBFS): ref @500 −53.7/@2000 −29.6.
|
||||
model @500 matches over scale (s30 −51.5, s42 −58.1); @2000 stuck ~−4..−13 (way
|
||||
short). The DAZING far-field reduction (reduce 2000 by −29.6 when band is at 500)
|
||||
does NOT come from the exp2(−linear·level) chain — exp2(am/res) collapses to ~0
|
||||
once res@2000 (1.344) ≫ res@500 (0.1175).
|
||||
- T1KQ only1 fc1000: −21.1 vs ref −22.1 (OK). fc-scan shape intact.
|
||||
=> Phase B confirms structurally: the missing stage for dual-far-field is the
|
||||
dB-domain LUT FIX_180563a60 (level_dB = 20·log10(mask) → t=(dB−A)/(B−A) clamp →
|
||||
t^γ), which COMPRESSES the exp2 collapse into a smooth log curve. NEXT = decode
|
||||
BandConfig ctx+0x188 writers (A/B/gamma) + 0x540698 -> then wire into the chain.
|
||||
|
||||
Reference in New Issue
Block a user