aboutsummaryrefslogblamecommitdiffstats
path: root/plugins/LV2/src/CStrip/CStrip.h
blob: 548a6ea1d414480280a19357c8076776713e0617 (plain) (tree)




















































































































































































                                                                             
#ifndef __CStrip_H
#define __CStrip_H

#include <lv2plugin.h>

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