Commit Graph
125 Commits
Author SHA1 Message Date
Matiq 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 2026-08-18 12:08:38 +03:00
Matiq 33a36bfe68 B.7: XML mode=1 исполняет case8 (Q=+0x80c, fvar=sens/20), не case1; Q_eff-маппинг 2026-08-18 10:06:25 +03:00
Matiq cbe7da9698 roadmap: band+0x80c (Q) full trace, band-mode switch table, coefficient generators, constants 2026-08-18 02:31:35 +03:00
Matiq 8e08ecf7e5 roadmap: detector twins FUN_180535880/180536f90 decoded, per-stub dispatch tables 2026-08-17 20:40:18 +03:00
Matiq b1b4f2bdf7 roadmap: detector decrypted in soothe_mem.bin, SNR 19.8dB; integrate twiddle loader
- fft.cpp: build_twiddle via soothe::twiddle_load (Cody-Waite sin/cos); drop dup init_plan
- fft_stage.cpp: cplx_mul/stage_complex/stage_double kernels -> phase fixed (corr +0.995)
- detect.cpp: level-dependent regional floor (no bell-boost), mask 10^(-1.041*depth*floor/20)
- burst500 metrics: ref -26.07 / ours -26.13 dBFS, corr 0.99475, SNR 19.80 dB, diff -0.065 dB
- KEY: FUN_180535880/536f90 bodies are decrypted real SSE in soothe_mem.bin; dispatch
  table 0x182616008[0]=idx=4 -> 0x180009860 -> FUN_180040d40; region 0x18004xxxx = full
  detector algorithm, absent from prior fun_map/decomp (Ghidra ran on encrypted file)
2026-08-17 20:02:32 +03:00
Matiq 847725f5fc dsp/: fix FFT inverse, WOLA normalization, detector model, twiddle loader
- Fixed execute_inverse: removed conj bug, now uses positive twiddle only
- Added WOLA normalization factor (wola_sum/hop_ for Hann+hop=N/4)
- New detector model: floor(level) + bell_curve * boost, calibrated from
  measured data (summary.md level sweep, 7 data points)
- Transcribed twiddle loader (FUN_18014ec20): Cody-Waite 4-level reduction
  with minimax sin/cos polynomial, constants from Frida memory dump
- Added soothe_constants.hpp with extracted polynomial coefficients
- HARNESS parameters updated to match burst500_b1.rpp (depth=0.864)

Results: burst500.wav reduction now -5.8 dB vs Ref -6.8 dB (was -14.4 dB)
2026-08-17 18:39:50 +03:00
Matiq 785aff352b update roadmap.md: C++ DSP implementation status 2026-08-17 15:50:15 +03:00
Matiq 71870129c2 dsp/: add spectral detector with envelope + peak suppression
- Detector computes smoothed spectral envelope
- Finds peaks exceeding envelope
- Creates per-bin suppression mask
- Applies mask in frequency domain before ISTFT
- Default params: sharpness=1.0, selectivity=0.5, depth=0.3

Verified: burst500.wav → output RMS reduced from 0.0678 to 0.0476
2026-08-17 15:49:48 +03:00
Matiq 7dcbcf49b4 dsp/: C++ skeleton with working FFT/WOLA STFT
- Cooley-Tukey radix-2 FFT (forward + inverse with /N normalization)
- WOLA STFT/ISTFT with Hann window (nfft=2048, hop=512)
- WAV16 read + WAV24 write (fixed aliasing bug in read)
- Fixed in-place processing bug (separate input/output buffers)
- Biquad filter (peak/shelf/reject)
- Peak detector skeleton
- MS encode/decode (M8 stereo)
- Harness: WAV16 → STFT → WAV24 passthrough verified non-zero output

Verified: burst500.wav passthrough produces output RMS=0.0678
2026-08-17 11:25:35 +03:00
Matiq 81cfca70a9 add dsp/ with FFT, filters, detector, stereo support; initial harness 2026-08-17 09:51:49 +03:00
Matiq 46badce50d update roadmap.md with C++ DSP implementation status 2026-08-17 03:30:58 +03:00
Matiq 66bac5e1e5 add dsp/ with FFT, filters, detector, stereo support 2026-08-17 03:28:05 +03:00
Matiq 230c6a63ad re: LIVE N0@44100 = 2048, oversample 4 (two SP instances agree); angle-ramp+Cody-Waite twiddle path confirmed for main FFT; rtone/rtver scripts 2026-08-17 00:47:52 +03:00
Matiq abef5c6413 re: twiddle builder FUN_180039b00 is two-path (sin-table copy for N<=1024, angle-ramp+sin/cos for N>1024); loader slots all == 0x18014ec20 2026-08-17 00:27:17 +03:00
Matiq 00d8623b92 notes: twiddle = 1024-entry sin table with stride sampling 2026-08-16 23:38:16 +03:00
Matiq 0d16c5f4b9 docs: giant FFT plan generator analysis (notes_giant_fft.md) 2026-08-16 23:10:12 +03:00
Matiq 1e9bac7a42 chore: transform runtime model complete (stage kernels, slot map, driver loc) 2026-08-16 22:56:26 +03:00
Matiq 9ec0470b86 chore: DSP kernel map (complex-mul/double-mul/max), DumpList getFunctionContaining fix 2026-08-16 22:04:48 +03:00
Matiq 86483ce1fa chore: block-processor decompiled (sp_*.txt); FFT plan/giants + spectral chain documented 2026-08-16 21:35:22 +03:00
Matiq cbbd82136c chore: audio-chain xrefs, PACE-stub pattern, SpectralProcessor vftable id 2026-08-16 21:32:30 +03:00
Matiq 304a926ea4 chore: FFT giants, factor tables, spectral class map, block-processor chain 2026-08-16 21:14:51 +03:00
Matiq 72c1fec3d0 Phase A: DSP FFT plan ID (radix 2/3/5, 1/N inv scale), dispatch-kernel dumps 2026-08-16 20:38:30 +03:00
Matiq de7d0431d0 Phase A: consts extraction (11602), Hann window ID, DSP const map 2026-08-16 19:54:01 +03:00
Matiq 25cf786c54 Initial commit: soothe2 RE workspace + roadmap
- Инфраструктура: RTTI-дампы (rtti_dsp/full.json), декомпиляции DSP-классов (decomp_*.txt),
  Ghidra-скрипты (Dump*.java, ImportRtti*.java, Diag.java), depthcurve/curve_fits LUT.
- Поведенческая модель sim_v5.py + sim.py (RMSE ~0.3dB), утилиты (measure, tt_sweep, patchparam,
  sweep, harness_*, verify_sim).
- summary.md + roadmap.md (контракт из manual M1-M12, топология пайплайна из OCR, фазы A-C).
- pipeline_ocr.txt: OCR диаграммы Appendix A (mid/side ручка, trim/mix/bypass порядок).
2026-08-16 18:54:40 +03:00
Matiq 45a13dcebd Initial commit 2026-08-16 18:51:53 +03:00