diff options
Diffstat (limited to 'plugins/LV2/src/PocketVerbs')
-rw-r--r-- | plugins/LV2/src/PocketVerbs/PocketVerbs.cpp | 213 | ||||
-rw-r--r-- | plugins/LV2/src/PocketVerbs/PocketVerbs.h | 264 | ||||
-rw-r--r-- | plugins/LV2/src/PocketVerbs/PocketVerbs.ttl | 68 | ||||
-rw-r--r-- | plugins/LV2/src/PocketVerbs/manifest.ttl.in | 6 |
4 files changed, 551 insertions, 0 deletions
diff --git a/plugins/LV2/src/PocketVerbs/PocketVerbs.cpp b/plugins/LV2/src/PocketVerbs/PocketVerbs.cpp new file mode 100644 index 0000000..f850482 --- /dev/null +++ b/plugins/LV2/src/PocketVerbs/PocketVerbs.cpp @@ -0,0 +1,213 @@ +#include "PocketVerbs.h" +#include <iostream> +#include <lv2wrapper.h> + +PocketVerbs::PocketVerbs(double rate) + : LV2Plugin(rate) +{ +} + +void PocketVerbs::activate() +{ + A = 0.0; + B = 0.5; + C = 0.0; + D = 0.5; + + for(count = 0; count < 6; count++) {dAL[count] = 0.0; dBL[count] = 0.0; dCL[count] = 0.0; dDL[count] = 0.0; dEL[count] = 0.0; + dFL[count] = 0.0; dGL[count] = 0.0; dHL[count] = 0.0; dIL[count] = 0.0; dJL[count] = 0.0; dKL[count] = 0.0; dLL[count] = 0.0; + dML[count] = 0.0; dNL[count] = 0.0; dOL[count] = 0.0; dPL[count] = 0.0; dQL[count] = 0.0; dRL[count] = 0.0; dSL[count] = 0.0; + dTL[count] = 0.0; dUL[count] = 0.0; dVL[count] = 0.0; dWL[count] = 0.0; dXL[count] = 0.0; dYL[count] = 0.0; dZL[count] = 0.0;} + + for(count = 0; count < 15149; count++) {aAL[count] = 0.0;} + for(count = 0; count < 15149; count++) {oAL[count] = 0.0;} + for(count = 0; count < 14617; count++) {aBL[count] = 0.0;} + for(count = 0; count < 14617; count++) {oBL[count] = 0.0;} + for(count = 0; count < 14357; count++) {aCL[count] = 0.0;} + for(count = 0; count < 14357; count++) {oCL[count] = 0.0;} + for(count = 0; count < 13817; count++) {aDL[count] = 0.0;} + for(count = 0; count < 13817; count++) {oDL[count] = 0.0;} + for(count = 0; count < 13561; count++) {aEL[count] = 0.0;} + for(count = 0; count < 13561; count++) {oEL[count] = 0.0;} + for(count = 0; count < 13045; count++) {aFL[count] = 0.0;} + for(count = 0; count < 13045; count++) {oFL[count] = 0.0;} + for(count = 0; count < 11965; count++) {aGL[count] = 0.0;} + for(count = 0; count < 11965; count++) {oGL[count] = 0.0;} + for(count = 0; count < 11129; count++) {aHL[count] = 0.0;} + for(count = 0; count < 11129; count++) {oHL[count] = 0.0;} + for(count = 0; count < 10597; count++) {aIL[count] = 0.0;} + for(count = 0; count < 10597; count++) {oIL[count] = 0.0;} + for(count = 0; count < 9809; count++) {aJL[count] = 0.0;} + for(count = 0; count < 9809; count++) {oJL[count] = 0.0;} + for(count = 0; count < 9521; count++) {aKL[count] = 0.0;} + for(count = 0; count < 9521; count++) {oKL[count] = 0.0;} + for(count = 0; count < 8981; count++) {aLL[count] = 0.0;} + for(count = 0; count < 8981; count++) {oLL[count] = 0.0;} + for(count = 0; count < 8785; count++) {aML[count] = 0.0;} + for(count = 0; count < 8785; count++) {oML[count] = 0.0;} + for(count = 0; count < 8461; count++) {aNL[count] = 0.0;} + for(count = 0; count < 8461; count++) {oNL[count] = 0.0;} + for(count = 0; count < 8309; count++) {aOL[count] = 0.0;} + for(count = 0; count < 8309; count++) {oOL[count] = 0.0;} + for(count = 0; count < 7981; count++) {aPL[count] = 0.0;} + for(count = 0; count < 7981; count++) {oPL[count] = 0.0;} + for(count = 0; count < 7321; count++) {aQL[count] = 0.0;} + for(count = 0; count < 7321; count++) {oQL[count] = 0.0;} + for(count = 0; count < 6817; count++) {aRL[count] = 0.0;} + for(count = 0; count < 6817; count++) {oRL[count] = 0.0;} + for(count = 0; count < 6505; count++) {aSL[count] = 0.0;} + for(count = 0; count < 6505; count++) {oSL[count] = 0.0;} + for(count = 0; count < 6001; count++) {aTL[count] = 0.0;} + for(count = 0; count < 6001; count++) {oTL[count] = 0.0;} + for(count = 0; count < 5837; count++) {aUL[count] = 0.0;} + for(count = 0; count < 5837; count++) {oUL[count] = 0.0;} + for(count = 0; count < 5501; count++) {aVL[count] = 0.0;} + for(count = 0; count < 5501; count++) {oVL[count] = 0.0;} + for(count = 0; count < 5009; count++) {aWL[count] = 0.0;} + for(count = 0; count < 5009; count++) {oWL[count] = 0.0;} + for(count = 0; count < 4849; count++) {aXL[count] = 0.0;} + for(count = 0; count < 4849; count++) {oXL[count] = 0.0;} + for(count = 0; count < 4295; count++) {aYL[count] = 0.0;} + for(count = 0; count < 4295; count++) {oYL[count] = 0.0;} + for(count = 0; count < 4179; count++) {aZL[count] = 0.0;} + for(count = 0; count < 4179; count++) {oZL[count] = 0.0;} + + for(count = 0; count < 6; count++) {dAR[count] = 0.0; dBR[count] = 0.0; dCR[count] = 0.0; dDR[count] = 0.0; dER[count] = 0.0; + dFR[count] = 0.0; dGR[count] = 0.0; dHR[count] = 0.0; dIR[count] = 0.0; dJR[count] = 0.0; dKR[count] = 0.0; dLR[count] = 0.0; + dMR[count] = 0.0; dNR[count] = 0.0; dOR[count] = 0.0; dPR[count] = 0.0; dQR[count] = 0.0; dRR[count] = 0.0; dSR[count] = 0.0; + dTR[count] = 0.0; dUR[count] = 0.0; dVR[count] = 0.0; dWR[count] = 0.0; dXR[count] = 0.0; dYR[count] = 0.0; dZR[count] = 0.0;} + + for(count = 0; count < 15149; count++) {aAR[count] = 0.0;} + for(count = 0; count < 15149; count++) {oAR[count] = 0.0;} + for(count = 0; count < 14617; count++) {aBR[count] = 0.0;} + for(count = 0; count < 14617; count++) {oBR[count] = 0.0;} + for(count = 0; count < 14357; count++) {aCR[count] = 0.0;} + for(count = 0; count < 14357; count++) {oCR[count] = 0.0;} + for(count = 0; count < 13817; count++) {aDR[count] = 0.0;} + for(count = 0; count < 13817; count++) {oDR[count] = 0.0;} + for(count = 0; count < 13561; count++) {aER[count] = 0.0;} + for(count = 0; count < 13561; count++) {oER[count] = 0.0;} + for(count = 0; count < 13045; count++) {aFR[count] = 0.0;} + for(count = 0; count < 13045; count++) {oFR[count] = 0.0;} + for(count = 0; count < 11965; count++) {aGR[count] = 0.0;} + for(count = 0; count < 11965; count++) {oGR[count] = 0.0;} + for(count = 0; count < 11129; count++) {aHR[count] = 0.0;} + for(count = 0; count < 11129; count++) {oHR[count] = 0.0;} + for(count = 0; count < 10597; count++) {aIR[count] = 0.0;} + for(count = 0; count < 10597; count++) {oIR[count] = 0.0;} + for(count = 0; count < 9809; count++) {aJR[count] = 0.0;} + for(count = 0; count < 9809; count++) {oJR[count] = 0.0;} + for(count = 0; count < 9521; count++) {aKR[count] = 0.0;} + for(count = 0; count < 9521; count++) {oKR[count] = 0.0;} + for(count = 0; count < 8981; count++) {aLR[count] = 0.0;} + for(count = 0; count < 8981; count++) {oLR[count] = 0.0;} + for(count = 0; count < 8785; count++) {aMR[count] = 0.0;} + for(count = 0; count < 8785; count++) {oMR[count] = 0.0;} + for(count = 0; count < 8461; count++) {aNR[count] = 0.0;} + for(count = 0; count < 8461; count++) {oNR[count] = 0.0;} + for(count = 0; count < 8309; count++) {aOR[count] = 0.0;} + for(count = 0; count < 8309; count++) {oOR[count] = 0.0;} + for(count = 0; count < 7981; count++) {aPR[count] = 0.0;} + for(count = 0; count < 7981; count++) {oPR[count] = 0.0;} + for(count = 0; count < 7321; count++) {aQR[count] = 0.0;} + for(count = 0; count < 7321; count++) {oQR[count] = 0.0;} + for(count = 0; count < 6817; count++) {aRR[count] = 0.0;} + for(count = 0; count < 6817; count++) {oRR[count] = 0.0;} + for(count = 0; count < 6505; count++) {aSR[count] = 0.0;} + for(count = 0; count < 6505; count++) {oSR[count] = 0.0;} + for(count = 0; count < 6001; count++) {aTR[count] = 0.0;} + for(count = 0; count < 6001; count++) {oTR[count] = 0.0;} + for(count = 0; count < 5837; count++) {aUR[count] = 0.0;} + for(count = 0; count < 5837; count++) {oUR[count] = 0.0;} + for(count = 0; count < 5501; count++) {aVR[count] = 0.0;} + for(count = 0; count < 5501; count++) {oVR[count] = 0.0;} + for(count = 0; count < 5009; count++) {aWR[count] = 0.0;} + for(count = 0; count < 5009; count++) {oWR[count] = 0.0;} + for(count = 0; count < 4849; count++) {aXR[count] = 0.0;} + for(count = 0; count < 4849; count++) {oXR[count] = 0.0;} + for(count = 0; count < 4295; count++) {aYR[count] = 0.0;} + for(count = 0; count < 4295; count++) {oYR[count] = 0.0;} + for(count = 0; count < 4179; count++) {aZR[count] = 0.0;} + for(count = 0; count < 4179; count++) {oZR[count] = 0.0;} + + outAL = 1; alpAL = 1; + outBL = 1; alpBL = 1; + outCL = 1; alpCL = 1; + outDL = 1; alpDL = 1; + outEL = 1; alpEL = 1; + outFL = 1; alpFL = 1; + outGL = 1; alpGL = 1; + outHL = 1; alpHL = 1; + outIL = 1; alpIL = 1; + outJL = 1; alpJL = 1; + outKL = 1; alpKL = 1; + outLL = 1; alpLL = 1; + outML = 1; alpML = 1; + outNL = 1; alpNL = 1; + outOL = 1; alpOL = 1; + outPL = 1; alpPL = 1; + outQL = 1; alpQL = 1; + outRL = 1; alpRL = 1; + outSL = 1; alpSL = 1; + outTL = 1; alpTL = 1; + outUL = 1; alpUL = 1; + outVL = 1; alpVL = 1; + outWL = 1; alpWL = 1; + outXL = 1; alpXL = 1; + outYL = 1; alpYL = 1; + outZL = 1; alpZL = 1; + + outAR = 1; alpAR = 1; delayA = 4; maxdelayA = 7573; + outBR = 1; alpBR = 1; delayB = 4; maxdelayB = 7307; + outCR = 1; alpCR = 1; delayC = 4; maxdelayC = 7177; + outDR = 1; alpDR = 1; delayD = 4; maxdelayD = 6907; + outER = 1; alpER = 1; delayE = 4; maxdelayE = 6779; + outFR = 1; alpFR = 1; delayF = 4; maxdelayF = 6521; + outGR = 1; alpGR = 1; delayG = 4; maxdelayG = 5981; + outHR = 1; alpHR = 1; delayH = 4; maxdelayH = 5563; + outIR = 1; alpIR = 1; delayI = 4; maxdelayI = 5297; + outJR = 1; alpJR = 1; delayJ = 4; maxdelayJ = 4903; + outKR = 1; alpKR = 1; delayK = 4; maxdelayK = 4759; + outLR = 1; alpLR = 1; delayL = 4; maxdelayL = 4489; + outMR = 1; alpMR = 1; delayM = 4; maxdelayM = 4391; + outNR = 1; alpNR = 1; delayN = 4; maxdelayN = 4229; + outOR = 1; alpOR = 1; delayO = 4; maxdelayO = 4153; + outPR = 1; alpPR = 1; delayP = 4; maxdelayP = 3989; + outQR = 1; alpQR = 1; delayQ = 4; maxdelayQ = 3659; + outRR = 1; alpRR = 1; delayR = 4; maxdelayR = 3407; + outSR = 1; alpSR = 1; delayS = 4; maxdelayS = 3251; + outTR = 1; alpTR = 1; delayT = 4; maxdelayT = 2999; + outUR = 1; alpUR = 1; delayU = 4; maxdelayU = 2917; + outVR = 1; alpVR = 1; delayV = 4; maxdelayV = 2749; + outWR = 1; alpWR = 1; delayW = 4; maxdelayW = 2503; + outXR = 1; alpXR = 1; delayX = 4; maxdelayX = 2423; + outYR = 1; alpYR = 1; delayY = 4; maxdelayY = 2146; + outZR = 1; alpZR = 1; delayZ = 4; maxdelayZ = 2088; + + savedRoomsize = -1.0; //force update to begin + countdown = -1; + peakL = 1.0; + peakR = 1.0; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void PocketVerbs::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + D = *params[3]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/PocketVerbs/PocketVerbsProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<PocketVerbs> plugin; diff --git a/plugins/LV2/src/PocketVerbs/PocketVerbs.h b/plugins/LV2/src/PocketVerbs/PocketVerbs.h new file mode 100644 index 0000000..d0682fe --- /dev/null +++ b/plugins/LV2/src/PocketVerbs/PocketVerbs.h @@ -0,0 +1,264 @@ +#ifndef __PocketVerbs_H +#define __PocketVerbs_H + +#include <lv2plugin.h> + +class PocketVerbs : public LV2Plugin<4> { +public: + PocketVerbs(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/pocketverbs"; + +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. + */ + + int count; + + + + double dAR[7]; + double dBR[7]; + double dCR[7]; + double dDR[7]; + double dER[7]; + double dFR[7]; + double dGR[7]; + double dHR[7]; + double dIR[7]; + double dJR[7]; + double dKR[7]; + double dLR[7]; + double dMR[7]; + double dNR[7]; + double dOR[7]; + double dPR[7]; + double dQR[7]; + double dRR[7]; + double dSR[7]; + double dTR[7]; + double dUR[7]; + double dVR[7]; + double dWR[7]; + double dXR[7]; + double dYR[7]; + double dZR[7]; + + double aAR[15150]; + double aBR[14618]; + double aCR[14358]; + double aDR[13818]; + double aER[13562]; + double aFR[13046]; + double aGR[11966]; + double aHR[11130]; + double aIR[10598]; + double aJR[9810]; + double aKR[9522]; + double aLR[8982]; + double aMR[8786]; + double aNR[8462]; + double aOR[8310]; + double aPR[7982]; + double aQR[7322]; + double aRR[6818]; + double aSR[6506]; + double aTR[6002]; + double aUR[5838]; + double aVR[5502]; + double aWR[5010]; + double aXR[4850]; + double aYR[4296]; + double aZR[4180]; + + double oAR[15150]; + double oBR[14618]; + double oCR[14358]; + double oDR[13818]; + double oER[13562]; + double oFR[13046]; + double oGR[11966]; + double oHR[11130]; + double oIR[10598]; + double oJR[9810]; + double oKR[9522]; + double oLR[8982]; + double oMR[8786]; + double oNR[8462]; + double oOR[8310]; + double oPR[7982]; + double oQR[7322]; + double oRR[6818]; + double oSR[6506]; + double oTR[6002]; + double oUR[5838]; + double oVR[5502]; + double oWR[5010]; + double oXR[4850]; + double oYR[4296]; + double oZR[4180]; + + double dAL[7]; + double dBL[7]; + double dCL[7]; + double dDL[7]; + double dEL[7]; + double dFL[7]; + double dGL[7]; + double dHL[7]; + double dIL[7]; + double dJL[7]; + double dKL[7]; + double dLL[7]; + double dML[7]; + double dNL[7]; + double dOL[7]; + double dPL[7]; + double dQL[7]; + double dRL[7]; + double dSL[7]; + double dTL[7]; + double dUL[7]; + double dVL[7]; + double dWL[7]; + double dXL[7]; + double dYL[7]; + double dZL[7]; + + double aAL[15150]; + double aBL[14618]; + double aCL[14358]; + double aDL[13818]; + double aEL[13562]; + double aFL[13046]; + double aGL[11966]; + double aHL[11130]; + double aIL[10598]; + double aJL[9810]; + double aKL[9522]; + double aLL[8982]; + double aML[8786]; + double aNL[8462]; + double aOL[8310]; + double aPL[7982]; + double aQL[7322]; + double aRL[6818]; + double aSL[6506]; + double aTL[6002]; + double aUL[5838]; + double aVL[5502]; + double aWL[5010]; + double aXL[4850]; + double aYL[4296]; + double aZL[4180]; + + double oAL[15150]; + double oBL[14618]; + double oCL[14358]; + double oDL[13818]; + double oEL[13562]; + double oFL[13046]; + double oGL[11966]; + double oHL[11130]; + double oIL[10598]; + double oJL[9810]; + double oKL[9522]; + double oLL[8982]; + double oML[8786]; + double oNL[8462]; + double oOL[8310]; + double oPL[7982]; + double oQL[7322]; + double oRL[6818]; + double oSL[6506]; + double oTL[6002]; + double oUL[5838]; + double oVL[5502]; + double oWL[5010]; + double oXL[4850]; + double oYL[4296]; + double oZL[4180]; + + + + int outAL, alpAL; + int outBL, alpBL; + int outCL, alpCL; + int outDL, alpDL; + int outEL, alpEL; + int outFL, alpFL; + int outGL, alpGL; + int outHL, alpHL; + int outIL, alpIL; + int outJL, alpJL; + int outKL, alpKL; + int outLL, alpLL; + int outML, alpML; + int outNL, alpNL; + int outOL, alpOL; + int outPL, alpPL; + int outQL, alpQL; + int outRL, alpRL; + int outSL, alpSL; + int outTL, alpTL; + int outUL, alpUL; + int outVL, alpVL; + int outWL, alpWL; + int outXL, alpXL; + int outYL, alpYL; + int outZL, alpZL; + + int outAR, alpAR, maxdelayA, delayA; + int outBR, alpBR, maxdelayB, delayB; + int outCR, alpCR, maxdelayC, delayC; + int outDR, alpDR, maxdelayD, delayD; + int outER, alpER, maxdelayE, delayE; + int outFR, alpFR, maxdelayF, delayF; + int outGR, alpGR, maxdelayG, delayG; + int outHR, alpHR, maxdelayH, delayH; + int outIR, alpIR, maxdelayI, delayI; + int outJR, alpJR, maxdelayJ, delayJ; + int outKR, alpKR, maxdelayK, delayK; + int outLR, alpLR, maxdelayL, delayL; + int outMR, alpMR, maxdelayM, delayM; + int outNR, alpNR, maxdelayN, delayN; + int outOR, alpOR, maxdelayO, delayO; + int outPR, alpPR, maxdelayP, delayP; + int outQR, alpQR, maxdelayQ, delayQ; + int outRR, alpRR, maxdelayR, delayR; + int outSR, alpSR, maxdelayS, delayS; + int outTR, alpTR, maxdelayT, delayT; + int outUR, alpUR, maxdelayU, delayU; + int outVR, alpVR, maxdelayV, delayV; + int outWR, alpWR, maxdelayW, delayW; + int outXR, alpXR, maxdelayX, delayX; + int outYR, alpYR, maxdelayY, delayY; + int outZR, alpZR, maxdelayZ, delayZ; + + double savedRoomsize; + int countdown; + double peakL; + double peakR; + + uint32_t fpd; + //default stuff + + float A; + float B; + float C; + float D; + +}; + +#endif diff --git a/plugins/LV2/src/PocketVerbs/PocketVerbs.ttl b/plugins/LV2/src/PocketVerbs/PocketVerbs.ttl new file mode 100644 index 0000000..9e118a7 --- /dev/null +++ b/plugins/LV2/src/PocketVerbs/PocketVerbs.ttl @@ -0,0 +1,68 @@ +# Airwindows PocketVerbs plugin description + +@prefix lv2: <http://lv2plug.in/ns/lv2core#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix units: <http://lv2plug.in/ns/extensions/units#> . + +<https://www.airwindows.com/pocketverbs> + a lv2:Plugin , + lv2:EffectsPlugin ; + lv2:project <https://www.airwindows.com> ; + + lv2:optionalFeature lv2:hardRTCapable ; + + # Define the ports for this plugin. + lv2:port [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 0 ; + lv2:symbol "A" ; + lv2:name "Type" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 1 ; + lv2:symbol "B" ; + lv2:name "Size" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 2 ; + lv2:symbol "C" ; + lv2:name "Gating" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 3 ; + lv2:symbol "D" ; + lv2:name "Dry/Wet" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 4 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 5 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 6 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 7 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/PocketVerbs/manifest.ttl.in b/plugins/LV2/src/PocketVerbs/manifest.ttl.in new file mode 100644 index 0000000..5a5303f --- /dev/null +++ b/plugins/LV2/src/PocketVerbs/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:pocketverbs + a lv2:Plugin ; + doap:name "Airwindows PocketVerbs" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <PocketVerbs@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <PocketVerbs.ttl> . |