DSP code for Surge waveshapers. More...
Namespaces | |
namespace | utilities |
Utility code needed for Surge waveshapers. | |
Classes | |
struct | ChebSeries |
struct | FolderADAA |
struct | LUTBase |
struct | QuadWaveshaperState |
struct | WaveshaperTables |
Lookup table for waveshapers. More... | |
Typedefs | |
using | portable_minstd_rand = std::linear_congruential_engine< uint_fast32_t, 48271, 0, 2147483647 > |
typedef SIMD_M128(* | QuadWaveshaperPtr) (QuadWaveshaperState *__restrict, SIMD_M128 in, SIMD_M128 drive) |
Enumerations | |
enum class | WaveshaperType { wst_none = 0 , wst_soft , wst_hard , wst_asym , wst_sine , wst_digital , wst_cheby2 , wst_cheby3 , wst_cheby4 , wst_cheby5 , wst_fwrectify , wst_poswav , wst_negwav , wst_softrect , wst_singlefold , wst_dualfold , wst_westfold , wst_add12 , wst_add13 , wst_add14 , wst_add15 , wst_add12345 , wst_addsaw3 , wst_addsqr3 , wst_fuzz , wst_fuzzsoft , wst_fuzzheavy , wst_fuzzctr , wst_fuzzsoftedge , wst_sinpx , wst_sin2xpb , wst_sin3xpb , wst_sin7xpb , wst_sin10xpb , wst_2cyc , wst_7cyc , wst_10cyc , wst_2cycbound , wst_7cycbound , wst_10cycbound , wst_zamsat , wst_ojd , wst_softfold , wst_linearfold , wst_sinefold , n_ws_types } |
Variables | |
constexpr int | n_waveshaper_registers = 4 |
const char | wst_names [(int) WaveshaperType::n_ws_types][32] |
DSP code for Surge waveshapers.
using portable_minstd_rand = std::linear_congruential_engine<uint_fast32_t, 48271, 0, 2147483647> |
typedef SIMD_M128(* QuadWaveshaperPtr) (QuadWaveshaperState *__restrict, SIMD_M128 in, SIMD_M128 drive) |
|
strong |
SIMD_M128 ADAA | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x | ||
) |
SIMD_M128 dcBlock | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x | ||
) |
Referenced by ADAA_FULL_WAVE(), ADAA_NEG_WAVE(), ADAA_POS_WAVE(), ADAA_SOFTRECT_WAVE(), ASYM_SSE2(), cheb2_kernel(), cheb3_kernel(), cheb4_kernel(), cheb5_kernel(), ChebSeries< len >::ChebSeries(), CHEBY_CORE(), CLIP(), dualFoldADAA(), ChebSeries< len >::eval(), FolderADAA< pts >::evaluate(), FolderADAA< pts >::FolderADAA(), Fuzz(), FuzzCtrTable(), FuzzEdgeTable(), fwrect_kernel(), GetQuadWaveshaper(), initializeWaveshaperRegister(), LINFOLD_SSE2(), LUTBase< NP, F >::LUTBase(), negrect_kernel(), OJD(), Plus12(), Plus12345(), Plus13(), Plus14(), Plus15(), PlusSaw3(), PlusSqr3(), posrect_kernel(), WaveshaperTables::shafted_tanh(), singleFoldADAA(), SinNX(), SinNXBound(), SinNXPlusXBound(), SinPlusX(), SoftOneFold(), softrect_kernel(), TableEval(), TANH(), WAVEFOLDER(), WaveshaperGroupName(), WaveshaperTables::WaveshaperTables(), westCoastFoldADAA(), WS_LUT(), WS_PM1_LUT(), and ZAMSAT().
SIMD_M128 DIGI_SSE2 | ( | QuadWaveshaperState * | __restrict, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
Referenced by GetQuadWaveshaper().
SIMD_M128 SINUS_SSE2 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References wst_sine.
SIMD_M128 Fuzz | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
References dcBlock().
SIMD_M128 CHEBY_CORE | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
SIMD_M128 Plus12 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock(), and TANH().
Referenced by GetQuadWaveshaper().
SIMD_M128 Plus13 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock(), and TANH().
Referenced by GetQuadWaveshaper().
SIMD_M128 Plus14 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock(), and TANH().
Referenced by GetQuadWaveshaper().
SIMD_M128 Plus15 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock(), and TANH().
Referenced by GetQuadWaveshaper().
SIMD_M128 Plus12345 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock(), and TANH().
Referenced by GetQuadWaveshaper().
SIMD_M128 PlusSaw3 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock(), and TANH().
Referenced by GetQuadWaveshaper().
SIMD_M128 PlusSqr3 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock(), and TANH().
Referenced by GetQuadWaveshaper().
QuadWaveshaperPtr GetQuadWaveshaper | ( | WaveshaperType | type | ) |
References ADAA_FULL_WAVE(), ADAA_SOFTRECT_WAVE(), ASYM_SSE2(), CLIP(), dcBlock(), DIGI_SSE2(), LINFOLD_SSE2(), n_ws_types, OJD(), Plus12(), Plus12345(), Plus13(), Plus14(), Plus15(), PlusSaw3(), PlusSqr3(), SoftOneFold(), TANH(), wst_10cyc, wst_10cycbound, wst_2cyc, wst_2cycbound, wst_7cyc, wst_7cycbound, wst_add12, wst_add12345, wst_add13, wst_add14, wst_add15, wst_addsaw3, wst_addsqr3, wst_asym, wst_cheby2, wst_cheby3, wst_cheby4, wst_cheby5, wst_digital, wst_dualfold, wst_fuzz, wst_fuzzctr, wst_fuzzheavy, wst_fuzzsoft, wst_fuzzsoftedge, wst_fwrectify, wst_hard, wst_linearfold, wst_negwav, wst_none, wst_ojd, wst_poswav, wst_sin10xpb, wst_sin2xpb, wst_sin3xpb, wst_sin7xpb, wst_sine, wst_sinefold, wst_singlefold, wst_sinpx, wst_soft, wst_softfold, wst_softrect, wst_westfold, wst_zamsat, and ZAMSAT().
void initializeWaveshaperRegister | ( | WaveshaperType | type, |
float | R[n_waveshaper_registers] | ||
) |
References dcBlock(), and n_waveshaper_registers.
SIMD_M128 ADAA_POS_WAVE | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
SIMD_M128 ADAA_NEG_WAVE | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
SIMD_M128 ADAA_FULL_WAVE | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
References CLIP(), and dcBlock().
Referenced by GetQuadWaveshaper().
SIMD_M128 ADAA_SOFTRECT_WAVE | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
References dcBlock(), and TANH().
Referenced by GetQuadWaveshaper().
SIMD_M128 CLIP | ( | QuadWaveshaperState * | __restrict, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock().
Referenced by ADAA_FULL_WAVE(), ADAA_NEG_WAVE(), ADAA_POS_WAVE(), GetQuadWaveshaper(), and ZAMSAT().
SIMD_M128 TANH | ( | QuadWaveshaperState * | __restrict, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock().
Referenced by ADAA_SOFTRECT_WAVE(), CHEBY_CORE(), GetQuadWaveshaper(), Plus12(), Plus12345(), Plus13(), Plus14(), Plus15(), PlusSaw3(), and PlusSqr3().
SIMD_M128 ZAMSAT | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
References CLIP(), and dcBlock().
Referenced by GetQuadWaveshaper().
SIMD_M128 ASYM_SSE2 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock(), and wst_asym.
Referenced by GetQuadWaveshaper().
SIMD_M128 OJD | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
References dcBlock().
Referenced by GetQuadWaveshaper().
SIMD_M128 WAVEFOLDER | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
References dcBlock().
SIMD_M128 SoftOneFold | ( | QuadWaveshaperState * | __restrict, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
References dcBlock().
Referenced by GetQuadWaveshaper().
SIMD_M128 LINFOLD_SSE2 | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock().
Referenced by GetQuadWaveshaper().
std::vector< std::pair< int, std::string > > WaveshaperGroupName | ( | ) |
References dcBlock(), wst_10cyc, wst_10cycbound, wst_2cyc, wst_2cycbound, wst_7cyc, wst_7cycbound, wst_add12, wst_add12345, wst_add13, wst_add14, wst_add15, wst_addsaw3, wst_addsqr3, wst_asym, wst_cheby2, wst_cheby3, wst_cheby4, wst_cheby5, wst_digital, wst_dualfold, wst_fuzz, wst_fuzzctr, wst_fuzzheavy, wst_fuzzsoft, wst_fuzzsoftedge, wst_fwrectify, wst_hard, wst_linearfold, wst_negwav, wst_none, wst_ojd, wst_poswav, wst_sin10xpb, wst_sin2xpb, wst_sin3xpb, wst_sin7xpb, wst_sine, wst_sinefold, wst_singlefold, wst_sinpx, wst_soft, wst_softfold, wst_softrect, wst_westfold, and wst_zamsat.
SIMD_M128 WS_LUT | ( | QuadWaveshaperState * | __restrict, |
const float * | table, | ||
SIMD_M128 | in, | ||
SIMD_M128 | drive | ||
) |
References dcBlock().
SIMD_M128 TableEval | ( | QuadWaveshaperState *__restrict | s, |
SIMD_M128 | x, | ||
SIMD_M128 | drive | ||
) |
References dcBlock().
Referenced by initializeWaveshaperRegister().
const char wst_names[(int) WaveshaperType::n_ws_types][32] |