Matiq
2c99a4fc96
feat: consumer identified (th_b3c0), scan3.py, RT_FIRCONV/RT_FIRPOWER
...
- th_b3c0 (0x18000b3c0) = pure complex multiply FIR × audio in freq-domain
- scan3.py: pre-scan approach finds ctx in 1.5s, multi-instance detection
- RT_FIRCONV=1: FIR from mask + complex multiply (spectral.cpp)
- RT_FIRPOWER=1: power-law mask from raw spectrum (framed_model.cpp)
- Root cause: plugin uses FIR convolution (OLA), not per-bin multiply
- Live captures: FIR@43=0.524, mask@43=0.510, final gain=0.305
- Best result: RT_LUT_OFF gives cut@500=-8.18 dB (ref -10.32)
- NOTES_LEVEL 24e/24f/24g appended
2026-08-24 13:52:52 +03:00
Matiq
7659eb0362
feat(dsp): SpectralProcessor sample_rate param
2026-08-21 01:32:50 +03:00
Matiq
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)
2026-08-20 10:41:24 +03:00
Matiq
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)
2026-08-20 10:31:43 +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