39 std::vector<double>&
a, std::vector<double>&
b);
50 std::vector<double>&
a, std::vector<double>&
b);
61 std::vector<double>&
a, std::vector<double>&
b);
72 std::vector<double>&
a, std::vector<double>&
b);
87 std::vector<double>&
a, std::vector<double>&
b);
99 double sample_rate, std::vector<double>&
a, std::vector<double>&
b);
111 double sample_rate, std::vector<double>&
a, std::vector<double>&
b);
123 double sample_rate, std::vector<double>&
a, std::vector<double>&
b);
144[[nodiscard]] MAYAFLUX_API std::vector<double>
sinc_lowpass(
145 double frequency,
double sample_rate,
size_t taps);
159 double frequency,
double sample_rate,
size_t taps);
174 double low_hz,
double high_hz,
double sample_rate,
size_t taps);
206 size_t window,
size_t poly_order,
size_t derivative = 0);
225 double delay,
size_t order);
248MAYAFLUX_API
void resonator(
double pole_radius,
double pole_angle,
249 std::vector<double>&
a, std::vector<double>&
b);
262MAYAFLUX_API
void one_pole(
double pole,
263 std::vector<double>&
a, std::vector<double>&
b);
276MAYAFLUX_API
void dc_block(
double pole,
277 std::vector<double>&
a, std::vector<double>&
b);
295[[nodiscard]] MAYAFLUX_API std::vector<double>
cascade(
296 std::span<const double> lhs, std::span<const double> rhs);
std::vector< double > delay(std::span< const double > data, uint32_t delay_samples, double fill_value)
Prepend delay_samples zero-valued (or fill_value) samples, returning a new vector.
void biquad_notch(double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
Second-order notch coefficients.
void biquad_bandpass(double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
Second-order bandpass coefficients, constant 0 dB peak gain.
void biquad_lowpass(double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
Second-order lowpass coefficients.
void biquad_highpass(double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
Second-order highpass coefficients.
std::vector< double > savitzky_golay(size_t window, size_t poly_order, size_t derivative)
Savitzky-Golay FIR coefficients for smoothing or differentiation.
std::vector< double > sinc_lowpass(double frequency, double sample_rate, size_t taps)
Windowed-sinc lowpass FIR coefficients.
std::vector< double > lagrange_delay(double delay, size_t order)
Lagrange fractional-delay FIR coefficients.
void biquad_peaking(double frequency, double q, double gain_db, double sample_rate, std::vector< double > &a, std::vector< double > &b)
Second-order peaking coefficients.
void dc_block(double pole, std::vector< double > &a, std::vector< double > &b)
DC blocking filter.
double max_pole_magnitude(std::span< const double > a)
Largest pole magnitude of a denominator polynomial.
void one_pole(double pole, std::vector< double > &a, std::vector< double > &b)
One-pole filter specified by pole position.
void biquad_allpass(double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
Second-order allpass coefficients.
std::vector< double > sinc_highpass(double frequency, double sample_rate, size_t taps)
Windowed-sinc highpass FIR coefficients.
std::vector< double > cascade(std::span< const double > lhs, std::span< const double > rhs)
Polynomial product of two coefficient vectors.
void biquad_low_shelf(double frequency, double slope, double gain_db, double sample_rate, std::vector< double > &a, std::vector< double > &b)
Second-order low shelf coefficients.
void biquad_high_shelf(double frequency, double slope, double gain_db, double sample_rate, std::vector< double > &a, std::vector< double > &b)
Second-order high shelf coefficients.
void resonator(double pole_radius, double pole_angle, std::vector< double > &a, std::vector< double > &b)
Two-pole resonator specified by z-plane pole position.
std::vector< double > sinc_bandpass(double low_hz, double high_hz, double sample_rate, size_t taps)
Windowed-sinc bandpass FIR coefficients.