aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/LV2/src/BassKit/BassKit.h
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2020-08-02 22:27:04 +0200
committerHarald Eilertsen <haraldei@anduin.net>2020-08-02 22:27:04 +0200
commitc19599e7009afc1d6e859a0129ae9fc22427fb98 (patch)
treef8545423b50714fbf7b5765b9072bfbd74c45333 /plugins/LV2/src/BassKit/BassKit.h
parent3338e9d4c7816ee3281c304c5dae6ade5dca6a41 (diff)
downloadairwindows-lv2-port-c19599e7009afc1d6e859a0129ae9fc22427fb98.tar.gz
airwindows-lv2-port-c19599e7009afc1d6e859a0129ae9fc22427fb98.tar.bz2
airwindows-lv2-port-c19599e7009afc1d6e859a0129ae9fc22427fb98.zip
LV2: Port BassKit plugin.
There's an issue, where it seems the plugin will only produce noise if it's active when starting playback. Enabling it after playback has started seems to work fine. This is puzzling and will have to be investigated further at some time.
Diffstat (limited to 'plugins/LV2/src/BassKit/BassKit.h')
-rw-r--r--plugins/LV2/src/BassKit/BassKit.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/plugins/LV2/src/BassKit/BassKit.h b/plugins/LV2/src/BassKit/BassKit.h
new file mode 100644
index 0000000..a5d5d12
--- /dev/null
+++ b/plugins/LV2/src/BassKit/BassKit.h
@@ -0,0 +1,85 @@
+#ifndef __BassKit_H
+#define __BassKit_H
+
+#include <lv2plugin.h>
+
+class BassKit : public LV2Plugin<4> {
+public:
+ BassKit(double rate);
+
+ void run(uint32_t num_samples);
+
+ static constexpr const char * URI = "https://www.airwindows.com/basskit";
+
+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.
+ */
+ double iirDriveSampleA;
+ double iirDriveSampleB;
+ double iirDriveSampleC;
+ double iirDriveSampleD;
+ double iirDriveSampleE;
+ double iirDriveSampleF;
+ bool flip; //drive things
+
+ int bflip;
+ bool WasNegative;
+ bool SubOctave;
+ double iirHeadBumpA;
+ double iirHeadBumpB;
+ double iirHeadBumpC;
+
+ double iirSubBumpA;
+ double iirSubBumpB;
+ double iirSubBumpC;
+
+ double lastHeadBump;
+ double lastSubBump;
+
+ double iirSampleA;
+ double iirSampleB;
+ double iirSampleC;
+ double iirSampleD;
+ double iirSampleE;
+ double iirSampleF;
+ double iirSampleG;
+ double iirSampleH;
+ double iirSampleI;
+ double iirSampleJ;
+ double iirSampleK;
+ double iirSampleL;
+ double iirSampleM;
+ double iirSampleN;
+ double iirSampleO;
+ double iirSampleP;
+ double iirSampleQ;
+ double iirSampleR;
+ double iirSampleS;
+ double iirSampleT;
+ double iirSampleU;
+ double iirSampleV;
+ double iirSampleW;
+ double iirSampleX;
+ double iirSampleY;
+ double iirSampleZ;
+ double oscGate;
+
+ long double fpNShapeL;
+ long double fpNShapeR;
+ //default stuff
+
+ float A;
+ float B;
+ float C;
+ float D;
+};
+
+#endif