#ifndef __Biquad2_H #define __Biquad2_H #include class Biquad2 : public LV2Plugin<5> { public: Biquad2(double rate); void activate(); void run(uint32_t num_samples); static constexpr const char * URI = "https://www.airwindows.com/biquad2"; private: /* * These are the original DSP functions from the VST plugin. * They need to be called from the LV2 plugins `run` function. */ void processReplacing(float **in, float **out, VstInt32 samples); void processDoubleReplacing(double **in, double **out, VstInt32 samples); /* * Members needed by the processing functions. */ long double biquad[15]; //note that this stereo form doesn't require L and R forms! //This is because so much of it is coefficients etc. that are the same on both channels. //So the stored samples are in 7-8-9-10 and 11-12-13-14, and freq/res/coefficients serve both. double bL[11]; double bR[11]; double f[11]; double frequencychase; double resonancechase; double outputchase; double wetchase; double frequencysetting; double resonancesetting; double outputsetting; double wetsetting; double chasespeed; uint32_t fpd; //default stuff float A; float B; float C; float D; float E; }; #endif