#ifndef __Air_H #define __Air_H #include #include class Air : protected LV2Plugin { public: Air(double rate); void connect_port(uint32_t port, void * data); void run(uint32_t num_samples); static constexpr const char * URI = "https://www.airwindows.com/air"; 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); const float * tap22; const float * tap15; const float * tap11; const float * filters_q; const float * out_level; const float * dry_wet; const float * in[2]; float * out[2]; /* * Members needed by the processing functions. */ double airPrevAL; double airEvenAL; double airOddAL; double airFactorAL; double airPrevBL; double airEvenBL; double airOddBL; double airFactorBL; double airPrevCL; double airEvenCL; double airOddCL; double airFactorCL; double tripletPrevL; double tripletMidL; double tripletAL; double tripletBL; double tripletCL; double tripletFactorL; double airPrevAR; double airEvenAR; double airOddAR; double airFactorAR; double airPrevBR; double airEvenBR; double airOddBR; double airFactorBR; double airPrevCR; double airEvenCR; double airOddCR; double airFactorCR; double tripletPrevR; double tripletMidR; double tripletAR; double tripletBR; double tripletCR; double tripletFactorR; bool flipA; bool flipB; bool flop; int count; long double fpNShapeL; long double fpNShapeR; // //default stuff float A; float B; float C; float D; //parameters. Always 0-1, and we scale/alter them elsewhere. float E; float F; }; #endif