This namespace contains an adaptation of the filter from https://github.com/reales/OB-Xd/blob/master/Source/Engine/Filter.h. More...
Enumerations | |
enum | Poles { TWO_POLE , FOUR_POLE , XPANDER } |
enum | Obxd12dBCoeff { g12 , R12 , multimode , bandpass , self_osc_push , n_obxd12_coeff } |
enum | Obxd24dBCoeff { g24 , R24 , rcor24 , rcor24inv , pole_mix , pole_mix_inv_int , pole_mix_scaled , n_obxd24_coeff } |
enum | Params { s1 , s2 , s3 , s4 } |
enum | FourPoleMode { MORPH , LP6 , LP12 , LP18 , LP24 , LP24Broken , XPANDER_HP3 , XPANDER_HP2 , XPANDER_HP1 , XPANDER_BP4 , XPANDER_BP2 , XPANDER_N2 , XPANDER_PH3 , XPANDER_HP2LP1 , XPANDER_HP3LP1 , XPANDER_N2LP1 , XPANDER_PH3LP1 } |
Functions | |
template<typename TuningProvider > | |
void | makeCoefficients (FilterCoefficientMaker< TuningProvider > *cm, Poles p, float freq, float reso, int sub, float sampleRateInv, TuningProvider *provider, bool continuousMorph=false, float morphPole01=0.f) |
SIMD_M128 | diodePairResistanceApprox (SIMD_M128 x) |
SIMD_M128 | NewtonRaphson12dB (SIMD_M128 sample, QuadFilterUnitState *__restrict f) |
SIMD_M128 | process_2_pole (QuadFilterUnitState *__restrict f, SIMD_M128 sample) |
SIMD_M128 | NewtonRaphson24dB (SIMD_M128 sample, SIMD_M128 lpc, QuadFilterUnitState *__restrict f) |
template<FourPoleMode fpm> | |
SIMD_M128 | process_4_pole (QuadFilterUnitState *__restrict f, SIMD_M128 sample) |
Variables | |
const auto | zero = SIMD_MM(set1_ps)(0.0f) |
const auto | nine_two_zero = SIMD_MM(set1_ps)(0.00920833f) |
const auto | zero_zero_five = SIMD_MM(set1_ps)(0.05f) |
const auto | eight_seven_six = SIMD_MM(set1_ps)(0.0876f) |
const auto | one_zero_three = SIMD_MM(set1_ps)(0.0103592f) |
const auto | one_eight_five = SIMD_MM(set1_ps)(0.185f) |
const auto | zero_four_five = SIMD_MM(set1_ps)(0.45f) |
const auto | zero_five = SIMD_MM(set1_ps)(0.5f) |
const auto | one = SIMD_MM(set1_ps)(1.0f) |
const auto | one_three_five = SIMD_MM(set1_ps)(1.035f) |
const auto | two = SIMD_MM(set1_ps)(2.0f) |
const auto | three = SIMD_MM(set1_ps)(3.0f) |
const auto | gainAdjustment2Pole = SIMD_MM(set1_ps)(0.74f) |
const auto | gainAdjustment4Pole = SIMD_MM(set1_ps)(0.6f) |
This namespace contains an adaptation of the filter from https://github.com/reales/OB-Xd/blob/master/Source/Engine/Filter.h.
enum Poles |
enum Obxd12dBCoeff |
enum Obxd24dBCoeff |
enum Params |
enum FourPoleMode |
void makeCoefficients | ( | FilterCoefficientMaker< TuningProvider > * | cm, |
Poles | p, | ||
float | freq, | ||
float | reso, | ||
int | sub, | ||
float | sampleRateInv, | ||
TuningProvider * | provider, | ||
bool | continuousMorph = false , |
||
float | morphPole01 = 0.f |
||
) |
References bandpass, FOUR_POLE, FilterCoefficientMaker< TuningProvider >::FromDirect(), g12, g24, multimode, sst::filters::n_cm_coeffs, pole_mix, pole_mix_inv_int, pole_mix_scaled, R12, R24, rcor24, rcor24inv, self_osc_push, TWO_POLE, and XPANDER.
Referenced by FilterCoefficientMaker< TuningProvider >::MakeCoeffs().
SIMD_M128 diodePairResistanceApprox | ( | SIMD_M128 | x | ) |
References nine_two_zero, one, one_eight_five, one_zero_three, and zero_zero_five.
Referenced by NewtonRaphson12dB().
SIMD_M128 NewtonRaphson12dB | ( | SIMD_M128 | sample, |
QuadFilterUnitState *__restrict | f | ||
) |
References diodePairResistanceApprox(), eight_seven_six, g12, one, one_three_five, R12, s1, s2, self_osc_push, and two.
Referenced by process_2_pole().
SIMD_M128 process_2_pole | ( | QuadFilterUnitState *__restrict | f, |
SIMD_M128 | sample | ||
) |
References bandpass, g12, gainAdjustment2Pole, multimode, n_obxd12_coeff, NewtonRaphson12dB(), one, s1, s2, zero, and zero_five.
Referenced by sst::filters::GetCompensatedQFPtrFilterUnit().
SIMD_M128 NewtonRaphson24dB | ( | SIMD_M128 | sample, |
SIMD_M128 | lpc, | ||
QuadFilterUnitState *__restrict | f | ||
) |
SIMD_M128 process_4_pole | ( | QuadFilterUnitState *__restrict | f, |
SIMD_M128 | sample | ||
) |
References g24, gainAdjustment4Pole, LP12, LP18, LP24, LP24Broken, LP6, MORPH, n_obxd24_coeff, NewtonRaphson24dB(), one, pole_mix_inv_int, pole_mix_scaled, R24, rcor24, rcor24inv, s1, s2, s3, s4, three, two, XPANDER_BP2, XPANDER_BP4, XPANDER_HP1, XPANDER_HP2, XPANDER_HP2LP1, XPANDER_HP3, XPANDER_HP3LP1, XPANDER_N2, XPANDER_N2LP1, XPANDER_PH3, XPANDER_PH3LP1, zero, and zero_four_five.
const auto zero = SIMD_MM(set1_ps)(0.0f) |
Referenced by process_2_pole(), and process_4_pole().
const auto nine_two_zero = SIMD_MM(set1_ps)(0.00920833f) |
Referenced by diodePairResistanceApprox().
const auto zero_zero_five = SIMD_MM(set1_ps)(0.05f) |
Referenced by diodePairResistanceApprox().
const auto eight_seven_six = SIMD_MM(set1_ps)(0.0876f) |
Referenced by NewtonRaphson12dB().
const auto one_zero_three = SIMD_MM(set1_ps)(0.0103592f) |
Referenced by diodePairResistanceApprox().
const auto one_eight_five = SIMD_MM(set1_ps)(0.185f) |
Referenced by diodePairResistanceApprox().
const auto zero_four_five = SIMD_MM(set1_ps)(0.45f) |
Referenced by process_4_pole().
const auto zero_five = SIMD_MM(set1_ps)(0.5f) |
Referenced by process_2_pole().
const auto one = SIMD_MM(set1_ps)(1.0f) |
Referenced by diodePairResistanceApprox(), NewtonRaphson12dB(), NewtonRaphson24dB(), process_2_pole(), and process_4_pole().
const auto one_three_five = SIMD_MM(set1_ps)(1.035f) |
Referenced by NewtonRaphson12dB().
const auto two = SIMD_MM(set1_ps)(2.0f) |
Referenced by NewtonRaphson12dB(), and process_4_pole().
const auto three = SIMD_MM(set1_ps)(3.0f) |
Referenced by process_4_pole().
const auto gainAdjustment2Pole = SIMD_MM(set1_ps)(0.74f) |
Referenced by process_2_pole().
const auto gainAdjustment4Pole = SIMD_MM(set1_ps)(0.6f) |
Referenced by process_4_pole().