Matiq
c85b888745
Δ-rule: wire distance-aware template-local gain (calibration blocked on ph*.npz)
...
- delta_gain(bin, kfc, nbin, dist_factor): 1 + (|bin-kfc|/nbin)*RT_DELTA_DIST
— template-local (farther peaks → deeper cut), dip width const
- delta_mark now stores per-bin gain (was flat 0/1); applied as dm*vlaw_delta
- Default RT_DELTA_DIST=0 → identity (no regression)
- Gated: bridge 1.594, structural 2.689 unchanged; unit checks PASS
- Calibration of dist_factor and STATE-dependence blocked on ph*.npz capture
(BLOCKMAP:285 — mask chain runs at load time, wine DR EIO)
2026-09-02 23:50:19 +03:00
Matiq
a881ee280a
AGENTS.md: add vlaw_check to test target list
2026-09-02 23:20:29 +03:00
Matiq
2f854cd1da
spectral: vectors instead of new[]; vlaw: extract law + vlaw_check target
...
- spectral.cpp: window_/buf_/tmp_buf_/fir_buf_/fir_freq_ as std::vector (no
exception-leak in ctor, destructor = default)
- framed_model.hpp: extract vlaw_cut/vlaw_mask inline (BLOCKMAP:314 softplus)
- dsp/vlaw_check.cpp: unit test for law (monotonic, zero-level, delta, ref,
comb-neutral) — PASS
- CMake: add vlaw_check target
- Guard: corpus --compare d=+0.000, fn529fe0_check PASS, twin_check PASS
2026-09-02 23:19:34 +03:00
Matiq
e4c53480ad
audit fixes: dead conditional, DBG_CASC gate, dup loop, fft comments, blend doc
...
- framed_model: remove `if (pool_w > 0 && !lut_off == false) {}` (empty body)
- framed_model: gate DBG_CASC fprintf behind RT_DBG_CASC (was per-frame spam)
- framed_model: document f6f8 blend 0.8 (decomp 0x5406f8, xmm10 @1824c3e28)
- framed_model: assert(spectrum != nullptr) in processFrame
- spectral: remove duplicate upper-half zero loop in buildFirFromMask
- fft: comment scaling difference (1/N canonical vs 2/half plugin convention)
- Guard: bridge corpus --compare d=+0.000 (exact parity)
2026-09-02 22:37:09 +03:00
Matiq
197f5edea4
k-mapping: dedup to k_mapping_factor helper, add RT_KMAP_FC
...
- Extract k_sens (linear 6->0.44, exp 12->22.0) + k_q log-interp 0.5->1.0 2.0->0.403 into helper
- Replace duplicate blocks for lvl_in/raw_level with single call
- Add k_fc=1.0 + opt-in RT_KMAP_FC via W_eq (gated)
- Gates: bridge 1.594, structural 2.689 (RT_KMAP=1 same, no regression)
2026-09-02 21:50:38 +03:00
Matiq
b41d7a40cb
chain: wire IIR4 generator (RT_IIR4_GEN) + add chain smoke test
...
- iir4_bidir: env-gated generate_iir4_coefs (C/tau/p/mult/sr) vs proxy kIIR
- fix exp sign: up=exp(-c*g*tau/mult) → down=1-up in 0..1 (was Inf)
- fn529fe0_check: chain_9_19 smoke + generate_iir4 smoke (down0=1 up0=0 ok)
- Gates: bridge 1.594, structural 2.689 (RT_CASC=0) unchanged
2026-09-02 21:38:44 +03:00
Matiq
f2cc0aeaa9
recalibrate: continuous per-fc lerp + additive sens for VLAW (task #1 staged)
...
- 800-1200 q<1: lerp 5.0/0.4→4.5/0.35 vs discrete 5.0/4.5/4.0 (block 283-287)
- sens: additive offset (6→-0.48, 24→+0.5) vs overwrite erasing fc choice
- Verified: bridge 1.594 unchanged, structural 2.689 stable (requires campaign.py per-fc fit for <0.5)
- Gated RT_CASC=0, no regression
2026-09-02 20:25:12 +03:00
Matiq
2201a57ffa
docs: update structural baseline 0.341 -> 2.689, document chain gated
...
- README: status 2026-09-02 chain919, bridge 1.594 canon, structural 2.689 (L/R e343b0a , RT_CASC=0), hist 0.341 unreachable
- prd.md: sync status, build table, current status 7 with RT_CASC 0/1 columns
- Chain 9-19 blocked on ph*.npz/live-dump (BLOCKMAP:285)
2026-09-02 20:13:15 +03:00
Matiq
96816f9921
chain_9_19: add IIR4 generator (FUN_180533340) + integrate in audio path
...
- Add generate_iir4_coefs() — frequency-dependent warp coefficients from BLOCKMAP:135-150
- Integrate chain_9_19 in process_band_structural via RT_CASC=1 env gate
- chain_9_19 now runs full pipeline: LOG#1→DIVIDE→dc40→FMA→EXP#1→track→warp→LOG#2→IIR4×2→FIR→EXP#2
- IIR4×2 uses double precision (movsd/mulsd per disasm)
- FIR min-phase (52b3cd) enabled
- Canon bridge 1.594 unchanged when RT_CASC=0
- Requires live-dump or ph*.npz capture for input format calibration
2026-09-02 18:25:14 +03:00
Matiq
2a295af6f3
chain_9_19: integrate into audio path with RT_CASC env gate
...
- Pass track_[b] from FramedDetector to process_band_structural
- chain_9_19 called when RT_CASC=1, otherwise identity (warp path)
- Uses unity track (calibrated via live-dump)
- Canon bridge 1.594 unchanged
- Requires calibration of input format for structural chain
2026-09-02 18:12:10 +03:00
Matiq
9ed22d3476
chain_9_19: enable IIR4×2 (double precision) + FIR min-phase. fix haar test
...
- chain_9_19: add track parameter, enable iir4_bidir_340510 and fir_min_phase_52b3cd
- iir4_bidir_340510: use double precision (movsd/mulsd per disasm)
- Fix haar_one_pass test: boundary = 0.5*(a[n-2]+a[n-1]) = 8.0 not 8.5
- All fn529fe0_check tests PASS
- Canon bridge 1.594 unchanged (chain gated by RT_CASC env)
2026-09-02 18:05:14 +03:00
Matiq
e343b0a0d0
prd.md: project requirements document. render48k L/R stereo baseline
...
- Add prd.md (293 lines): project overview, repo structure, build system, DSP architecture, env flags, corpus, status, references
- render48k: current L/R stereo version, TOTAL 2.835 (requires parameter tuning vs canonical 0.341 VLAW dual-solution)
2026-09-02 17:42:51 +03:00
Matiq
e9d6f2ca72
render48k: stereo/M/S support (decode, link=100%, balance, depth, mix). TOTAL 2.46 (needs parameter tuning vs plugin reference)
2026-09-02 16:43:21 +03:00
Matiq
59fcb7eb56
wine_ptrace_trace: add chain breakpoints + live-dump chain I/O (DIV confirmed: input is VLAW output 0-17.6, tmp6f8 ~0.8)
2026-08-31 01:05:28 +03:00
Matiq
9d10169157
revert chain_9_19 to working 0.314 baseline. document chain I/O unknown as blocker
2026-08-31 00:29:08 +03:00
Matiq
c23646d74f
revert chain_9_19 integration: architectural mismatch (single-shot vs block-based ACC). keep 0.314 baseline
2026-08-31 00:13:05 +03:00
Matiq
d80137c31d
chain_9_19: accVec iteration update, fmt cleanup
2026-08-30 23:23:31 +03:00
Matiq
281f4079c2
VLAW: compact per-fc/sens params (no lambda), comb early-return, keep 0.314
2026-08-30 23:21:12 +03:00
Matiq
22ff0e3ee9
VLAW: compact per-fc/sens params (no lambda), comb early-return, keep 0.314
2026-08-30 22:24:05 +03:00
Matiq
c393b6f6be
C6 LUT CAP -13.78/68/0.344 -> -24/28/1 live 180563a60 24z, keep 0.314
2026-08-30 18:19:23 +03:00
Matiq
7b479f5357
B1/B2: ACC table double-deref 5407c8 + chain_9_19_sim op-by-op (BLOCKMAP 620-644)
2026-08-30 18:07:15 +03:00
Matiq
359aaeb7cb
baseline 0.314 live q0.80022 FIR enabled (was 0.341)
2026-08-30 16:38:04 +03:00
Matiq
a208d1b27e
q live verified 0.80022 1820013f0 via ptrace, keep FIR enabled TOTAL 0.314
2026-08-30 16:33:38 +03:00
Matiq
a8191d4bc9
FIR: enable by default (q0.80022), TOTAL 0.314 keep, ptrace EXP/DF0 live confirmed
2026-08-30 16:23:18 +03:00
Matiq
6bf2363c1a
DIVIDE poly: fix truncated poly_0 0.207*8 -> 9 coeff 0.207/-0.241/0.288/-0.36/0.48/0.24/0.055, Q 0.80022
2026-08-30 16:05:32 +03:00
Matiq
8fbbb66e3c
q: refine 0.80 -> 0.80022 from .rdata 1820013f0, RT_FIR_Q env, keep TOTAL 0.314
2026-08-30 15:59:40 +03:00
Matiq
4411e617a6
tune t1kq_800 5.0/0.4, TOTAL 0.314 max1.03 (was 0.324)
2026-08-30 15:12:03 +03:00
Matiq
6f32b26d6a
tune per-fc VLAW t1kq_1200 4.5/0.35, TOTAL 0.324 max1.03 (was 0.341 max1.17)
2026-08-30 14:12:27 +03:00
Matiq
d88e8ab7bf
FIR via FFT RFFT fast + FMA half-split exposed, keep TOTAL 0.341 (q0.80 gated)
2026-08-29 21:33:54 +03:00
Matiq
1d6c5a4355
FIR min-phase 52b3cd RFFT gated RT_FIR + FMA ATT/REL half-split, keep TOTAL 0.341
2026-08-29 20:13:38 +03:00
Matiq
c7d6fde2dc
I: IIR4 bidir 52af09 kIIR_A1/B1 A2/B2 wired, keep TOTAL 0.341
2026-08-29 18:23:59 +03:00
Matiq
e39c97e014
chain LOG#1/2 140980 logf, keep TOTAL 0.341
2026-08-29 17:30:18 +03:00
Matiq
a7e1a661bd
divide 1803a06a0 proxy + expf bit-exact, keep TOTAL 0.341 chain
2026-08-29 17:28:03 +03:00
Matiq
9311e7397f
B: wire real kWarp/kRTAtt/kRTRel into chain_9_19, keep TOTAL 0.341
2026-08-29 16:46:55 +03:00
Matiq
85317ed674
A: expf fmaf 180296c80 + rt_div_tables vpermps dump
2026-08-29 16:12:03 +03:00
Matiq
5e8c3d8af4
wire chain_9_19 RT_CASC_CHAIN gate, keep TOTAL 0.341
2026-08-29 16:06:07 +03:00
Matiq
d025fa5a23
cascade 1c: chain_9_19 skeleton DIVIDE/FMA/EXP proxy, ready for vpermps/poly
2026-08-29 15:31:59 +03:00
Matiq
04c51e5be0
cascade_sim 1b: exact exp/div stubs for C++ port, keep structural proxy
2026-08-29 15:31:01 +03:00
Matiq
ab9334f8ab
baseline: VLAW+EQ 0.341 as new canon (was 1.594 bridge)
2026-08-29 15:11:19 +03:00
Matiq
031f7d21af
k-mapping 2: RBJ peaking EQ for W_eq, keep per-fc, TOTAL 0.341
2026-08-29 15:10:24 +03:00
Matiq
69a6809a80
docs: promote VLAW+EQ 0.341 to new canon, next 2. k-mapping
2026-08-29 15:08:40 +03:00
Matiq
d7089c62fc
docs: VLAW+EQ TOTAL 0.341, EQ before detector, per-fc still needed
2026-08-29 14:29:05 +03:00
Matiq
f40f41ef71
EQ before detector: W(f) bell via RBJ, TOTAL 0.341 max 1.17
...
- eq_bell H=1/sqrt(1+(1.54*q^1.33*A)^2), W=10^(sens*H*eq_gain/12/20), eq_gain 0.3
- applied to lvl_in/raw_level in lvl calc (not am state) per pipeline_ocr
- RT_EQ default 1 (was 0), per-fc VLAW hacks remain but reduced need
- TOTAL 0.341 vs 0.365 without EQ, vs 1.594 bridge
2026-08-29 14:24:11 +03:00
Matiq
f3e11d410a
tune per-fc VLAW: t1k_800 4.0/0.4, t1kq_800 4.5/0.4, TOTAL 0.365 max 1.27
2026-08-29 14:01:12 +03:00
Matiq
8aa25b36a8
tune VLAW per-fc: comb 0.05/5.0, t1k_500 4.5/0.35, t1k_1200 4.0/0.4, TOTAL 0.391
2026-08-29 13:18:31 +03:00
Matiq
968e90e65f
docs: VLAW TOTAL 0.568 dual 0.193, content-aware dual vs res
2026-08-29 12:59:52 +03:00
Matiq
5e9c41ad2b
fix dual q1.0 misclass: content-aware VLAW, TOTAL 0.568 dual 0.193
...
- dual fc500 q1.0 was misclassed as res (5.0/0.3) causing -7.45/4.29 errors
- add has_second_peak + maxlvl>2.0 guard to force dual law 3.22/0.49 for 2-tone content
- res_500 stays 0.006, dual_1.0 now 0.05/0.24, TOTAL 0.568 vs bridge 1.594
- keeps RT_KMAP/RT_DELTA_STATE opt-in off, VLAW canon now 0.568
2026-08-29 12:42:56 +03:00
Matiq
746b51c047
k-mapping fix: apply to raw_level VLAW path, keep opt-in default off
...
- KMAP now applied to both lvl_in and raw_level (VLAW uses raw_level directly)
- KMAP default 0, VLAW canon TOTAL 0.732 (vs 1.523 when enabled — table k over-corrects, needs campaign fit)
- RT_DELTA_STATE placeholder no-op pending live STATE capture (24ii2/24ii3 g=12.15 vs 1.85)
- Keeps bridge 1.594 < VLAW 0.732 canon, dual max 7.457 outlier remains for q=large
2026-08-29 12:18:07 +03:00
Matiq
803c100091
k-mapping opt-in RT_KMAP, keep canon 0.732
...
- k(sens,q) fitted from 24x table: sens 6->0.44 12->1.0 24->22, q 0.5->1.0 2.0->0.403
- default off (RT_KMAP=0), opt-in for campaign; does not affect canon TOTAL 0.732
- next: campaign sens/q series for precise fit, Δ STATE-dependent
2026-08-29 10:36:41 +03:00
Matiq
febda55234
wip: twin floor hook RT_TWIN_FLOOR, keep canon 0.732
...
- twin floor 0.153 per NOTES 24dd is sens-dependent, default off (env opt-in)
- keeps VLAW TOTAL 0.732 vs bridge 1.594, dual 0.714 (vs 0.193 claim was with corrupted ref)
- next: k-mapping sens/q via campaign.py
2026-08-29 10:18:17 +03:00