46 std::span<const double> src,
66 std::span<const double> src,
70 uint32_t window_size = 1024,
71 uint32_t hop_size = 256);
81 std::span<const double> src,
82 uint32_t window_size = 1024,
83 uint32_t hop_size = 256);
100 std::span<const double> src,
101 double enhancement_factor,
102 uint32_t window_size = 1024,
103 uint32_t hop_size = 256);
114 std::span<const double> src,
116 uint32_t window_size = 1024,
117 uint32_t hop_size = 256);
141 std::span<const double> src,
142 double stretch_factor,
143 uint32_t window_size = 2048,
144 uint32_t analysis_hop = 512);
160 std::span<const double> src,
162 uint32_t window_size = 2048,
163 uint32_t analysis_hop = 512);
std::vector< double > spectral_gate(std::span< const double > src, double threshold_db, uint32_t window_size, uint32_t hop_size)
Hard spectral gate: zero bins whose magnitude is below the threshold.
std::vector< double > apply_spectral(std::span< const double > src, uint32_t window_size, uint32_t hop_size, const SpectrumProcessor &processor)
Apply a per-frame spectrum processor via WOLA analysis-synthesis.
std::vector< double > spectral_filter(std::span< const double > src, double lo_hz, double hi_hz, double sample_rate, uint32_t window_size, uint32_t hop_size)
Hard bandpass filter: zero all bins outside [lo_hz, hi_hz].
std::vector< double > phase_vocoder_stretch(std::span< const double > src, double stretch_factor, uint32_t window_size, uint32_t analysis_hop)
Time-stretch via phase vocoder analysis-synthesis.
std::function< void(std::vector< std::complex< double > > &, size_t)> SpectrumProcessor
Callable type for per-frame spectrum modification Receives the one-sided complex spectrum (bins 0....
std::vector< double > harmonic_enhance(std::span< const double > src, double enhancement_factor, uint32_t window_size, uint32_t hop_size)
Linear spectral tilt: scale each bin by a factor that rises linearly from 1 at bin 0 to enhancement_f...
std::vector< double > spectral_invert(std::span< const double > src, uint32_t window_size, uint32_t hop_size)
Spectral phase inversion (conjugate all bins)
std::vector< double > pitch_shift(std::span< const double > src, double semitones, uint32_t window_size, uint32_t analysis_hop)
Pitch-shift by resampling around a phase vocoder stretch.