#ifndef __Hermepass_H #define __Hermepass_H #include class Hermepass : public LV2Plugin<2> { public: Hermepass(double rate); void activate(); void run(uint32_t num_samples); static constexpr const char * URI = "https://www.airwindows.com/hermepass"; 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 fpNShapeL; long double fpNShapeR; //default stuff double iirAL; double iirBL; //first stage is the flipping one, for lowest slope. It is always engaged, and is the highest one double iirCL; //we introduce the second pole at the same frequency, to become a pseudo-Capacitor behavior double iirDL; double iirEL; double iirFL; //our slope control will have a pow() on it so that the high orders are way to the right side double iirGL; double iirHL; //seven poles max, and the final pole is always at 20hz directly. double iirAR; double iirBR; //first stage is the flipping one, for lowest slope. It is always engaged, and is the highest one double iirCR; //we introduce the second pole at the same frequency, to become a pseudo-Capacitor behavior double iirDR; double iirER; double iirFR; //our slope control will have a pow() on it so that the high orders are way to the right side double iirGR; double iirHR; //seven poles max, and the final pole is always at 20hz directly. bool fpFlip; float A; float B; }; #endif