#ifndef __CStrip_H #define __CStrip_H #include class CStrip : public LV2Plugin<12> { public: CStrip(double rate); void activate(); void run(uint32_t num_samples); static constexpr const char * URI = "https://www.airwindows.com/cstrip"; 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 lastSampleL; double last2SampleL; double lastSampleR; double last2SampleR; //begin EQ double iirHighSampleLA; double iirHighSampleLB; double iirHighSampleLC; double iirHighSampleLD; double iirHighSampleLE; double iirLowSampleLA; double iirLowSampleLB; double iirLowSampleLC; double iirLowSampleLD; double iirLowSampleLE; double iirHighSampleL; double iirLowSampleL; double iirHighSampleRA; double iirHighSampleRB; double iirHighSampleRC; double iirHighSampleRD; double iirHighSampleRE; double iirLowSampleRA; double iirLowSampleRB; double iirLowSampleRC; double iirLowSampleRD; double iirLowSampleRE; double iirHighSampleR; double iirLowSampleR; double tripletLA; double tripletLB; double tripletLC; double tripletFactorL; double tripletRA; double tripletRB; double tripletRC; double tripletFactorR; double lowpassSampleLAA; double lowpassSampleLAB; double lowpassSampleLBA; double lowpassSampleLBB; double lowpassSampleLCA; double lowpassSampleLCB; double lowpassSampleLDA; double lowpassSampleLDB; double lowpassSampleLE; double lowpassSampleLF; double lowpassSampleLG; double lowpassSampleRAA; double lowpassSampleRAB; double lowpassSampleRBA; double lowpassSampleRBB; double lowpassSampleRCA; double lowpassSampleRCB; double lowpassSampleRDA; double lowpassSampleRDB; double lowpassSampleRE; double lowpassSampleRF; double lowpassSampleRG; double highpassSampleLAA; double highpassSampleLAB; double highpassSampleLBA; double highpassSampleLBB; double highpassSampleLCA; double highpassSampleLCB; double highpassSampleLDA; double highpassSampleLDB; double highpassSampleLE; double highpassSampleLF; double highpassSampleRAA; double highpassSampleRAB; double highpassSampleRBA; double highpassSampleRBB; double highpassSampleRCA; double highpassSampleRCB; double highpassSampleRDA; double highpassSampleRDB; double highpassSampleRE; double highpassSampleRF; bool flip; int flipthree; //end EQ //begin Gate bool WasNegativeL; int ZeroCrossL; double gaterollerL; double gateL; bool WasNegativeR; int ZeroCrossR; double gaterollerR; double gateR; //end Gate //begin Timing double pL[4099]; double pR[4099]; int count; //end Timing //begin ButterComp double controlAposL; double controlAnegL; double controlBposL; double controlBnegL; double targetposL; double targetnegL; double avgLA; double avgLB; double nvgLA; double nvgLB; double controlAposR; double controlAnegR; double controlBposR; double controlBnegR; double targetposR; double targetnegR; double avgRA; double avgRB; double nvgRA; double nvgRB; //end ButterComp //flip is already covered in EQ float A; float B; float C; float D; float E; float F; float G; float H; float I; float J; float K; float L; }; #endif