This filter is an emulation of the "Threeler" VCF by Ian Fritz (https://ijfritz.byethost4.com/Threeler_board_doc.pdf). More...
Namespaces | |
OnePoleHPF | |
OnePoleHPF_FB | |
OnePoleLPF | |
OnePoleLPF_FB | |
ResWaveshaper | |
Enumerations | |
enum | thr_coeffs { thr_b0 = 0, thr_a0, thr_b1, thr_a1, thr_b2, thr_a2, thr_k, n_thr_coeff } |
enum | thr_state { thr_z0, thr_x0, thr_z1, thr_x1, thr_z2, thr_x2, thr_fb, thr_fb1 } |
Functions | |
template<typename TuningProvider > | |
void | makeCoefficients (FilterCoefficientMaker< TuningProvider > *cm, float freq, float reso, int, float sampleRate, TuningProvider *provider) |
template<FilterSubType subtype> | |
__m128 | process (QuadFilterUnitState *__restrict f, __m128 in) |
Variables | |
constexpr float | res_gain = 1.5f |
constexpr float | in_gain = 4.0f |
constexpr float | out_gain = 1.0f / in_gain |
constexpr int | nIterGlobal = 3 |
constexpr int | nIterStage = 1 |
constexpr float | ota1bp = 0.88f |
constexpr float | ota1bn = 1.0f |
constexpr float | ota2bp = 0.9f |
constexpr float | ota2bn = 0.97f |
constexpr float | ota3bp = 0.95f |
constexpr float | ota3bn = 1.025f |
constexpr float | Iabc = 8.0f |
constexpr float | Rload = 220.0f |
const auto | res_factor_db = std::log10(Iabc * Rload) |
This filter is an emulation of the "Threeler" VCF by Ian Fritz (https://ijfritz.byethost4.com/Threeler_board_doc.pdf).
The filter consists of three one-pole filters with nonlinear resonance and global feedback. The filter has four "modes":
The details of the emulation are derived in a Python notebook here: https://github.com/surge-synthesizer/surge-python/blob/main/scripts/dsp_simulations/ThreelerAnalysis.ipynb
enum thr_coeffs |
enum thr_state |
void sst::filters::TriPoleFilter::makeCoefficients | ( | FilterCoefficientMaker< TuningProvider > * | cm, |
float | freq, | ||
float | reso, | ||
int | , | ||
float | sampleRate, | ||
TuningProvider * | provider | ||
) |
__m128 sst::filters::TriPoleFilter::process | ( | QuadFilterUnitState *__restrict | f, |
__m128 | in | ||
) |
|
constexpr |
Referenced by process().
|
constexpr |
Referenced by process().
|
constexpr |
Referenced by process().
|
constexpr |
|
constexpr |
Referenced by process().
|
constexpr |
|
constexpr |
Referenced by process().
|
constexpr |
Referenced by process().
|
constexpr |
Referenced by process().
|
constexpr |
Referenced by process().
|
constexpr |
|
constexpr |
Referenced by makeCoefficients().