This contains an adaptation of the filter found at https://ccrma.stanford.edu/~jatin/ComplexNonlinearities/NLBiquad.html with coefficient calculation from https://webaudio.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html. More...
Enumerations | |
enum | Saturator { SAT_TANH = 0 , SAT_SOFT } |
enum | nls_coeffs { nls_a1 = 0 , nls_a2 , nls_b0 , nls_b1 , nls_b2 , n_nls_coeff } |
enum | dlf_state { nls_z1 , nls_z2 , nls_z3 , nls_z4 , nls_z5 , nls_z6 , nls_z7 , nls_z8 } |
Functions | |
template<typename TuningProvider > | |
void | makeCoefficients (FilterCoefficientMaker< TuningProvider > *cm, float freq, float reso, int type, float sampleRate, TuningProvider *provider) |
template<FilterSubType subtype> | |
SIMD_M128 | process (QuadFilterUnitState *__restrict f, SIMD_M128 input) |
This contains an adaptation of the filter found at https://ccrma.stanford.edu/~jatin/ComplexNonlinearities/NLBiquad.html with coefficient calculation from https://webaudio.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html.
A lot of code here is duplicated from NonlinearFeedback.cpp, perhaps in future they could be merged, but for the time being they're separate and nothing is shared.
enum Saturator |
enum nls_coeffs |
enum dlf_state |
void sst::filters::ResonanceWarp::makeCoefficients | ( | FilterCoefficientMaker< TuningProvider > * | cm, |
float | freq, | ||
float | reso, | ||
int | type, | ||
float | sampleRate, | ||
TuningProvider * | provider | ||
) |
References sst::filters::TriPoleFilter::ResWaveshaper::alpha, FilterCoefficientMaker< TuningProvider >::FromDirect(), sst::filters::fut_resonancewarp_bp, sst::filters::fut_resonancewarp_hp, sst::filters::fut_resonancewarp_lp, sst::filters::fut_resonancewarp_n, sst::filters::n_cm_coeffs, nls_a1, nls_a2, nls_b0, nls_b1, and nls_b2.
Referenced by FilterCoefficientMaker< TuningProvider >::MakeCoeffs().
SIMD_M128 sst::filters::ResonanceWarp::process | ( | QuadFilterUnitState *__restrict | f, |
SIMD_M128 | input | ||
) |