From 1bd34fa795d0eac15d0dc9d4c756f19fc6624872 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sat, 31 Jul 2021 21:34:28 +0200 Subject: 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. --- plugins/LV2/src/Point/Point.cpp | 47 +++++++++++++++++++++++++++ plugins/LV2/src/Point/Point.h | 45 ++++++++++++++++++++++++++ plugins/LV2/src/Point/Point.ttl | 60 +++++++++++++++++++++++++++++++++++ plugins/LV2/src/Point/manifest.ttl.in | 6 ++++ 4 files changed, 158 insertions(+) create mode 100644 plugins/LV2/src/Point/Point.cpp create mode 100644 plugins/LV2/src/Point/Point.h create mode 100644 plugins/LV2/src/Point/Point.ttl create mode 100644 plugins/LV2/src/Point/manifest.ttl.in (limited to 'plugins/LV2/src/Point') diff --git a/plugins/LV2/src/Point/Point.cpp b/plugins/LV2/src/Point/Point.cpp new file mode 100644 index 0000000..dc86d3c --- /dev/null +++ b/plugins/LV2/src/Point/Point.cpp @@ -0,0 +1,47 @@ +#include "Point.h" +#include +#include + +Point::Point(double rate) + : LV2Plugin(rate) +{ +} + +void Point::activate() +{ + A = 0.5; + B = 0.5; + C = 0.5; + nibAL = 0.0; + nobAL = 0.0; + nibBL = 0.0; + nobBL = 0.0; + nibAR = 0.0; + nobAR = 0.0; + nibBR = 0.0; + nobBR = 0.0; + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + fpFlip = true; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Point::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + + processReplacing(const_cast(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Point/PointProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Point/Point.h b/plugins/LV2/src/Point/Point.h new file mode 100644 index 0000000..628e281 --- /dev/null +++ b/plugins/LV2/src/Point/Point.h @@ -0,0 +1,45 @@ +#ifndef __Point_H +#define __Point_H + +#include + +class Point : public LV2Plugin<3> { +public: + Point(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/point"; + +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; + bool fpFlip; + //default stuff + double nibAL; + double nobAL; + double nibBL; + double nobBL; + double nibAR; + double nobAR; + double nibBR; + double nobBR; + + float A; + float B; + float C; +}; + +#endif diff --git a/plugins/LV2/src/Point/Point.ttl b/plugins/LV2/src/Point/Point.ttl new file mode 100644 index 0000000..423f289 --- /dev/null +++ b/plugins/LV2/src/Point/Point.ttl @@ -0,0 +1,60 @@ +# Airwindows Point plugin description + +@prefix lv2: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:EffectsPlugin ; + lv2:project ; + + 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 "Input Trim" ; + 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 "Point" ; + 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 "Reaction Speed" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 3 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 4 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 5 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 6 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/Point/manifest.ttl.in b/plugins/LV2/src/Point/manifest.ttl.in new file mode 100644 index 0000000..bc21f41 --- /dev/null +++ b/plugins/LV2/src/Point/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:point + a lv2:Plugin ; + doap:name "Airwindows Point" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . -- cgit v1.2.3