#ifndef __BitGlitter_H #define __BitGlitter_H #include class BitGlitter : public LV2Plugin<4> { public: BitGlitter(double rate); void activate(); void run(uint32_t num_samples); static constexpr const char * URI = "https://www.airwindows.com/bitglitter"; 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; double ataLastSampleL; double ataHalfwaySampleL; double ataDrySampleL; double lastSampleL; double heldSampleAL; double heldSampleBL; double positionAL; double positionBL; double lastOutputSampleL; double ataLastSampleR; double ataHalfwaySampleR; double ataDrySampleR; double lastSampleR; double heldSampleAR; double heldSampleBR; double positionAR; double positionBR; double lastOutputSampleR; //there is no noise shaping on this one, it uses all sorts of quantization to get its sound float A; float B; float C; float D; }; #endif