sst-filters
Filters submodule for the Surge Synthesizer
Namespaces | Macros | Enumerations | Functions
ResonanceWarp.h File Reference

Namespaces

 sst
 Parent namespace for all Surge Synth Team code.
 
 sst::filters
 DSP code for Surge filters.
 
 sst::filters::ResonanceWarp
 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.
 

Macros

#define F(a)   _mm_set_ps1(a)
 
#define M(a, b)   _mm_mul_ps(a, b)
 
#define A(a, b)   _mm_add_ps(a, b)
 
#define S(a, b)   _mm_sub_ps(a, b)
 

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>
__m128 process (QuadFilterUnitState *__restrict f, __m128 input)
 

Macro Definition Documentation

◆ F

#define F (   a)    _mm_set_ps1(a)

◆ M

#define M (   a,
 
)    _mm_mul_ps(a, b)

◆ A

#define A (   a,
 
)    _mm_add_ps(a, b)

◆ S

#define S (   a,
 
)    _mm_sub_ps(a, b)