aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/LV2/src/PurestSquish/PurestSquish.h
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2021-07-31 21:34:28 +0200
committerHarald Eilertsen <haraldei@anduin.net>2021-07-31 21:34:28 +0200
commit1bd34fa795d0eac15d0dc9d4c756f19fc6624872 (patch)
treefdb9bb2e5e20a0adb2953597beafd66aa7c924fc /plugins/LV2/src/PurestSquish/PurestSquish.h
parent94a6cc3d6c70883e08fd7be16e9405d44bfb94e5 (diff)
downloadairwindows-lv2-port-1bd34fa795d0eac15d0dc9d4c756f19fc6624872.tar.gz
airwindows-lv2-port-1bd34fa795d0eac15d0dc9d4c756f19fc6624872.tar.bz2
airwindows-lv2-port-1bd34fa795d0eac15d0dc9d4c756f19fc6624872.zip
LV2: Port another batch of plugins, EQ - SurgeTide
Some plugins won't compile for various reasons, these have been left out for now. One plugin failed autoporting, so that one's left out too. I have not tested these plugins yet, so no guarantees that they work, or that they work right. Please report any problems or if there's missing control info to the mailing list.
Diffstat (limited to 'plugins/LV2/src/PurestSquish/PurestSquish.h')
-rw-r--r--plugins/LV2/src/PurestSquish/PurestSquish.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/plugins/LV2/src/PurestSquish/PurestSquish.h b/plugins/LV2/src/PurestSquish/PurestSquish.h
new file mode 100644
index 0000000..b6a8892
--- /dev/null
+++ b/plugins/LV2/src/PurestSquish/PurestSquish.h
@@ -0,0 +1,87 @@
+#ifndef __PurestSquish_H
+#define __PurestSquish_H
+
+#include <lv2plugin.h>
+
+class PurestSquish : public LV2Plugin<4> {
+public:
+ PurestSquish(double rate);
+
+ void activate();
+ void run(uint32_t num_samples);
+
+ static constexpr const char * URI = "https://www.airwindows.com/purestsquish";
+
+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.
+ */
+
+ uint32_t fpd;
+ //default stuff
+
+ float A;
+ float B;
+ float C;
+ float D;
+
+ double muVaryL;
+ double muAttackL;
+ double muNewSpeedL;
+ double muSpeedAL;
+ double muSpeedBL;
+ double muSpeedCL;
+ double muSpeedDL;
+ double muSpeedEL;
+ double muCoefficientAL;
+ double muCoefficientBL;
+ double muCoefficientCL;
+ double muCoefficientDL;
+ double muCoefficientEL;
+ double iirSampleAL;
+ double iirSampleBL;
+ double iirSampleCL;
+ double iirSampleDL;
+ double iirSampleEL;
+ double lastCoefficientAL;
+ double lastCoefficientBL;
+ double lastCoefficientCL;
+ double lastCoefficientDL;
+ double mergedCoefficientsL;
+
+ double muVaryR;
+ double muAttackR;
+ double muNewSpeedR;
+ double muSpeedAR;
+ double muSpeedBR;
+ double muSpeedCR;
+ double muSpeedDR;
+ double muSpeedER;
+ double muCoefficientAR;
+ double muCoefficientBR;
+ double muCoefficientCR;
+ double muCoefficientDR;
+ double muCoefficientER;
+ double iirSampleAR;
+ double iirSampleBR;
+ double iirSampleCR;
+ double iirSampleDR;
+ double iirSampleER;
+ double lastCoefficientAR;
+ double lastCoefficientBR;
+ double lastCoefficientCR;
+ double lastCoefficientDR;
+ double mergedCoefficientsR;
+
+ int count;
+ bool fpFlip;
+};
+
+#endif