aboutsummaryrefslogblamecommitdiffstats
path: root/plugins/LV2/src/DubSub/DubSub.h
blob: f8ab528b0bc415e845c9a4066f57ae1f3ff1b0fd (plain) (tree)













































































































































                                                                             
#ifndef __DubSub_H
#define __DubSub_H

#include <lv2plugin.h>

class DubSub : public LV2Plugin<10> {
public:
    DubSub(double rate);

    void activate();
    void run(uint32_t num_samples);

    static constexpr const char * URI = "https://www.airwindows.com/dubsub";

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.
     */
        
	
private:		
	double iirDriveSampleAL;
	double iirDriveSampleBL;
	double iirDriveSampleCL;
	double iirDriveSampleDL;
	double iirDriveSampleEL;
	double iirDriveSampleFL;
	double iirDriveSampleAR;
	double iirDriveSampleBR;
	double iirDriveSampleCR;
	double iirDriveSampleDR;
	double iirDriveSampleER;
	double iirDriveSampleFR;
	bool flip; //drive things
	
	int bflip;
	bool WasNegativeL;
	bool SubOctaveL;
	bool WasNegativeR;
	bool SubOctaveR;
	
	double iirHeadBumpAL;
	double iirHeadBumpBL;
	double iirHeadBumpCL;
	double iirHeadBumpAR;
	double iirHeadBumpBR;
	double iirHeadBumpCR;
	
	double iirSubBumpAL;
	double iirSubBumpBL;
	double iirSubBumpCL;
	double iirSubBumpAR;
	double iirSubBumpBR;
	double iirSubBumpCR;
	
	double lastHeadBumpL;
	double lastSubBumpL;
	double lastHeadBumpR;
	double lastSubBumpR;
	
	double iirSampleAL;
	double iirSampleBL;
	double iirSampleCL;
	double iirSampleDL;
	double iirSampleEL;
	double iirSampleFL;
	double iirSampleGL;
	double iirSampleHL;
	double iirSampleIL;
	double iirSampleJL;
	double iirSampleKL;
	double iirSampleLL;
	double iirSampleML;
	double iirSampleNL;
	double iirSampleOL;
	double iirSamplePL;
	double iirSampleQL;
	double iirSampleRL;
	double iirSampleSL;
	double iirSampleTL;
	double iirSampleUL;
	double iirSampleVL;
	double iirSampleWL;
	double iirSampleXL;
	double iirSampleYL;
	double iirSampleZL;
	double iirSampleAR;
	double iirSampleBR;
	double iirSampleCR;
	double iirSampleDR;
	double iirSampleER;
	double iirSampleFR;
	double iirSampleGR;
	double iirSampleHR;
	double iirSampleIR;
	double iirSampleJR;
	double iirSampleKR;
	double iirSampleLR;
	double iirSampleMR;
	double iirSampleNR;
	double iirSampleOR;
	double iirSamplePR;
	double iirSampleQR;
	double iirSampleRR;
	double iirSampleSR;
	double iirSampleTR;
	double iirSampleUR;
	double iirSampleVR;
	double iirSampleWR;
	double iirSampleXR;
	double iirSampleYR;
	double iirSampleZR;
	
	double oscGateL;
	double oscGateR;
	
	
	long double fpNShapeL;
	long double fpNShapeR;
	//default stuff

    float A;
    float B;
    float C;
    float D;
    float E;
    float F;
    float G;
    float H;
    float I;
    float J;

};

#endif