• Joined on 2026-03-13
Matiq pushed to main at Matiq/soothe2-re 2026-08-21 00:42:33 +03:00
b333f6828f docs: NOTES — verified comb params (neg sens, multi-mode); comb needs combine/acc, not params
Matiq pushed to main at Matiq/soothe2-re 2026-08-21 00:35:32 +03:00
8e4e40b25a docs: NOTES — Pchip LUT fix + comb diagnosis (level-dependent, not multiband)
e5e9700333 fix: restore pchip LUT in framed_model (revert 12094f8 regression)
12094f8119 Replace empirical Pchip LUT with parametric form from live DSP capture
Compare 3 commits »
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 22:59:29 +03:00
16853d7e0b Integrate live-captured A/B/gamma params into framed_model; add CAP_ constants and parametric LUT helper
2d69b85aa3 P5: NOTES — F5c DSP-FFT 0x140a70 status (P3 confirmed unwired; all check targets PASS)
d802ee7aed P5: F5b — exp2 0x26b820 assets extracted bit-exact + numeric fallback exp2_dsp
4e9c1b1ed7 P4: F4 geometry test — internal 48000/4096 does NOT close residual (0.68 vs 1.00); all structural adaptations rejected
fa1ef205df P4: F2 structural wiring tests — combine+FFT-conv naive wiring both regress (doc only)
Compare 16 commits »
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 15:58:52 +03:00
f1f06765f7 docs: README intro -> bit-exact goal, point to AGENTS.md
bdf9f21a60 docs: AGENTS.md + refresh README/roadmap/summary/SESSION_HANDOFF to P4 canon; rm empty logs
77b639ee82 chore: fix .gitignore to track decompiled .dis/.bin disassemblies
2e0b107b4c P4: document PRNG prologue + remaining bit-exact gaps
87dbf88e6d P4: add dual warp step (mask *= band768; *= warp) - comb 500/3000 fixed
Compare 9 commits »
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 10:41:26 +03:00
5c939583f5 P4: multi-band FramedDetector (per-band twin res, sens-scaled GAIN, min-combine); tt_base 61.40%; min-combine wrong (soothe2 uses additive accumulator 0x5407c8)
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 10:31:45 +03:00
0cdc57972c P4: port framed_render.py model to C++ (FramedDetector: twin-res -> level -> Pchip LUT -> warp -> res^rp gain), replace empirical Detector; tt_base 49.93%->61.45% (single-band); multi-band refs still 100% (model is single-band)
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 09:28:15 +03:00
45dfe2b8c2 P4: full decomp FUN_18052e260 frame driver (twin side-chain per band, LUT+mask+FFT-conv run per drained frame); wire order documented
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 09:27:05 +03:00
a6126d10ac roadmap: mark P1.5/P2/P2.5 DONE, P3 partial (vlog+arch, butterfly remains); ~65-70% done
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 09:26:40 +03:00
5a4554a9a3 P4-prep: eval_lut_bin uses float logf/expf (matches decomp FUN_180563440 logf/expf, not double std::log/exp)
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 08:48:02 +03:00
8fad2bbfd9 P3.5: acc_437c0 = data shuffle (re/im repack + zero-fill), not arithmetic; full butterfly = twiddle load + shuffle + mult + combine
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 07:12:57 +03:00
feb44c3802 P3.4: transcribe plugin's own vectorized ln(x) (vlog.cpp, minimax ln(1+x) poly + ln2 range-reduction); correct prior misread — dispatch reaches runtime ln, not FFT; vlog_check ALL OK (rel 2.4e-7)
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 05:56:15 +03:00
7bbe7cce05 P3.3: final kernels use own vectorized sin/cos (SVML-like poly+exp, ln2=0.693147) not twiddle table for big-N; poly constants captured from rodata
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 02:58:02 +03:00
2a7b88e704 P3.2: map full 4-level FFT dispatch (535a70->140a10/70->jumptable->runtime table->6 final split-radix kernels 0x1802a24c0..2ce4a0); kernels force MXCSR round-to-nearest
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 02:26:00 +03:00
88422034f5 P3.1: extract FFT code from rt snap (extract_fft.py); decode cplx_mul 0x8440 = in-place elementwise double mult, twiddle loader 0x39b00 stride copy, dispatcher 0x535a70->0x140a10/70->jumptable[0x1826159a0]=4; implement cplx_mul_scalar_inplace
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 01:30:34 +03:00
22e4599e0a P2: decode mask-accumulator combine kernels from raw bytes — combine3(0x8d60)=sub, acc_add(0x5a20)=dst+=src, acc_fma(0x3c40)=dst+=a·b; implement + levelpath_check ALL OK
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 01:23:23 +03:00
d3db772121 P2.5: decode twin-mask factory (FUN_18056e3e0 = constant fill 2π/(count·SR)) + band LUT apply (FUN_180563a60: level->gain t^γ/power-law); implement in levelpath.cpp, levelpath_check ALL OK
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 01:12:14 +03:00
a49e35dc25 P1.5: embed live level-tracker A[] + mask scalars into C++ (dsp/leveltrack_data.hpp); leveltrack_check sanity confirms SR=48000, A_ATTACK plateaus 0.692, attack/release=1.0
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 00:45:00 +03:00
0e90918226 P1.5 SOLVED: live ctx (0x2370040, +0x24==48000) + level-tracker A[] + mask scalars captured via realtime playback; method play.lua + rtctx_rt.py; prior 'unreachable' was offline-engine artifact
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 00:11:46 +03:00
fe43509d50 NOTES_CAPTURE: P1.5 live level-tracker A[]/ctx confirmed unreachable (window ptr only in registry, no +0x24==40000 object); scalars static-derived from RPP; 2 missing consts 0x24c4348/44a4
Matiq pushed to main at Matiq/soothe2-re 2026-08-20 00:11:27 +03:00
c5d2b2ad7f P1.5: rtctx.py live-capture pipeline (registry-scan + ctx discovery); confirms live level-tracker A[]/ctx not reachable (window ptr only in registry, no +0x24==40000 object) => scalars are static-only