This website requires JavaScript.
9ffe60e66e
feat(dsp): wire IIR3 x2 (kIIR_A3/B3) post-warp into structural chain
Matiq
2026-08-21 12:45:36 +03:00
7a108c529a
docs: NOTES_LEVEL update — LUT level-domain discovery, sweep tooling hazard
Matiq
2026-08-21 12:36:35 +03:00
535b150f75
feat(dsp): move dB-LUT to level domain (pre-IIR/exp2) in structural chain
Matiq
2026-08-21 12:35:57 +03:00
9b7e9d3099
feat(dsp): add dB-domain LUT (FUN_180563a60) to structural chain on 48k grid
Matiq
2026-08-21 09:25:17 +03:00
6924e539e0
feat(dsp): render48k pipeline + structural chain on 48000/4096 grid
Matiq
2026-08-21 04:46:51 +03:00
7659eb0362
feat(dsp): SpectralProcessor sample_rate param
Matiq
2026-08-21 01:32:50 +03:00
7bf5a4a80c
feat(dsp): structural FUN_180529fe0 chain components + fn529fe0_check (step 1, module 1)
Matiq
2026-08-21 01:09:36 +03:00
fa71240d92
test: add validation harness (scripts/corpus.py + bridge baseline) to prevent Phase B regression
Matiq
2026-08-21 01:06:05 +03:00
f17ee78061
docs: BITEXACT_PLAN — 8-step path to byte-parity; fix repo docs to reflect not-yet-bit-exact status
Matiq
2026-08-21 01:00:41 +03:00
e990c21e94
fix: framed_test parse every comma band (was first-arg only); comb tests were single-band
Matiq
2026-08-21 00:52:44 +03:00
b333f6828f
docs: NOTES — verified comb params (neg sens, multi-mode); comb needs combine/acc, not params
Matiq
2026-08-21 00:42:32 +03:00
8e4e40b25a
docs: NOTES — Pchip LUT fix + comb diagnosis (level-dependent, not multiband)
Matiq
2026-08-21 00:34:18 +03:00
e5e9700333
fix: restore pchip LUT in framed_model (revert 12094f8 regression)
Matiq
2026-08-21 00:32:39 +03:00
12094f8119
Replace empirical Pchip LUT with parametric form from live DSP capture
Matiq
2026-08-20 23:08:04 +03:00
16853d7e0b
Integrate live-captured A/B/gamma params into framed_model; add CAP_ constants and parametric LUT helper
Matiq
2026-08-20 22:59:21 +03:00
2d69b85aa3
P5: NOTES — F5c DSP-FFT 0x140a70 status (P3 confirmed unwired; all check targets PASS)
Matiq
2026-08-20 21:09:28 +03:00
d802ee7aed
P5: F5b — exp2 0x26b820 assets extracted bit-exact + numeric fallback exp2_dsp
Matiq
2026-08-20 21:07:30 +03:00
4e9c1b1ed7
P4: F4 geometry test — internal 48000/4096 does NOT close residual (0.68 vs 1.00); all structural adaptations rejected
Matiq
2026-08-20 20:54:05 +03:00
fa1ef205df
P4: F2 structural wiring tests — combine+FFT-conv naive wiring both regress (doc only)
Matiq
2026-08-20 20:52:00 +03:00
1cfe013939
P4: bench all existing parametric LUT sets on full honest corpus — Pchip remains best (0.773)
Matiq
2026-08-20 20:44:20 +03:00
cea562b511
P4: F0 GATE PASSED — output is byte-deterministic; re-renders reproduce committed refs exactly
Matiq
2026-08-20 20:03:58 +03:00
4014133d57
P4: NOTES — twin res verified vs Python canon (match <1.5%); res_only1 residual is LUT-level, not res-shape
Matiq
2026-08-20 19:35:52 +03:00
067d483f15
P4: NOTES — fit exploration results (mask-level fits do not transfer to full render)
Matiq
2026-08-20 19:34:01 +03:00
cc52461903
P4: AGENTS.md — honest baseline state (log-domain LUT bridge, correct 24-bit metric)
Matiq
2026-08-20 18:31:22 +03:00
9a26532c60
P4: NOTES — broadband hypothesis tested NEGATIVE (per-bin reduction confirmed) + LUT re-cut rejected
Matiq
2026-08-20 18:30:30 +03:00
94a6749c9a
P4: NOTES — full honest corpus assessment (dual/al/res/t1k/t1kq baseline mean 0.77, max 2.12)
Matiq
2026-08-20 18:25:02 +03:00
da63adc82c
P4: METRIC FIX + log-domain LUT chain ported — honest baseline err <0.7 dB
Matiq
2026-08-20 17:37:31 +03:00
f8ecf6a1af
P4: Phase B — framed_model re-transcribed to the confirmed chain (NOTES:199-226)
Matiq
2026-08-20 17:16:22 +03:00
8f64539328
P4: CRITICAL fix — level = am/res (not am*res); fc-resonance shape now correct
Matiq
2026-08-20 16:25:00 +03:00
ddf2ac2050
P4: lock PRNG prologue + correct constants (DAT_*=1); scale via prng_fvar30
Matiq
2026-08-20 16:14:50 +03:00
f1f06765f7
docs: README intro -> bit-exact goal, point to AGENTS.md
Matiq
2026-08-20 15:51:10 +03:00
bdf9f21a60
docs: AGENTS.md + refresh README/roadmap/summary/SESSION_HANDOFF to P4 canon; rm empty logs
Matiq
2026-08-20 15:50:07 +03:00
77b639ee82
chore: fix .gitignore to track decompiled .dis/.bin disassemblies
Matiq
2026-08-20 15:42:42 +03:00
2e0b107b4c
P4: document PRNG prologue + remaining bit-exact gaps
Matiq
2026-08-20 15:32:47 +03:00
87dbf88e6d
P4: add dual warp step (mask *= band768; *= warp) - comb 500/3000 fixed
Matiq
2026-08-20 15:30:30 +03:00
0d262461ea
P4: lock bigkernel semantics (exp2(-mask)*blend) + calibrate scale
Matiq
2026-08-20 15:25:49 +03:00
d4a0a68584
P4: transcribe exact FUN_180529fe0 mask chain (structural, not yet calibrated)
Matiq
2026-08-20 15:10:29 +03:00
f23bbfa1f6
P4: decode FUN_180529fe0 mono-path exactly + extract live mask tables
Matiq
2026-08-20 15:00:53 +03:00
fc48a9fee4
P4: real mask chain in FramedDetector (level-tracker + accumulator + live-calibrated LUT), t1kq err 0.5dB
Matiq
2026-08-20 13:11:27 +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
2026-08-20 10:41:24 +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
2026-08-20 10:31:43 +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
2026-08-20 09:28:12 +03:00
a6126d10ac
roadmap: mark P1.5/P2/P2.5 DONE, P3 partial (vlog+arch, butterfly remains); ~65-70% done
Matiq
2026-08-20 09:27:04 +03:00
5a4554a9a3
P4-prep: eval_lut_bin uses float logf/expf (matches decomp FUN_180563440 logf/expf, not double std::log/exp)
Matiq
2026-08-20 09:26:38 +03:00
8fad2bbfd9
P3.5: acc_437c0 = data shuffle (re/im repack + zero-fill), not arithmetic; full butterfly = twiddle load + shuffle + mult + combine
Matiq
2026-08-20 08:48:00 +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
2026-08-20 07:12:56 +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
2026-08-20 05:56:12 +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
2026-08-20 02:58:01 +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
2026-08-20 02:25:59 +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
2026-08-20 01:30:33 +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
2026-08-20 01:23:22 +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
2026-08-20 01:12:12 +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
2026-08-20 00:44:58 +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
2026-08-20 00:11:45 +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
Matiq
2026-08-20 00:11:25 +03:00
fd5a46542b
roadmap: reflect P0-P2 (tables/fftconv/leveltrack/mask-canon) + exact estimate of remaining code (P1.5-P5, ~60% left)
Matiq
2026-08-19 23:58:20 +03:00
433a0026e6
P2: level-tracker UPDATE-loop located (inline bidirectional IIR in FUN_180529fe0), structural module leveltrack (iir_first_order/bidirectional/unrolled4); scalar==unrolled verified; remaining = live A[] coeffs
Matiq
2026-08-19 23:53:01 +03:00
cff28a605c
P1.4: full FUN_180529fe0 decomp confirms mask-canon (scale->IIR->blend->combine+weights->warp->dry/wet->FFT-conv); documented remaining live scalars for bit-exact
Matiq
2026-08-19 23:34:02 +03:00
8b8895f68a
P1.3: integrate FFT-conv stage (build_fir_from_window step5 memcpy + fir_from_mask + overlap-save conv) with captured WIN_WINDOW; fftconv_check confirms FIR=window[2048:4096]={0.8->1.0}
Matiq
2026-08-19 23:25:21 +03:00
42316efa71
P1.2: confirm f_52d990 memcpy via decomp (FUN_18052d990(lVar22, window+N/2, N/2)); infer N=4096 from freq-axis spacing + window sape; step-5 low-pass near-flat ramp
Matiq
2026-08-19 23:20:38 +03:00
241957bced
P1.2: f_52d990 = memmove/memcpy thunk, NOT a multiply; corrected step-3/5 FIR window semantics (copy window tail + const fill); xmm9/xmm13 remain
Matiq
2026-08-19 23:17:31 +03:00
fd9b1fd001
P1.1: embed runtime-captured DSP tables (WIN_WINDOW, FREQAXIS@48k, WA/WB/WC/WD), dsp_ctx registry mirror, tables_check ALL OK
Matiq
2026-08-19 22:48:32 +03:00
83af30d7c0
P0: track twin.cpp/twin.hpp/rotor_kernel.hpp (were shadowed by .gitignore)
Matiq
2026-08-19 22:00:22 +03:00
f8b91e8015
P0.3-4: harness reads flat params (in/out/[conf]), byte-verified trim; verify_bit_exact.py uses SOURCE WAVE+RENDER_FILE from RPP, sample-report mono/stereo
Matiq
2026-08-19 22:00:14 +03:00
58164f2952
P0: fix build (levelpath in CMake, FLOOR_LIN, exact LUT curve formulas), robust RPP param decoder (607 rpp ok), preserve f_52b570/f529fe0 disasms
Matiq
2026-08-19 21:54:26 +03:00
55623b998f
chore: add rt-capture artifacts (rtobj/rtsnap scripts, rwin_*.npy tables, dsp grep dumps, rpp param decoders)
Matiq
2026-08-19 20:56:58 +03:00
02dd6e8aa7
docs: exact structural LUT curve formulas (FUN_180563440 linear/power-law), consts from PE; roadmap Q1 static side closed
Matiq
2026-08-19 20:45:45 +03:00
2484829452
docs: roadmap Q4 (0x540658 window) closed via live registry capture (SR=48000, weights), infra rtsnap*
Matiq
2026-08-19 20:42:22 +03:00
34fc852b4f
docs: two-point 180s capture confirms registry stability; twin per-note state = {A[3],B[3]} not 342-dbl; Step C closed
Matiq
2026-08-19 20:27:12 +03:00
9c1516171e
docs: runtime capture settled — registry heartbeat decodes live 0x540658 window & freq-axis (internal SR=48000); vptr-scan route closed
Matiq
2026-08-19 20:10:22 +03:00
abf09a26cc
runtime capture: registry heartbeat decodes live DSP tables (WIN 0.540658, freq-axis@48k, per-bin weights), rtsnap_fast/findctx/rtchunk infra
Matiq
2026-08-19 20:06:14 +03:00
8fdb1dc082
docs: add NOTES_TWIN.md (twin resonator + caller + grid) to the repo
Matiq
2026-08-19 17:41:09 +03:00
6c3ab92405
docs: full roadmap rewrite (drop stale phase-A recap, milestones table, doc index) + README doc links
Matiq
2026-08-19 17:39:48 +03:00
59619e4648
docs: roadmap B.12-B.15 journal + README rewrite (framed_render canonical, honest metric)
Matiq
2026-08-19 17:09:21 +03:00
28cd3b7c62
Q-dep rp + honest TRIMMED metric: mean=0.175 (was misleading 0.144 artifact)
Matiq
2026-08-19 15:48:56 +03:00
a909aae7d3
res_power final: dual mean=0.160, envRmse q0.1@500=0.05dB; joint fit confirms LUT is fc-dependent (al_* incompatible)
Matiq
2026-08-19 13:10:57 +03:00
954220139e
res_power dual-only: mean=0.080, envRmse 0.64→0.05 at q0.1@500; G/W/A/rp=1.0066/0.3261/1.0764/0.0169
Matiq
2026-08-19 11:32:25 +03:00
627e8373e6
res_power breakthrough: 500Hz residual solved (q0.1 err +0.00), decomp inventory, FUN_180563440 decoded
Matiq
2026-08-19 09:56:19 +03:00
1a57c48318
runtime capture pt2: vst3 loads AT ImageBase 0x180000000; 0x540658 = field [ctx+0x540658] not RVA; beacon->ctx script (racy)
Matiq
2026-08-18 21:11:29 +03:00
41fc402b05
Handoff: multi-band combination measured - depth not split by count, sens=0 band contributes 0, band1+band2=+0.53dB over max (not product/additive) => displacement-sum+saturation; single-band B.12 off 1.4dB at 1778
Matiq
2026-08-18 20:33:48 +03:00
bc46f039de
Handoff: joint dual+al LUT refit fails (al rmse 0.89) - level-pickoff mechanism not statically recoverable; needs runtime mask/level capture
Matiq
2026-08-18 20:27:53 +03:00
6b1e690247
Handoff: RPP base64-XML parameter decoder; b1f_* are MULTI-band (poisoned for B.12); t1kq_only1_* true single-band; FFT-amp calibration; clean dataset = dual_b1q+al_
Matiq
2026-08-18 20:26:29 +03:00
ae380c93c8
Phase5/step5b: full frame-render pilot works (STFT+per-bin LUT mask+OLA); al_* level-sweep exposes steeper real LUT leg vs B.12 frozen knots; fc-scan premise conflict flagged
Matiq
2026-08-18 19:43:26 +03:00
3b8095cee7
Handoff: step4 partial - attack<=20ms measured on renders; 0x1ac=oversample{2,4,8,16}; coeff tables undecodable
Matiq
2026-08-18 19:34:46 +03:00
f35a630722
Handoff: step5 dB-parity result (0.268 dB) + measurement notes
Matiq
2026-08-18 18:50:31 +03:00
f96bb42d27
Phase5/step5: render-parity harness (dB) - B.12 vs real wavs rmse=0.268 dB
Matiq
2026-08-18 18:49:53 +03:00
f60c85cd43
Checkpoint end-of-session: B.12 + FFT-conv mapped; next=step 5 full pipeline
Matiq
2026-08-18 18:40:06 +03:00
60bf3a2394
Phase5/step3 partial: FFT-conv loop mapped; freq-axis const offline; 0x540658 static-invisible
Matiq
2026-08-18 18:34:52 +03:00
c8f97e4ea3
Phase5/step2: B.12 model live (rmse 0.236) + freq-axis builder correction (offline const)
Matiq
2026-08-18 18:08:57 +03:00
b1066f31e0
model: диагностический мост FUN_180529fe0 (rmse 0.236 dB): C(f)=1.221*LUT(log10(L0/res)) + 0.358*warp(f)^3.143 — dual2000-глубина через АДДИТИВНЫЙ аккумулятор 0x5407c8 (не warp*LUT, тот >10 dB), res(500)=0.117 Q-независим (C500-const), warp^3.14~pi => кратный каскад
Matiq
2026-08-18 18:02:31 +03:00
111d47530e
dsp: freqpath - warp 0x5406a8 = 0.87*x/(1+x/K) (K=exp(2.0723), x=f/2000) из FUN_180530850 (0x530900) + self-check (rel err 1.5e-07, PASS)
Matiq
2026-08-18 17:08:42 +03:00
0a4c0c959b
dsp: CMake - twin.cpp/phase_table.cpp в либу, executables harness+twin_check, фикс путей dsp/
Matiq
2026-08-18 16:58:00 +03:00
32a63955f8
B.11: LUT-кривая уровень->маска извлечена (rmse 0.072 dB, 36 точек, 3 уровня): коллапс dual+t1kq+t1k на ОДНУ кривую x=log10(L0/res); степенной закон C~L0^p НЕ работает на 0dB (p_eff 0.19 vs 0.085) - LUT насыщающая gamma из FUN_180563440 (param_1+0x188); форма резонанса стабильна; model_lut.py канонический + roadmap B.11
Matiq
2026-08-18 13:02:56 +03:00
9abecb60d5
README: человеческое описание проекта, структура репо, статус B.10 и модель
Matiq
2026-08-18 12:29:07 +03:00
eb53223a59
B.10: ЕДИНАЯ модель verify (rmse 0.109 dB): C=depth*tilt*(L0/res)^p, p=0.085; dual_b1q парадокс РЕШЁН через per-bin tilt 1-w (FUN_180530d30), tilt ratio 1.27 совпадает с декомпиляцией; Q_eff=0.90, gain=4.13~sens12; model_dual.py + fit_maskaxis.py
Matiq
2026-08-18 12:08:38 +03:00
33a36bfe68
B.7: XML mode=1 исполняет case8 (Q=+0x80c, fvar=sens/20), не case1; Q_eff-маппинг
Matiq
2026-08-18 10:06:25 +03:00
cbe7da9698
roadmap: band+0x80c (Q) full trace, band-mode switch table, coefficient generators, constants
Matiq
2026-08-18 02:31:35 +03:00
8e08ecf7e5
roadmap: detector twins FUN_180535880/180536f90 decoded, per-stub dispatch tables
Matiq
2026-08-17 20:40:18 +03:00
b1b4f2bdf7
roadmap: detector decrypted in soothe_mem.bin, SNR 19.8dB; integrate twiddle loader
Matiq
2026-08-17 20:02:32 +03:00
847725f5fc
dsp/: fix FFT inverse, WOLA normalization, detector model, twiddle loader
Matiq
2026-08-17 18:39:50 +03:00