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/Monitoring | |
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/Monitoring')
-rw-r--r-- | plugins/LV2/src/Monitoring/Monitoring.cpp | 79 | ||||
-rw-r--r-- | plugins/LV2/src/Monitoring/Monitoring.h | 58 | ||||
-rw-r--r-- | plugins/LV2/src/Monitoring/Monitoring.ttl | 44 | ||||
-rw-r--r-- | plugins/LV2/src/Monitoring/manifest.ttl.in | 6 |
4 files changed, 187 insertions, 0 deletions
diff --git a/plugins/LV2/src/Monitoring/Monitoring.cpp b/plugins/LV2/src/Monitoring/Monitoring.cpp new file mode 100644 index 0000000..18b7533 --- /dev/null +++ b/plugins/LV2/src/Monitoring/Monitoring.cpp @@ -0,0 +1,79 @@ +#include "Monitoring.h" +#include <iostream> +#include <lv2wrapper.h> + +Monitoring::Monitoring(double rate) + : LV2Plugin(rate) +{ +} + +void Monitoring::activate() +{ + bynL[0] = 1000.0; + bynL[1] = 301.0; + bynL[2] = 176.0; + bynL[3] = 125.0; + bynL[4] = 97.0; + bynL[5] = 79.0; + bynL[6] = 67.0; + bynL[7] = 58.0; + bynL[8] = 51.0; + bynL[9] = 46.0; + bynL[10] = 1000.0; + noiseShapingL = 0.0; + bynR[0] = 1000.0; + bynR[1] = 301.0; + bynR[2] = 176.0; + bynR[3] = 125.0; + bynR[4] = 97.0; + bynR[5] = 79.0; + bynR[6] = 67.0; + bynR[7] = 58.0; + bynR[8] = 51.0; + bynR[9] = 46.0; + bynR[10] = 1000.0; + noiseShapingR = 0.0; + //end NJAD + for(int count = 0; count < 1502; count++) { + aL[count] = 0.0; bL[count] = 0.0; cL[count] = 0.0; dL[count] = 0.0; + aR[count] = 0.0; bR[count] = 0.0; cR[count] = 0.0; dR[count] = 0.0; + } + ax = 1; bx = 1; cx = 1; dx = 1; + //PeaksOnly + lastSampleL = 0.0; lastSampleR = 0.0; + //SlewOnly + iirSampleAL = 0.0; iirSampleBL = 0.0; iirSampleCL = 0.0; iirSampleDL = 0.0; iirSampleEL = 0.0; iirSampleFL = 0.0; iirSampleGL = 0.0; + iirSampleHL = 0.0; iirSampleIL = 0.0; iirSampleJL = 0.0; iirSampleKL = 0.0; iirSampleLL = 0.0; iirSampleML = 0.0; iirSampleNL = 0.0; iirSampleOL = 0.0; iirSamplePL = 0.0; + iirSampleQL = 0.0; iirSampleRL = 0.0; iirSampleSL = 0.0; + iirSampleTL = 0.0; iirSampleUL = 0.0; iirSampleVL = 0.0; + iirSampleWL = 0.0; iirSampleXL = 0.0; iirSampleYL = 0.0; iirSampleZL = 0.0; + + iirSampleAR = 0.0; iirSampleBR = 0.0; iirSampleCR = 0.0; iirSampleDR = 0.0; iirSampleER = 0.0; iirSampleFR = 0.0; iirSampleGR = 0.0; + iirSampleHR = 0.0; iirSampleIR = 0.0; iirSampleJR = 0.0; iirSampleKR = 0.0; iirSampleLR = 0.0; iirSampleMR = 0.0; iirSampleNR = 0.0; iirSampleOR = 0.0; iirSamplePR = 0.0; + iirSampleQR = 0.0; iirSampleRR = 0.0; iirSampleSR = 0.0; + iirSampleTR = 0.0; iirSampleUR = 0.0; iirSampleVR = 0.0; + iirSampleWR = 0.0; iirSampleXR = 0.0; iirSampleYR = 0.0; iirSampleZR = 0.0; // o/` + //SubsOnly + for (int x = 0; x < 11; x++) {biquadL[x] = 0.0; biquadR[x] = 0.0;} + //Bandpasses + A = 0.0; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Monitoring::run(uint32_t num_samples) +{ + A = *params[0]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Monitoring/MonitoringProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Monitoring> plugin; diff --git a/plugins/LV2/src/Monitoring/Monitoring.h b/plugins/LV2/src/Monitoring/Monitoring.h new file mode 100644 index 0000000..4b13576 --- /dev/null +++ b/plugins/LV2/src/Monitoring/Monitoring.h @@ -0,0 +1,58 @@ +#ifndef __Monitoring_H +#define __Monitoring_H + +#include <lv2plugin.h> + +class Monitoring : public LV2Plugin<1> { +public: + Monitoring(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/monitoring"; + +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 bynL[13], bynR[13]; + long double noiseShapingL, noiseShapingR; + //NJAD + double aL[1503], bL[1503], cL[1503], dL[1503]; + double aR[1503], bR[1503], cR[1503], dR[1503]; + int ax, bx, cx, dx; + //PeaksOnly + double lastSampleL, lastSampleR; + //SlewOnly + double iirSampleAL, iirSampleBL, iirSampleCL, iirSampleDL, iirSampleEL, iirSampleFL, iirSampleGL; + double iirSampleHL, iirSampleIL, iirSampleJL, iirSampleKL, iirSampleLL, iirSampleML, iirSampleNL, iirSampleOL, iirSamplePL; + double iirSampleQL, iirSampleRL, iirSampleSL; + double iirSampleTL, iirSampleUL, iirSampleVL; + double iirSampleWL, iirSampleXL, iirSampleYL, iirSampleZL; + + double iirSampleAR, iirSampleBR, iirSampleCR, iirSampleDR, iirSampleER, iirSampleFR, iirSampleGR; + double iirSampleHR, iirSampleIR, iirSampleJR, iirSampleKR, iirSampleLR, iirSampleMR, iirSampleNR, iirSampleOR, iirSamplePR; + double iirSampleQR, iirSampleRR, iirSampleSR; + double iirSampleTR, iirSampleUR, iirSampleVR; + double iirSampleWR, iirSampleXR, iirSampleYR, iirSampleZR; // o/` + //SubsOnly + long double biquadL[11]; + long double biquadR[11]; + //Bandpasses + + uint32_t fpd; + //default stuff + + float A; +}; + +#endif diff --git a/plugins/LV2/src/Monitoring/Monitoring.ttl b/plugins/LV2/src/Monitoring/Monitoring.ttl new file mode 100644 index 0000000..094e72c --- /dev/null +++ b/plugins/LV2/src/Monitoring/Monitoring.ttl @@ -0,0 +1,44 @@ +# Airwindows Monitoring 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/monitoring> + 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 "Monitor" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 1 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 2 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 3 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 4 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/Monitoring/manifest.ttl.in b/plugins/LV2/src/Monitoring/manifest.ttl.in new file mode 100644 index 0000000..799f98f --- /dev/null +++ b/plugins/LV2/src/Monitoring/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:monitoring + a lv2:Plugin ; + doap:name "Airwindows Monitoring" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Monitoring@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Monitoring.ttl> . |