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 |
|