|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
Digital filter coefficient design for MayaFlux::Kinesis. More...
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Namespaces | |
| namespace | MayaFlux |
| Main namespace for the Maya Flux audio engine. | |
| namespace | MayaFlux::Kinesis |
| namespace | MayaFlux::Kinesis::Discrete |
Functions | |
| void | MayaFlux::Kinesis::Discrete::biquad_allpass (double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b) |
| Second-order allpass coefficients. | |
| void | MayaFlux::Kinesis::Discrete::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 | MayaFlux::Kinesis::Discrete::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 | MayaFlux::Kinesis::Discrete::biquad_highpass (double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b) |
| Second-order highpass coefficients. | |
| void | MayaFlux::Kinesis::Discrete::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 | MayaFlux::Kinesis::Discrete::biquad_lowpass (double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b) |
| Second-order lowpass coefficients. | |
| void | MayaFlux::Kinesis::Discrete::biquad_notch (double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b) |
| Second-order notch coefficients. | |
| void | MayaFlux::Kinesis::Discrete::biquad_peaking (double frequency, double q, double gain_db, double sample_rate, std::vector< double > &a, std::vector< double > &b) |
| Second-order peaking coefficients. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::cascade (std::span< const double > lhs, std::span< const double > rhs) |
| Polynomial product of two coefficient vectors. | |
| void | MayaFlux::Kinesis::Discrete::dc_block (double pole, std::vector< double > &a, std::vector< double > &b) |
| DC blocking filter. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::lagrange_delay (double delay, size_t order) |
| Lagrange fractional-delay FIR coefficients. | |
| double | MayaFlux::Kinesis::Discrete::max_pole_magnitude (std::span< const double > a) |
| Largest pole magnitude of a denominator polynomial. | |
| void | MayaFlux::Kinesis::Discrete::one_pole (double pole, std::vector< double > &a, std::vector< double > &b) |
| One-pole filter specified by pole position. | |
| void | MayaFlux::Kinesis::Discrete::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 > | MayaFlux::Kinesis::Discrete::savitzky_golay (size_t window, size_t poly_order, size_t derivative=0) |
| Savitzky-Golay FIR coefficients for smoothing or differentiation. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::sinc_bandpass (double low_hz, double high_hz, double sample_rate, size_t taps) |
| Windowed-sinc bandpass FIR coefficients. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::sinc_highpass (double frequency, double sample_rate, size_t taps) |
| Windowed-sinc highpass FIR coefficients. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::sinc_lowpass (double frequency, double sample_rate, size_t taps) |
| Windowed-sinc lowpass FIR coefficients. | |
Digital filter coefficient design for MayaFlux::Kinesis.
Pure numerical functions producing difference-equation coefficient vectors. No MayaFlux type dependencies. Domain-agnostic: the resulting coefficients describe a recurrence over any sampled sequence, not specifically audio.
All biquad designs follow the RBJ Audio EQ Cookbook bilinear transform and are normalised so that a[0] == 1.0 on return. Coefficients are written into caller-supplied vectors, which are resized to the required order.
Convention matches the direct-form recurrence: y[n] = sum(b[i] * x[n-i]) - sum(a[i] * y[n-i]) for i >= 1
SIMD notes: Design functions are scalar and called at configuration time, not per sample. cascade() is a small convolution and is not hot-path. max_pole_magnitude() carries an Eigen dependency confined to the .cpp.
Definition in file Coefficients.hpp.