Matiq
34156315e6
22v: full block map of FUN_180529fe0 from raw asm — 4 bidir-IIR states, per-band acc array [0x5407c8+i*16] confirmed (21b semantics), ILT thunk table resolved; coefficient generator decoded (530b60 + 533340): frequency-warped one-pole g=fc/i below crossover — the real mask smearing mechanism; full disasm f529fe0_full.dis (old was truncated at 52a813)
2026-08-23 16:47:51 +03:00
Matiq
79c11dc220
22u: raw-asm re-decode of FUN_180529fe0 — multiband pre-combine inside method, per-band scale->kernel->2x bidir-double-IIR (52d650 fully decoded, per-bin double coefs), band-state arrays 0x540768[i]/0x5407a8[i]; 0x5407c8 acc has NO runtime reader (21b addr wrong); offline bidir-IIR smoothing hypothesis REFUTED (monotonic degradation)
2026-08-23 15:53:58 +03:00
Matiq
376bd955c9
22t: two-factor laws REFUTED by descent (quad Q->0, resrp rp->0 — geometry already in lvl=am/res); real render of sim-optimum 7.6/1.694 = 1.898 with group regressions, canon stays; error budget: dual = 62% of corpus abs-error -> inter-band acc/f6f8 consumer is priority #1
2026-08-23 15:10:06 +03:00
Matiq
3857205a6b
22s: offline law-fit infra (full replay sim, 2s/corpus) — NO single affine (A,S) exists even on pure tones; family slopes 0.85-2.19, global LSQ resid 0.60 dB structured by rms/fc-dist; scalar law saturated ~1.87-1.93, canon stays HEAD
2026-08-23 14:36:27 +03:00
Matiq
3b9158e63e
22r: affine dB law (RT_LAWAFFINE) ported onto bare chain — TOTAL 1.931 beats canon 2.286; A=7.4/S=1.85 best, tradeoffs mapped
2026-08-23 11:01:42 +03:00
Matiq
d160acaa27
22q: dual diagnosis — twin-divisor contrast refuted (real cuts both tones equally), saturating dB-curve hypothesis; pair-collection plan
2026-08-23 10:39:24 +03:00
Matiq
0aeedde019
22p: joint-fit grid — floor essential (without: corpus x2), optimum scale=0.90 TOTAL 5.215, comb beats canon first time; canon stays HEAD
2026-08-23 09:48:17 +03:00
Matiq
d4e8d055c6
22o: RT_ENV=live (live-table envelope) — noise TF better, corpus neutral; new-arch best 5.386 vs canon 2.286; joint fit next
2026-08-23 03:52:12 +03:00
Matiq
0861a64387
22n: live ctx found (0x2370048, scalars config-dependent!), slow detector adaptation discovered (gain deepens over ~seconds, kRTrel tau~2s)
2026-08-22 22:33:16 +03:00
Matiq
709d8ce227
22m: user hypotheses tested — gamma!=delta (E1), BandConfig stable under depth/delta (E3), no level-path refs in SpectralProcessor methods (E4)
2026-08-22 21:56:46 +03:00
Matiq
98a35e8648
22l: pool5+scale1.144+floor hits tone floor -20.74 (real -20.72); corpus 5.9 — params need systematic fit; canon untouched
2026-08-22 21:33:31 +03:00
Matiq
355ce828f4
22k: bare exp2 chain CONFIRMED on white-noise probe; remaining tone gap = detector level scale x1.14
2026-08-22 20:58:18 +03:00
Matiq
dee3864c3c
22j: white-noise probe — real TF is flat (warp not output multiplier), reduction is contrast-driven; adaptive-twin lead
2026-08-22 20:22:23 +03:00
Matiq
bf8c12603c
readme: sync to 22i — P5 status, floor blend*ln10/20, Step 7 refuted, detector front-end priority, new tooling
2026-08-22 20:02:11 +03:00
Matiq
d43bbfe66b
22i: RT_LVL_CAP inert (model post-IIR levels ~1.06 << cap) — gap relocated to detector front-end amplitude chain
2026-08-22 19:51:56 +03:00
Matiq
94383b15d3
22h: floor law mapped — floor_dB(sens)=20log10(ln10/20)-(sens-6)/3, depth shifts too; exact anchor sens6=ln10/20
2026-08-22 19:46:22 +03:00
Matiq
ef7d3f49c7
22g: NO-LUT test isolates gap to detector front-end; unified sidechain-clamp hypothesis (knee at 0dBFS, identical renders above)
2026-08-22 19:39:22 +03:00
Matiq
41b0d3c250
22f: floor discrimination via param bridge — dry/wet crossfade confirmed, floors=k*ln10/20, detector-cap hypothesis leads
2026-08-22 19:10:50 +03:00
Matiq
7febe744e9
plan: sync to 22e — Step 7 refuted, floor blend*ln10/20 solved, new priority Step 9 (floor mechanism)
2026-08-22 18:59:04 +03:00
Matiq
3970c1e309
22e: floor algebra solved — gain_floor=20log10(blend*ln10/20), matches -20.72dB within 0.006dB; lead FUN_180529c60
2026-08-22 18:54:48 +03:00
Matiq
9c14a74318
docs: 22d — hard gain floor -20.72dB mapped (t-clamp live confirmation); cold/hot discrepancy open
2026-08-22 18:40:13 +03:00
Matiq
f5ef81667c
bench: official param bridge (setparam/dump_params.lua) + rpp_setparam format tool; 22c — XML params decorative, depth=+-18dB, trim=+-24dB, reduction curves measured
2026-08-22 18:28:54 +03:00
Matiq
7fac8b2a4f
step7: live BandConfig capture infra + FUN_180563a60 decode — GUI-only, audio path refutes premise (22b)
2026-08-22 15:28:01 +03:00
Matiq
c222e054ca
docs: Phase B recovery — 4 offline detector hypotheses refuted; scripts into scripts/
2026-08-22 12:55:02 +03:00
Matiq
71644ff3e6
fix(render48k): chunk-scan WAV loader — hdr[40] is not data size when bext/junk present
2026-08-22 10:59:26 +03:00
Matiq
3e5085e06d
phase A: reduction law found (affine in dB), canon unchanged; keep RT_DUMP tooling
...
- Effective reduction is affine in dB(lvl): x_exp2 = -0.6646 - 0.05877*dB
(mask ~ 0.8*lvl^-0.354, gamma ~= decomp 0.344); tones +-0.13 dB over 42 dB
- Pre-IIR calibrated variant (X0=1.8/S=0.11): TOTAL 2.633 vs HEAD 2.286;
wins t1kq/t1k/al/comb, loses res/dual -> gate fails, canon stays LUT
- Grid search (X0,S,floor,CMAX) on validated trajectory model: no scalar
law of the family fits tone+noise simultaneously (res tension)
- Refuted: high-bin/IIR3-backward propagation, direct-affine bypass,
positive floors, ceilings
- Kept opt-in instrumentation RT_DUMP_BIN / RT_DUMP_ALL for Step 7 capture
- Docs: NOTES_LEVEL 21d, BITEXACT_PLAN s.0 note, roadmap, AGENTS
2026-08-21 19:29:21 +03:00
Matiq
702b74e297
docs: sync BITEXACT_PLAN/roadmap/AGENTS to 2026-08-21 state
...
BITEXACT_PLAN: structural column in S0 table; Step 2 re-scoped (combine
thunk semantics, acc has no single-band consumer; FUN_1805316e0 is a
coefficient writer NOT a mask combiner — fixed in Steps 2/8); Step 4
FFT-conv downgraded to P3 (window near-flat); Step 6 pipeline done
(render48k); entry point = saturation hunt then Step 7 capture.
roadmap: status 2026-08-21, P4 row + ~80% estimate with dual-canon results.
AGENTS: two-canon model description, render48k/corpus_structural commands,
stale-binary sweep hazard warning, updated gaps list.
2026-08-21 13:54:06 +03:00
Matiq
b2cb9235be
feat(scripts): structural-path full-corpus harness + first honest 62-case numbers
...
corpus_structural.py drives render48k (48k/4096 structural chain) across the
full corpus with bridge-compare mode. Results: comb 6.12 vs bridge 10.15
(structural wins multiband already), res better, single-band worse; dual@500
constant -6.7dB q-independent over-cut exposes missing reduction saturation.
Param sweep (gamma x MULT, verified builds) confirms current optimum; curve
SHAPE is the gap -> Step 7 capture or bigkernel input re-examination.
2026-08-21 13:12:53 +03:00
Matiq
a9d5581ad8
docs: NOTES — IIR3 bidirectional decode, combine thunk semantics, Step 2 re-scope
2026-08-21 12:55:23 +03:00
Matiq
1a616e1b7b
feat(dsp): IIR3 bidirectional per decomp (fwd+bwd x2), combine semantics decoded
...
Decomp (consumers_out.txt:955-1075): IIR3 = TWO [reset,forward,backward]
pairs, state persists fwd->bwd; y = B3*x + A3*state. Replaces 2x forward.
Combine block decoded from thunks: f6f8 = mask - acc (8d60, dst=3rd arg);
f6f8 += kRTAtt/kRTRel * acc (halves); acc += mask (5a20). KEY FINDING:
in online single-band path acc/f6f8 have NO consumer before warp/dry-wet
- combine affects output only via multiband/FFT-conv stages (Step 2 scope
narrowed). LUT_MULT retuned 4.4 -> 4.2. Smoke mean|err| 0.993 -> 1.021
(faithful transcription kept over tuned fwd-only). Checks PASS, guard PASS.
2026-08-21 12:54:46 +03:00
Matiq
9ffe60e66e
feat(dsp): wire IIR3 x2 (kIIR_A3/B3) post-warp into structural chain
...
Step 9 of NOTES_LEVEL:820-840 mono-path (was missing; roadmap claimed it).
Light spatial mask smoothing, upper half re-mirrored. LUT_MULT retuned
3.8 -> 4.4 for the shifted calibration. Smoke (48k/4096): mean|err|
1.093 -> 0.993 (t1kq -1.06, t1k +1.66, al12 -0.26). Module checks PASS,
corpus --compare bridge baseline PASS.
2026-08-21 12:45:36 +03:00
Matiq
7a108c529a
docs: NOTES_LEVEL update — LUT level-domain discovery, sweep tooling hazard
2026-08-21 12:36:35 +03:00
Matiq
535b150f75
feat(dsp): move dB-LUT to level domain (pre-IIR/exp2) in structural chain
...
Mask-domain LUT clamps t<0 on loud input (t1k mask_dB < A=-13.78) causing
-24dB over-cut. Level-domain keeps quiet/loud inside [A,B] domain:
t1k err -24.04 -> +2.45 dB (3-case smoke: mean|err| 8.2 -> 1.09).
Params: gamma=0.344 (decomp-extracted), mult=3.8 (placeholder, empirical).
Module checks pass; corpus (bridge path) unchanged at 1.594.
2026-08-21 12:35:57 +03:00
Matiq
9b7e9d3099
feat(dsp): add dB-domain LUT (FUN_180563a60) to structural chain on 48k grid
...
- Add BandConfig A/B/gamma LUT compression (extracted from refs: A=-13.78dB, B=68.29dB, gamma=0.344)
- Add res^rp smoothing term for bridge-parity (RP0=0.0275, DRP=0.2159)
- Calibrate scale_factor to match bridge gain at tone bin (15.0 * 440.95 / 2048 = 3.23)
- Structural 48k: -26.81 dB vs ref -27.23 dB (err +0.426 dB)
- Bridge baseline: intact (0.000 dB degradation)
- All module checks PASS (fn529fe0, exp2, twin, tables, leveltrack, levelpath, fftconv)
2026-08-21 09:25:17 +03:00
Matiq
6924e539e0
feat(dsp): render48k pipeline + structural chain on 48000/4096 grid
...
- render48k: resample 44100→48000, process via SpectralProcessor(4096,1024,48000),
resample 44100, write 24-bit stereo WAV
- FramedDetector: structural chain (fn529fe0 sequence) runs on 48000/4096 grid,
bridge path unchanged for 44100/2048
- Structural chain: scale→IIR1→copy→IIR2→mirror→blend→exp2→combine→warp→dry/wet
using live tables (kIIR_A1/B1, kIIR_A2/B2, kBand768, kWarp, kRTAtt/kRTRel)
- Bridge baseline intact (0.000 dB degradation)
- 48k tone test: -20.73 dB vs ref -27.23 dB (6.5 dB error, scale factor not yet
calibrated to match bridge domain)
2026-08-21 04:46:51 +03:00
Matiq
7659eb0362
feat(dsp): SpectralProcessor sample_rate param
2026-08-21 01:32:50 +03:00
Matiq
7bf5a4a80c
feat(dsp): structural FUN_180529fe0 chain components + fn529fe0_check (step 1, module 1)
2026-08-21 01:09:36 +03:00
Matiq
fa71240d92
test: add validation harness (scripts/corpus.py + bridge baseline) to prevent Phase B regression
2026-08-21 01:06:05 +03:00
Matiq
f17ee78061
docs: BITEXACT_PLAN — 8-step path to byte-parity; fix repo docs to reflect not-yet-bit-exact status
2026-08-21 01:00:41 +03:00
Matiq
e990c21e94
fix: framed_test parse every comma band (was first-arg only); comb tests were single-band
2026-08-21 00:52:44 +03:00
Matiq
b333f6828f
docs: NOTES — verified comb params (neg sens, multi-mode); comb needs combine/acc, not params
2026-08-21 00:42:32 +03:00
Matiq
8e4e40b25a
docs: NOTES — Pchip LUT fix + comb diagnosis (level-dependent, not multiband)
2026-08-21 00:34:18 +03:00
Matiq
e5e9700333
fix: restore pchip LUT in framed_model (revert 12094f8 regression)
...
12094f8 replaced the empirical Pchip LUT with the parametric
linear form (CAP_A_LEVEL=-24/B=28/gamma=1). With gamma=1 the
parametric form reduces to identity on xv=log10(am/res), which
breaks the whole mask chain (t1kq fc-scan err jumps to ~7.9 dB).
Re-instating lut_pchip restores the honest baseline:
t1kq mean|err| 0.226 dB (was 7.9). Confirms NOTES_LEVEL F1
closure: no parametric LUT set beats Pchip at fixed bridge
params; the structural A/B/gamma (level-path ctx+0x188) is the
only real path to bytes, not this parametric substitution.
2026-08-21 00:32:39 +03:00
Matiq
12094f8119
Replace empirical Pchip LUT with parametric form from live DSP capture
2026-08-20 23:08:04 +03:00
Matiq
16853d7e0b
Integrate live-captured A/B/gamma params into framed_model; add CAP_ constants and parametric LUT helper
2026-08-20 22:59:21 +03:00
Matiq
2d69b85aa3
P5: NOTES — F5c DSP-FFT 0x140a70 status (P3 confirmed unwired; all check targets PASS)
...
Full dsp/ check sweep green. fft.cpp = numerical radix-2 (std::cos) not bit-exact
0x140a70; split-radix butterfly + plan-gen giant + sin-table loader remain (multi-week
P3). Required only for FFT-conv byte-parity, not for the bridge renderer.
2026-08-20 21:09:28 +03:00
Matiq
d802ee7aed
P5: F5b — exp2 0x26b820 assets extracted bit-exact + numeric fallback exp2_dsp
...
Extracted the 8x16 irrational tables + lead-in -708.4xx series from soothe_mem.bin
into exp2_tables.{hpp,cpp} (P3 bit-exact inputs). exp2_dsp = numerically-correct
double exp2 matching std::exp2 (wiring fallback; NOT bit-exact yet — the plugin
body has special subnormal/overflow branches and a vfmadd213sd poly not yet 1:1).
exp2_check: 2e6-grid PASS (0 cells >1e-13).
2026-08-20 21:07:30 +03:00
Matiq
4e9c1b1ed7
P4: F4 geometry test — internal 48000/4096 does NOT close residual (0.68 vs 1.00); all structural adaptations rejected
...
Tested internal-geometry (48000/4096 + resample) — worse. Combined with earlier
negative results (parametric LUT x6, FFT-conv window, combine acc), every structural
adaptation is rejected. Bridge (Pchip 0.774) = empirical ceiling. Bytes require live
A/B/gamma capture or bit-exact exp2/FFT kernels.
2026-08-20 20:54:05 +03:00
Matiq
fa1ef205df
P4: F2 structural wiring tests — combine+FFT-conv naive wiring both regress (doc only)
...
Wiring FFT-conv step5 (mask*=win) gives mean 5.2, combine/acc (att/rel from kRTAtt/
kRTRel) gives 4.7 vs base 0.75-0.80 on representative subset. Both belong to the
exp2(mask) structural chain (blend 0.8 + bigkernel) NOT the fitted bridge final-gain.
No code change; bridge + Pchip stays canonical (0.773).
2026-08-20 20:52:00 +03:00
Matiq
1cfe013939
P4: bench all existing parametric LUT sets on full honest corpus — Pchip remains best (0.773)
...
All previously-derived parametric LUT forms (u563a60 A=-13.78/68.29/0.344, lut5/
lut4 gamma-LUT, power-law, linear 0.483/0.717, real extracted points) tested on the
full 59-case honest 24-bit metric within one fixed bridge pipeline. None beat the
committed Pchip (0.773; worst powerlaw 6.8). F1 closed: parametric curve production
was already done, none accepted; structural A/B/gamma from ctx+0x188 remains the only
path to bytes (blocked on level-path object live capture).
2026-08-20 20:44:20 +03:00