sst-filters
Filters submodule for the Surge Synthesizer
Enumerations | Functions
sst::filters::ResonanceWarp Namespace Reference

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)
 

Detailed Description

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.

Enumeration Type Documentation

◆ Saturator

enum Saturator
Enumerator
SAT_TANH 
SAT_SOFT 

◆ nls_coeffs

enum nls_coeffs
Enumerator
nls_a1 
nls_a2 
nls_b0 
nls_b1 
nls_b2 
n_nls_coeff 

◆ dlf_state

enum dlf_state
Enumerator
nls_z1 
nls_z2 
nls_z3 
nls_z4 
nls_z5 
nls_z6 
nls_z7 
nls_z8 

Function Documentation

◆ makeCoefficients()

void sst::filters::ResonanceWarp::makeCoefficients ( FilterCoefficientMaker< TuningProvider > *  cm,
float  freq,
float  reso,
int  type,
float  sampleRate,
TuningProvider *  provider 
)

◆ process()

SIMD_M128 sst::filters::ResonanceWarp::process ( QuadFilterUnitState *__restrict  f,
SIMD_M128  input 
)