diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2021-07-31 21:34:28 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2021-07-31 21:34:28 +0200 |
commit | 1bd34fa795d0eac15d0dc9d4c756f19fc6624872 (patch) | |
tree | fdb9bb2e5e20a0adb2953597beafd66aa7c924fc /plugins/LV2/src/Energy | |
parent | 94a6cc3d6c70883e08fd7be16e9405d44bfb94e5 (diff) | |
download | airwindows-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/Energy')
-rw-r--r-- | plugins/LV2/src/Energy/Energy.cpp | 188 | ||||
-rw-r--r-- | plugins/LV2/src/Energy/Energy.h | 189 | ||||
-rw-r--r-- | plugins/LV2/src/Energy/Energy.ttl | 108 | ||||
-rw-r--r-- | plugins/LV2/src/Energy/manifest.ttl.in | 6 |
4 files changed, 491 insertions, 0 deletions
diff --git a/plugins/LV2/src/Energy/Energy.cpp b/plugins/LV2/src/Energy/Energy.cpp new file mode 100644 index 0000000..2613fd2 --- /dev/null +++ b/plugins/LV2/src/Energy/Energy.cpp @@ -0,0 +1,188 @@ +#include "Energy.h" +#include <iostream> +#include <lv2wrapper.h> + +Energy::Energy(double rate) + : LV2Plugin(rate) +{ +} + +void Energy::activate() +{ + A = 0.5; + B = 0.5; + C = 0.5; + D = 0.5; + E = 0.5; + F = 0.5; + G = 0.5; + H = 0.5; + I = 1.0; + + duoEvenL = 0.0; + duoOddL = 0.0; + duoFactorL = 0.0; + duoEvenR = 0.0; + duoOddR = 0.0; + duoFactorR = 0.0; + flip = false; + + tripletAL = 0.0; + tripletBL = 0.0; + tripletCL = 0.0; + tripletFactorL = 0.0; + tripletAR = 0.0; + tripletBR = 0.0; + tripletCR = 0.0; + tripletFactorR = 0.0; + countA = 1; + + quadAL = 0.0; + quadBL = 0.0; + quadCL = 0.0; + quadDL = 0.0; + quadFactorL = 0.0; + quadAR = 0.0; + quadBR = 0.0; + quadCR = 0.0; + quadDR = 0.0; + quadFactorR = 0.0; + countB = 1; + + quintAL = 0.0; + quintBL = 0.0; + quintCL = 0.0; + quintDL = 0.0; + quintEL = 0.0; + quintFactorL = 0.0; + quintAR = 0.0; + quintBR = 0.0; + quintCR = 0.0; + quintDR = 0.0; + quintER = 0.0; + quintFactorR = 0.0; + countC = 1; + + sextAL = 0.0; + sextBL = 0.0; + sextCL = 0.0; + sextDL = 0.0; + sextEL = 0.0; + sextFL = 0.0; + sextFactorL = 0.0; + sextAR = 0.0; + sextBR = 0.0; + sextCR = 0.0; + sextDR = 0.0; + sextER = 0.0; + sextFR = 0.0; + sextFactorR = 0.0; + countD = 1; + + septAL = 0.0; + septBL = 0.0; + septCL = 0.0; + septDL = 0.0; + septEL = 0.0; + septFL = 0.0; + septGL = 0.0; + septFactorL = 0.0; + septAR = 0.0; + septBR = 0.0; + septCR = 0.0; + septDR = 0.0; + septER = 0.0; + septFR = 0.0; + septGR = 0.0; + septFactorR = 0.0; + countE = 1; + + octAL = 0.0; + octBL = 0.0; + octCL = 0.0; + octDL = 0.0; + octEL = 0.0; + octFL = 0.0; + octGL = 0.0; + octHL = 0.0; + octFactorL = 0.0; + octAR = 0.0; + octBR = 0.0; + octCR = 0.0; + octDR = 0.0; + octER = 0.0; + octFR = 0.0; + octGR = 0.0; + octHR = 0.0; + octFactorR = 0.0; + countF = 1; + + nintAL = 0.0; + nintBL = 0.0; + nintCL = 0.0; + nintDL = 0.0; + nintEL = 0.0; + nintFL = 0.0; + nintGL = 0.0; + nintHL = 0.0; + nintIL = 0.0; + nintFactorL = 0.0; + nintAR = 0.0; + nintBR = 0.0; + nintCR = 0.0; + nintDR = 0.0; + nintER = 0.0; + nintFR = 0.0; + nintGR = 0.0; + nintHR = 0.0; + nintIR = 0.0; + nintFactorR = 0.0; + countG = 1; + + PrevHL = 0.0; + PrevGL = 0.0; + PrevFL = 0.0; + PrevEL = 0.0; + PrevDL = 0.0; + PrevCL = 0.0; + PrevBL = 0.0; + PrevAL = 0.0; + PrevHR = 0.0; + PrevGR = 0.0; + PrevFR = 0.0; + PrevER = 0.0; + PrevDR = 0.0; + PrevCR = 0.0; + PrevBR = 0.0; + PrevAR = 0.0; + + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Energy::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]; + I = *params[8]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Energy/EnergyProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Energy> plugin; diff --git a/plugins/LV2/src/Energy/Energy.h b/plugins/LV2/src/Energy/Energy.h new file mode 100644 index 0000000..e489585 --- /dev/null +++ b/plugins/LV2/src/Energy/Energy.h @@ -0,0 +1,189 @@ +#ifndef __Energy_H +#define __Energy_H + +#include <lv2plugin.h> + +class Energy : public LV2Plugin<9> { +public: + Energy(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/energy"; + +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. + */ + + long double fpNShapeL; + long double fpNShapeR; + //default stuff + + double duoEvenL; + double duoOddL; + double duoFactorL; + bool flip; + + double tripletAL; + double tripletBL; + double tripletCL; + double tripletFactorL; + int countA; + + double quadAL; + double quadBL; + double quadCL; + double quadDL; + double quadFactorL; + int countB; + + double quintAL; + double quintBL; + double quintCL; + double quintDL; + double quintEL; + double quintFactorL; + int countC; + + double sextAL; + double sextBL; + double sextCL; + double sextDL; + double sextEL; + double sextFL; + double sextFactorL; + int countD; + + double septAL; + double septBL; + double septCL; + double septDL; + double septEL; + double septFL; + double septGL; + double septFactorL; + int countE; + + double octAL; + double octBL; + double octCL; + double octDL; + double octEL; + double octFL; + double octGL; + double octHL; + double octFactorL; + int countF; + + double nintAL; + double nintBL; + double nintCL; + double nintDL; + double nintEL; + double nintFL; + double nintGL; + double nintHL; + double nintIL; + double nintFactorL; + int countG; + + double PrevHL; + double PrevGL; + double PrevFL; + double PrevEL; + double PrevDL; + double PrevCL; + double PrevBL; + double PrevAL; + + double duoEvenR; + double duoOddR; + double duoFactorR; + + double tripletAR; + double tripletBR; + double tripletCR; + double tripletFactorR; + + double quadAR; + double quadBR; + double quadCR; + double quadDR; + double quadFactorR; + + double quintAR; + double quintBR; + double quintCR; + double quintDR; + double quintER; + double quintFactorR; + + double sextAR; + double sextBR; + double sextCR; + double sextDR; + double sextER; + double sextFR; + double sextFactorR; + + double septAR; + double septBR; + double septCR; + double septDR; + double septER; + double septFR; + double septGR; + double septFactorR; + + double octAR; + double octBR; + double octCR; + double octDR; + double octER; + double octFR; + double octGR; + double octHR; + double octFactorR; + + double nintAR; + double nintBR; + double nintCR; + double nintDR; + double nintER; + double nintFR; + double nintGR; + double nintHR; + double nintIR; + double nintFactorR; + + double PrevHR; + double PrevGR; + double PrevFR; + double PrevER; + double PrevDR; + double PrevCR; + double PrevBR; + double PrevAR; + + float A; + float B; + float C; + float D; + float E; + float F; + float G; + float H; + float I; + +}; + +#endif diff --git a/plugins/LV2/src/Energy/Energy.ttl b/plugins/LV2/src/Energy/Energy.ttl new file mode 100644 index 0000000..df5e9fc --- /dev/null +++ b/plugins/LV2/src/Energy/Energy.ttl @@ -0,0 +1,108 @@ +# Airwindows Energy 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/energy> + a lv2:Plugin , + lv2:EQPlugin ; + 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 "Hiss" ; + 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 "Glitter" ; + 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 "Rat" ; + 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 "Fizz" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 4 ; + lv2:symbol "E" ; + lv2:name "Scrape" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 5 ; + lv2:symbol "F" ; + lv2:name "Chug" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 6 ; + lv2:symbol "G" ; + lv2:name "Yowr" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 7 ; + lv2:symbol "H" ; + lv2:name "Snarl" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 8 ; + lv2:symbol "I" ; + lv2:name "I/Dr/Wt" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 9 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 10 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 11 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 12 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/Energy/manifest.ttl.in b/plugins/LV2/src/Energy/manifest.ttl.in new file mode 100644 index 0000000..f471bc2 --- /dev/null +++ b/plugins/LV2/src/Energy/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:energy + a lv2:Plugin ; + doap:name "Airwindows Energy" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Energy@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Energy.ttl> . |