aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/LV2/src/NonlinearSpace/NonlinearSpace.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/NonlinearSpace/NonlinearSpace.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/NonlinearSpace/NonlinearSpace.h')
-rw-r--r--plugins/LV2/src/NonlinearSpace/NonlinearSpace.h190
1 files changed, 190 insertions, 0 deletions
diff --git a/plugins/LV2/src/NonlinearSpace/NonlinearSpace.h b/plugins/LV2/src/NonlinearSpace/NonlinearSpace.h
new file mode 100644
index 0000000..eeda537
--- /dev/null
+++ b/plugins/LV2/src/NonlinearSpace/NonlinearSpace.h
@@ -0,0 +1,190 @@
+#ifndef __NonlinearSpace_H
+#define __NonlinearSpace_H
+
+#include <lv2plugin.h>
+
+class NonlinearSpace : public LV2Plugin<6> {
+public:
+ NonlinearSpace(double rate);
+
+ void activate();
+ void run(uint32_t num_samples);
+
+ static constexpr const char * URI = "https://www.airwindows.com/nonlinearspace";
+
+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 avgInputL;
+ double avgOutputL;
+ double avg2InputL;
+ double avg2OutputL;
+ double avgInputR;
+ double avgOutputR;
+ double avg2InputR;
+ double avg2OutputR;
+ double a2vgInputL;
+ double a2vgOutputL;
+ double a2vg2InputL;
+ double a2vg2OutputL;
+ double a2vgInputR;
+ double a2vgOutputR;
+ double a2vg2InputR;
+ double a2vg2OutputR;
+
+ double verboutL;
+ double verboutR;
+ double iirCCSampleL;
+ double iirCCSampleR;
+ double iirSampleL;
+ double iirSampleR;
+
+ double dMid[2348];
+ double dSide[1334];
+ double dLeft[5924];
+ double dRight[5926];
+
+ double dpreR[7575];
+ double dpreL[7575];
+
+ double dA[7575];
+ double dB[7309];
+ double dC[7179];
+ double dD[6909];
+ double dE[6781];
+ double dF[6523];
+ double dG[5983];
+ double dH[5565];
+ double dI[5299];
+ double dJ[4905];
+ double dK[4761];
+ double dL[4491];
+ double dM[4393];
+ double dN[4231];
+ double dO[4155];
+ double dP[3991];
+ double dQ[3661];
+ double dR[3409];
+ double dS[3253];
+ double dT[3001];
+ double dU[2919];
+ double dV[2751];
+ double dW[2505];
+ double dX[2425];
+ double dY[2148];
+ double dZ[2090];
+
+ double interpolA, pitchshiftA; //7575
+ double interpolB, pitchshiftB; //7309
+ double interpolC, pitchshiftC; //7179
+ double interpolD, pitchshiftD; //6909
+ double interpolE, pitchshiftE; //6781
+ double interpolF, pitchshiftF; //6523
+ double interpolG, pitchshiftG; //5983
+ double interpolH, pitchshiftH; //5565
+ double interpolI, pitchshiftI; //5299
+ double interpolJ, pitchshiftJ; //4905
+ double interpolK, pitchshiftK; //4761
+ double interpolL, pitchshiftL; //4491
+ double interpolM, pitchshiftM; //4393
+ double interpolN, pitchshiftN; //4231
+ double interpolO, pitchshiftO; //4155
+ double interpolP, pitchshiftP; //3991
+ double interpolQ, pitchshiftQ; //3661
+ double interpolR, pitchshiftR; //3409
+ double interpolS, pitchshiftS; //3253
+ double interpolT, pitchshiftT; //3001
+ double interpolU, pitchshiftU; //2919
+ double interpolV, pitchshiftV; //2751
+ double interpolW, pitchshiftW; //2505
+ double interpolX, pitchshiftX; //2425
+ double interpolY, pitchshiftY; //2148
+ double interpolZ, pitchshiftZ; //2090
+
+ int oneMid, delayMid, maxdelayMid;
+ int oneSide, delaySide, maxdelaySide;
+ int oneLeft, delayLeft, maxdelayLeft;
+ int oneRight, delayRight, maxdelayRight;
+
+ int onepre, delaypre, maxdelaypre;
+
+ int oneA, twoA, treA, delayA, maxdelayA;
+ int oneB, twoB, treB, delayB, maxdelayB;
+ int oneC, twoC, treC, delayC, maxdelayC;
+ int oneD, twoD, treD, delayD, maxdelayD;
+ int oneE, twoE, treE, delayE, maxdelayE;
+ int oneF, twoF, treF, delayF, maxdelayF;
+ int oneG, twoG, treG, delayG, maxdelayG;
+ int oneH, twoH, treH, delayH, maxdelayH;
+ int oneI, twoI, treI, delayI, maxdelayI;
+ int oneJ, twoJ, treJ, delayJ, maxdelayJ;
+ int oneK, twoK, treK, delayK, maxdelayK;
+ int oneL, twoL, treL, delayL, maxdelayL;
+ int oneM, twoM, treM, delayM, maxdelayM;
+ int oneN, twoN, treN, delayN, maxdelayN;
+ int oneO, twoO, treO, delayO, maxdelayO;
+ int oneP, twoP, treP, delayP, maxdelayP;
+ int oneQ, twoQ, treQ, delayQ, maxdelayQ;
+ int oneR, twoR, treR, delayR, maxdelayR;
+ int oneS, twoS, treS, delayS, maxdelayS;
+ int oneT, twoT, treT, delayT, maxdelayT;
+ int oneU, twoU, treU, delayU, maxdelayU;
+ int oneV, twoV, treV, delayV, maxdelayV;
+ int oneW, twoW, treW, delayW, maxdelayW;
+ int oneX, twoX, treX, delayX, maxdelayX;
+ int oneY, twoY, treY, delayY, maxdelayY;
+ int oneZ, twoZ, treZ, delayZ, maxdelayZ;
+ double savedPredelay;
+ double savedRoomsize;
+ int countdown;
+
+ double lowpassSampleAA;
+ double lowpassSampleAB;
+ double lowpassSampleBA;
+ double lowpassSampleBB;
+ double lowpassSampleCA;
+ double lowpassSampleCB;
+ double lowpassSampleDA;
+ double lowpassSampleDB;
+ double lowpassSampleE;
+ double lowpassSampleF;
+ double lowpassSampleG;
+
+ double rowpassSampleAA;
+ double rowpassSampleAB;
+ double rowpassSampleBA;
+ double rowpassSampleBB;
+ double rowpassSampleCA;
+ double rowpassSampleCB;
+ double rowpassSampleDA;
+ double rowpassSampleDB;
+ double rowpassSampleE;
+ double rowpassSampleF;
+ double rowpassSampleG;
+
+ bool flip;
+
+ double nonlin;
+
+ long double fpNShapeL;
+ long double fpNShapeR;
+ //default stuff
+
+ float A;
+ float B;
+ float C;
+ float D;
+ float E;
+ float F; //parameters. Always 0-1, and we scale/alter them elsewhere.
+};
+
+#endif