#ifndef __Tape_H #define __Tape_H #include class Tape : public LV2Plugin<2> { public: Tape(double rate); void activate(); void run(uint32_t num_samples); static constexpr const char * URI = "https://www.airwindows.com/tape"; 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. */ double iirMidRollerAL; double iirMidRollerBL; double iirHeadBumpAL; double iirHeadBumpBL; double iirMidRollerAR; double iirMidRollerBR; double iirHeadBumpAR; double iirHeadBumpBR; long double biquadAL[9]; long double biquadBL[9]; long double biquadCL[9]; long double biquadDL[9]; long double biquadAR[9]; long double biquadBR[9]; long double biquadCR[9]; long double biquadDR[9]; bool flip; long double lastSampleL; long double lastSampleR; uint32_t fpd; //default stuff float A; float B; }; #endif