aboutsummaryrefslogblamecommitdiffstats
path: root/plugins/LV2/src/EQ/EQ.cpp
blob: 6698760fbab5293c5b9c3a08aa7aae62bc9ea121 (plain) (tree)









































































































































                                                                                               
#include "EQ.h"
#include <iostream>
#include <lv2wrapper.h>

EQ::EQ(double rate)
    : LV2Plugin(rate)
{
}

void EQ::activate()
{
	A = 0.5; //Treble -12 to 12
	B = 0.5; //Mid -12 to 12
	C = 0.5; //Bass -12 to 12
	D = 1.0; //Lowpass 16.0K log 1 to 16 defaulting to 16K
	E = 0.4; //TrebFrq 6.0 log 1 to 16 defaulting to 6K
	F = 0.4; //BassFrq 100.0 log 30 to 1600 defaulting to 100 hz
	G = 0.0; //Hipass 30.0 log 30 to 1600 defaulting to 30
	H = 0.5; //OutGain -18 to 18
	
	lastSampleL = 0.0;
	last2SampleL = 0.0;
	lastSampleR = 0.0;
	last2SampleR = 0.0;
	
	iirHighSampleLA = 0.0;
	iirHighSampleLB = 0.0;
	iirHighSampleLC = 0.0;
	iirHighSampleLD = 0.0;
	iirHighSampleLE = 0.0;
	iirLowSampleLA = 0.0;
	iirLowSampleLB = 0.0;
	iirLowSampleLC = 0.0;
	iirLowSampleLD = 0.0;
	iirLowSampleLE = 0.0;
	iirHighSampleL = 0.0;
	iirLowSampleL = 0.0;
	
	iirHighSampleRA = 0.0;
	iirHighSampleRB = 0.0;
	iirHighSampleRC = 0.0;
	iirHighSampleRD = 0.0;
	iirHighSampleRE = 0.0;
	iirLowSampleRA = 0.0;
	iirLowSampleRB = 0.0;
	iirLowSampleRC = 0.0;
	iirLowSampleRD = 0.0;
	iirLowSampleRE = 0.0;
	iirHighSampleR = 0.0;
	iirLowSampleR = 0.0;
	
	tripletLA = 0.0;
	tripletLB = 0.0;
	tripletLC = 0.0;
	tripletFactorL = 0.0;
	
	tripletRA = 0.0;
	tripletRB = 0.0;
	tripletRC = 0.0;
	tripletFactorR = 0.0;
	
	lowpassSampleLAA = 0.0;
	lowpassSampleLAB = 0.0;
	lowpassSampleLBA = 0.0;
	lowpassSampleLBB = 0.0;
	lowpassSampleLCA = 0.0;
	lowpassSampleLCB = 0.0;
	lowpassSampleLDA = 0.0;
	lowpassSampleLDB = 0.0;
	lowpassSampleLE = 0.0;
	lowpassSampleLF = 0.0;
	lowpassSampleLG = 0.0;
	
	lowpassSampleRAA = 0.0;
	lowpassSampleRAB = 0.0;
	lowpassSampleRBA = 0.0;
	lowpassSampleRBB = 0.0;
	lowpassSampleRCA = 0.0;
	lowpassSampleRCB = 0.0;
	lowpassSampleRDA = 0.0;
	lowpassSampleRDB = 0.0;
	lowpassSampleRE = 0.0;
	lowpassSampleRF = 0.0;
	lowpassSampleRG = 0.0;
	
	highpassSampleLAA = 0.0;
	highpassSampleLAB = 0.0;
	highpassSampleLBA = 0.0;
	highpassSampleLBB = 0.0;
	highpassSampleLCA = 0.0;
	highpassSampleLCB = 0.0;
	highpassSampleLDA = 0.0;
	highpassSampleLDB = 0.0;
	highpassSampleLE = 0.0;
	highpassSampleLF = 0.0;
	
	highpassSampleRAA = 0.0;
	highpassSampleRAB = 0.0;
	highpassSampleRBA = 0.0;
	highpassSampleRBB = 0.0;
	highpassSampleRCA = 0.0;
	highpassSampleRCB = 0.0;
	highpassSampleRDA = 0.0;
	highpassSampleRDB = 0.0;
	highpassSampleRE = 0.0;
	highpassSampleRF = 0.0;
	
	flip = false;
	flipthree = 0;
	
	fpNShapeL = 0.0;
	fpNShapeR = 0.0;
	//this is reset: values being initialized only once. Startup values, whatever they are.
	
}

void EQ::run(uint32_t num_samples)
{
    A = *params[0];
    B = *params[1];
    C = *params[2];
    D = *params[3];
    E = *params[4];
    F = *params[5];
    G = *params[6];
    H = *params[7];

    processReplacing(const_cast<float **>(in), out, num_samples);
}

//
// Include the processing code from the VST version.
//
#include <cmath>
#include "../../../LinuxVST/src/EQ/EQProc.cpp"

// Create the LV2Wrapper and register the plugin
LV2Wrapper<EQ> plugin;