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 } |
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 } |
Functions | |
template<typename TuningProvider > | |
void | makeCoefficients (FilterCoefficientMaker< TuningProvider > *cm, Poles p, float freq, float reso, int sub, float sampleRateInv, TuningProvider *provider) |
__m128 | diodePairResistanceApprox (__m128 x) |
__m128 | NewtonRaphson12dB (__m128 sample, QuadFilterUnitState *__restrict f) |
__m128 | process_2_pole (QuadFilterUnitState *__restrict f, __m128 sample) |
__m128 | NewtonRaphsonR24dB (__m128 sample, __m128 lpc, QuadFilterUnitState *__restrict f) |
__m128 | process_4_pole (QuadFilterUnitState *__restrict f, __m128 sample) |
Variables | |
const __m128 | zero = _mm_set1_ps(0.0f) |
const __m128 | nine_two_zero = _mm_set1_ps(0.00920833f) |
const __m128 | zero_zero_five = _mm_set1_ps(0.05f) |
const __m128 | eight_seven_six = _mm_set1_ps(0.0876f) |
const __m128 | one_zero_three = _mm_set1_ps(0.0103592f) |
const __m128 | one_eight_five = _mm_set1_ps(0.185f) |
const __m128 | zero_four_five = _mm_set1_ps(0.45f) |
const __m128 | zero_five = _mm_set1_ps(0.5f) |
const __m128 | one = _mm_set1_ps(1.0f) |
const __m128 | one_three_five = _mm_set1_ps(1.035f) |
const __m128 | two = _mm_set1_ps(2.0f) |
const __m128 | three = _mm_set1_ps(3.0f) |
const __m128 | gainAdjustment2Pole = _mm_set1_ps(0.74f) |
const __m128 | gainAdjustment4Pole = _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 |
void sst::filters::OBXDFilter::makeCoefficients | ( | FilterCoefficientMaker< TuningProvider > * | cm, |
Poles | p, | ||
float | freq, | ||
float | reso, | ||
int | sub, | ||
float | sampleRateInv, | ||
TuningProvider * | provider | ||
) |
References bandpass, 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, and TWO_POLE.
Referenced by FilterCoefficientMaker< TuningProvider >::MakeCoeffs().
__m128 sst::filters::OBXDFilter::diodePairResistanceApprox | ( | __m128 | x | ) |
References nine_two_zero, one, one_eight_five, one_zero_three, and zero_zero_five.
Referenced by NewtonRaphson12dB().
__m128 sst::filters::OBXDFilter::NewtonRaphson12dB | ( | __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().
__m128 sst::filters::OBXDFilter::process_2_pole | ( | QuadFilterUnitState *__restrict | f, |
__m128 | sample | ||
) |
References bandpass, g12, gainAdjustment2Pole, multimode, n_obxd12_coeff, NewtonRaphson12dB(), one, s1, s2, zero, and zero_five.
Referenced by sst::filters::GetQFPtrFilterUnit().
__m128 sst::filters::OBXDFilter::NewtonRaphsonR24dB | ( | __m128 | sample, |
__m128 | lpc, | ||
QuadFilterUnitState *__restrict | f | ||
) |
__m128 sst::filters::OBXDFilter::process_4_pole | ( | QuadFilterUnitState *__restrict | f, |
__m128 | sample | ||
) |
References g24, gainAdjustment4Pole, n_obxd24_coeff, NewtonRaphsonR24dB(), one, pole_mix_inv_int, pole_mix_scaled, R24, rcor24, rcor24inv, s1, s2, s3, s4, three, two, zero, and zero_four_five.
Referenced by sst::filters::GetQFPtrFilterUnit().
const __m128 zero = _mm_set1_ps(0.0f) |
Referenced by sst::filters::DiodeLadderFilter::process(), process_2_pole(), and process_4_pole().
const __m128 nine_two_zero = _mm_set1_ps(0.00920833f) |
Referenced by diodePairResistanceApprox().
const __m128 zero_zero_five = _mm_set1_ps(0.05f) |
Referenced by diodePairResistanceApprox().
const __m128 eight_seven_six = _mm_set1_ps(0.0876f) |
Referenced by NewtonRaphson12dB().
const __m128 one_zero_three = _mm_set1_ps(0.0103592f) |
Referenced by diodePairResistanceApprox().
const __m128 one_eight_five = _mm_set1_ps(0.185f) |
Referenced by diodePairResistanceApprox().
const __m128 zero_four_five = _mm_set1_ps(0.45f) |
Referenced by process_4_pole().
const __m128 zero_five = _mm_set1_ps(0.5f) |
Referenced by process_2_pole().
const __m128 one = _mm_set1_ps(1.0f) |
Referenced by sst::filters::VintageLadder::RK::clip(), diodePairResistanceApprox(), NewtonRaphson12dB(), NewtonRaphsonR24dB(), sst::filters::DiodeLadderFilter::process(), sst::filters::VintageLadder::Huov::process(), process_2_pole(), process_4_pole(), sst::filters::utilities::tanh7_ps(), and sst::filters::utilities::tanh7_ss().
const __m128 one_three_five = _mm_set1_ps(1.035f) |
Referenced by NewtonRaphson12dB().
const __m128 two = _mm_set1_ps(2.0f) |
Referenced by NewtonRaphson12dB(), sst::filters::VintageLadder::RK::process(), and process_4_pole().
const __m128 three = _mm_set1_ps(3.0f) |
Referenced by process_4_pole().
const __m128 gainAdjustment2Pole = _mm_set1_ps(0.74f) |
Referenced by process_2_pole().
const __m128 gainAdjustment4Pole = _mm_set1_ps(0.6f) |
Referenced by process_4_pole().