Files
soothe2-re/dsp/detect.hpp
T
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

24 lines
528 B
C++

#pragma once
#include <cstddef>
#include <cstdint>
#include <complex>
#include <vector>
class Detector {
public:
Detector(size_t nfft, float sample_rate);
void setParams(float sharpness, float selectivity, float depth);
void processFrame(const std::complex<double>* spectrum, float* mask);
private:
size_t nfft_;
float sample_rate_;
float sharpness_;
float selectivity_;
float depth_;
std::vector<float> envelope_;
std::vector<float> prev_mask_;
std::vector<float> smooth_buf_;
};