diff options
Diffstat (limited to 'plugins/LV2/src/Logical4')
-rw-r--r-- | plugins/LV2/src/Logical4/Logical4.cpp | 102 | ||||
-rw-r--r-- | plugins/LV2/src/Logical4/Logical4.h | 126 | ||||
-rw-r--r-- | plugins/LV2/src/Logical4/Logical4.ttl | 76 | ||||
-rw-r--r-- | plugins/LV2/src/Logical4/manifest.ttl.in | 6 |
4 files changed, 310 insertions, 0 deletions
diff --git a/plugins/LV2/src/Logical4/Logical4.cpp b/plugins/LV2/src/Logical4/Logical4.cpp new file mode 100644 index 0000000..167e198 --- /dev/null +++ b/plugins/LV2/src/Logical4/Logical4.cpp @@ -0,0 +1,102 @@ +#include "Logical4.h" +#include <iostream> +#include <lv2wrapper.h> + +Logical4::Logical4(double rate) + : LV2Plugin(rate) +{ +} + +void Logical4::activate() +{ + A = 0.5; + B = 0.2; + C = 0.19202020202020202; + D = 0.5; + E = 1.0; + + //begin ButterComps + controlAposL = 1.0; + controlAnegL = 1.0; + controlBposL = 1.0; + controlBnegL = 1.0; + targetposL = 1.0; + targetnegL = 1.0; + + controlAposBL = 1.0; + controlAnegBL = 1.0; + controlBposBL = 1.0; + controlBnegBL = 1.0; + targetposBL = 1.0; + targetnegBL = 1.0; + + controlAposCL = 1.0; + controlAnegCL = 1.0; + controlBposCL = 1.0; + controlBnegCL = 1.0; + targetposCL = 1.0; + targetnegCL = 1.0; + + avgAL = avgBL = avgCL = avgDL = avgEL = avgFL = 0.0; + nvgAL = nvgBL = nvgCL = nvgDL = nvgEL = nvgFL = 0.0; + //end ButterComps + + //begin ButterComps + controlAposR = 1.0; + controlAnegR = 1.0; + controlBposR = 1.0; + controlBnegR = 1.0; + targetposR = 1.0; + targetnegR = 1.0; + + controlAposBR = 1.0; + controlAnegBR = 1.0; + controlBposBR = 1.0; + controlBnegBR = 1.0; + targetposBR = 1.0; + targetnegBR = 1.0; + + controlAposCR = 1.0; + controlAnegCR = 1.0; + controlBposCR = 1.0; + controlBnegCR = 1.0; + targetposCR = 1.0; + targetnegCR = 1.0; + + avgAR = avgBR = avgCR = avgDR = avgER = avgFR = 0.0; + nvgAR = nvgBR = nvgCR = nvgDR = nvgER = nvgFR = 0.0; + //end ButterComps + + //begin Power Sags + for(int count = 0; count < 999; count++) {dL[count] = 0; bL[count] = 0; cL[count] = 0; dR[count] = 0; bR[count] = 0; cR[count] = 0;} + controlL = 0; controlBL = 0; controlCL = 0; + controlR = 0; controlBR = 0; controlCR = 0; + + gcount = 0; + //end Power Sags + fpFlip = true; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Logical4::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + D = *params[3]; + E = *params[4]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Logical4/Logical4Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Logical4> plugin; diff --git a/plugins/LV2/src/Logical4/Logical4.h b/plugins/LV2/src/Logical4/Logical4.h new file mode 100644 index 0000000..75ec58d --- /dev/null +++ b/plugins/LV2/src/Logical4/Logical4.h @@ -0,0 +1,126 @@ +#ifndef __Logical4_H +#define __Logical4_H + +#include <lv2plugin.h> + +class Logical4 : public LV2Plugin<5> { +public: + Logical4(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/logical4"; + +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. + */ + + //begin ButterComp + double controlAposL; + double controlAnegL; + double controlBposL; + double controlBnegL; + double targetposL; + double targetnegL; + double controlAposBL; + double controlAnegBL; + double controlBposBL; + double controlBnegBL; + double targetposBL; + double targetnegBL; + double controlAposCL; + double controlAnegCL; + double controlBposCL; + double controlBnegCL; + double targetposCL; + double targetnegCL; + double avgAL; + double avgBL; + double avgCL; + double avgDL; + double avgEL; + double avgFL; + double nvgAL; + double nvgBL; + double nvgCL; + double nvgDL; + double nvgEL; + double nvgFL; + //end ButterComp + + //begin Power Sag + double dL[1000]; + double controlL; + double bL[1000]; + double controlBL; + double cL[1000]; + double controlCL; + //end Power Sag + + //begin ButterComp + double controlAposR; + double controlAnegR; + double controlBposR; + double controlBnegR; + double targetposR; + double targetnegR; + double controlAposBR; + double controlAnegBR; + double controlBposBR; + double controlBnegBR; + double targetposBR; + double targetnegBR; + double controlAposCR; + double controlAnegCR; + double controlBposCR; + double controlBnegCR; + double targetposCR; + double targetnegCR; + double avgAR; + double avgBR; + double avgCR; + double avgDR; + double avgER; + double avgFR; + double nvgAR; + double nvgBR; + double nvgCR; + double nvgDR; + double nvgER; + double nvgFR; + //end ButterComp + + //begin Power Sag + double dR[1000]; + double controlR; + double bR[1000]; + double controlBR; + double cR[1000]; + double controlCR; + //end Power Sag + + int gcount; + + + double fpNShapeL; + double fpNShapeR; + bool fpFlip; + //default stuff + + float A; + float B; + float C; + float D; + float E; +}; + +#endif diff --git a/plugins/LV2/src/Logical4/Logical4.ttl b/plugins/LV2/src/Logical4/Logical4.ttl new file mode 100644 index 0000000..d7fef63 --- /dev/null +++ b/plugins/LV2/src/Logical4/Logical4.ttl @@ -0,0 +1,76 @@ +# Airwindows Logical4 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/logical4> + a lv2:Plugin , + lv2:CompressorPlugin ; + 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 "Threshold" ; + 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 "Ratio" ; + 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 "Speed" ; + 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 "MakeupGn" ; + 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 "Dry/Wet" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 5 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 6 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 7 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 8 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/Logical4/manifest.ttl.in b/plugins/LV2/src/Logical4/manifest.ttl.in new file mode 100644 index 0000000..83420dd --- /dev/null +++ b/plugins/LV2/src/Logical4/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:logical4 + a lv2:Plugin ; + doap:name "Airwindows Logical4" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Logical4@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Logical4.ttl> . |