diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2021-03-28 17:29:25 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2021-03-28 17:29:25 +0200 |
commit | a42203c7ddd28f1b6a5d2c12cab5e6dd40f1622f (patch) | |
tree | a0cc8fe089ca1c847df23972891b3572b0e0ab80 | |
parent | b5e03fb5f6a82d3187c7705559dba91c4ce7dada (diff) | |
download | airwindows-lv2-port-a42203c7ddd28f1b6a5d2c12cab5e6dd40f1622f.tar.gz airwindows-lv2-port-a42203c7ddd28f1b6a5d2c12cab5e6dd40f1622f.tar.bz2 airwindows-lv2-port-a42203c7ddd28f1b6a5d2c12cab5e6dd40f1622f.zip |
LV2: More plugins.
Plugins added in this batch is:
- C5RawBuss
- C5RawChannel
- Calibre
- Channel4-7
- Chorus
- ChorusEnsemble
- ChromeOxide
- Cider
- ClipOnly
- Coils
- Cojones
- Compresaturator
66 files changed, 2626 insertions, 16 deletions
diff --git a/plugins/LV2/CMakeLists.txt b/plugins/LV2/CMakeLists.txt index d142614..d34d4a3 100755 --- a/plugins/LV2/CMakeLists.txt +++ b/plugins/LV2/CMakeLists.txt @@ -40,22 +40,22 @@ add_airwindows_plugin(BuildATPDF) add_airwindows_plugin(BussColors4) add_airwindows_plugin(ButterComp) add_airwindows_plugin(ButterComp2) -# add_airwindows_plugin(C5RawBuss) -# add_airwindows_plugin(C5RawChannel) -# add_airwindows_plugin(Calibre) -# add_airwindows_plugin(Capacitor) -# add_airwindows_plugin(Channel4) -# add_airwindows_plugin(Channel5) -# add_airwindows_plugin(Channel6) -# add_airwindows_plugin(Channel7) -# add_airwindows_plugin(Chorus) -# add_airwindows_plugin(ChorusEnsemble) -# add_airwindows_plugin(ChromeOxide) -# add_airwindows_plugin(Cider) -# add_airwindows_plugin(ClipOnly) -# add_airwindows_plugin(Coils) -# add_airwindows_plugin(Cojones) -# add_airwindows_plugin(Compresaturator) +add_airwindows_plugin(C5RawBuss) +add_airwindows_plugin(C5RawChannel) +add_airwindows_plugin(Calibre) +add_airwindows_plugin(Capacitor) +add_airwindows_plugin(Channel4) +add_airwindows_plugin(Channel5) +add_airwindows_plugin(Channel6) +add_airwindows_plugin(Channel7) +add_airwindows_plugin(Chorus) +add_airwindows_plugin(ChorusEnsemble) +add_airwindows_plugin(ChromeOxide) +add_airwindows_plugin(Cider) +add_airwindows_plugin(ClipOnly) +add_airwindows_plugin(Coils) +add_airwindows_plugin(Cojones) +add_airwindows_plugin(Compresaturator) # add_airwindows_plugin(Console4Buss) # add_airwindows_plugin(Console4Channel) # add_airwindows_plugin(Console5Buss) diff --git a/plugins/LV2/manifest.ttl.in b/plugins/LV2/manifest.ttl.in index 568a05d..7179adf 100644 --- a/plugins/LV2/manifest.ttl.in +++ b/plugins/LV2/manifest.ttl.in @@ -220,3 +220,115 @@ airwindows:buttercomp doap:license <http://opensource.org/licenses/mit> ; lv2:binary <ButterComp@CMAKE_SHARED_LIBRARY_SUFFIX@> ; rdfs:seeAlso <ButterComp.ttl> . + +airwindows:c5rawbuss + a lv2:Plugin ; + doap:name "Airwindows C5RawBuss" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <C5RawBuss@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <C5RawBuss.ttl> . + +airwindows:c5rawchannel + a lv2:Plugin ; + doap:name "Airwindows C5RawChannel" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <C5RawChannel@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <C5RawChannel.ttl> . + +airwindows:calibre + a lv2:Plugin ; + doap:name "Airwindows Calibre" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Calibre@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Calibre.ttl> . + +airwindows:capacitor + a lv2:Plugin ; + doap:name "Airwindows Capacitor" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Capacitor@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Capacitor.ttl> . + +airwindows:channel4 + a lv2:Plugin ; + doap:name "Airwindows Channel4" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Channel4@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Channel4.ttl> . + +airwindows:channel5 + a lv2:Plugin ; + doap:name "Airwindows Channel5" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Channel5@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Channel5.ttl> . + +airwindows:channel6 + a lv2:Plugin ; + doap:name "Airwindows Channel6" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Channel6@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Channel6.ttl> . + +airwindows:channel7 + a lv2:Plugin ; + doap:name "Airwindows Channel7" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Channel7@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Channel7.ttl> . + +airwindows:chorus + a lv2:Plugin ; + doap:name "Airwindows Chorus" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Chorus@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Chorus.ttl> . + +airwindows:chorusensemble + a lv2:Plugin ; + doap:name "Airwindows ChorusEnsemble" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <ChorusEnsemble@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <ChorusEnsemble.ttl> . + +airwindows:chromeoxide + a lv2:Plugin ; + doap:name "Airwindows ChromeOxide" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <ChromeOxide@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <ChromeOxide.ttl> . + +airwindows:cider + a lv2:Plugin ; + doap:name "Airwindows Cider" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Cider@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Cider.ttl> . + +airwindows:cliponly + a lv2:Plugin ; + doap:name "Airwindows ClipOnly" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <ClipOnly@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <ClipOnly.ttl> . + +airwindows:coils + a lv2:Plugin ; + doap:name "Airwindows Coils" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Coils@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Coils.ttl> . + +airwindows:cojones + a lv2:Plugin ; + doap:name "Airwindows Cojones" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Cojones@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Cojones.ttl> . + +airwindows:compresaturator + a lv2:Plugin ; + doap:name "Airwindows Compresaturator" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Compresaturator@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Compresaturator.ttl> . diff --git a/plugins/LV2/src/C5RawBuss/C5RawBuss.cpp b/plugins/LV2/src/C5RawBuss/C5RawBuss.cpp new file mode 100644 index 0000000..085df0f --- /dev/null +++ b/plugins/LV2/src/C5RawBuss/C5RawBuss.cpp @@ -0,0 +1,37 @@ +#include "C5RawBuss.h" +#include <iostream> +#include <lv2wrapper.h> + +C5RawBuss::C5RawBuss(double rate) + : LV2Plugin(rate) +{ +} + +void C5RawBuss::activate() +{ + A = 0.0; + lastFXBussL = 0.0; + lastSampleBussL = 0.0; + lastFXBussR = 0.0; + lastSampleBussR = 0.0; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void C5RawBuss::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/C5RawBuss/C5RawBussProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<C5RawBuss> plugin; diff --git a/plugins/LV2/src/C5RawBuss/C5RawBuss.h b/plugins/LV2/src/C5RawBuss/C5RawBuss.h new file mode 100644 index 0000000..7ff85be --- /dev/null +++ b/plugins/LV2/src/C5RawBuss/C5RawBuss.h @@ -0,0 +1,37 @@ +#ifndef __C5RawBuss_H +#define __C5RawBuss_H + +#include <lv2plugin.h> + +class C5RawBuss : public LV2Plugin<1> { +public: + C5RawBuss(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/c5rawbuss"; + +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 lastFXBussL; + double lastSampleBussL; + double lastFXBussR; + double lastSampleBussR; + float A; +}; + +#endif diff --git a/plugins/LV2/src/C5RawBuss/C5RawBuss.ttl b/plugins/LV2/src/C5RawBuss/C5RawBuss.ttl new file mode 100644 index 0000000..83e4f48 --- /dev/null +++ b/plugins/LV2/src/C5RawBuss/C5RawBuss.ttl @@ -0,0 +1,44 @@ +# Airwindows C5RawBuss 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/c5rawbuss> + 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 "Center" ; + 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/C5RawBuss/manifest.ttl.in b/plugins/LV2/src/C5RawBuss/manifest.ttl.in new file mode 100644 index 0000000..177f656 --- /dev/null +++ b/plugins/LV2/src/C5RawBuss/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:c5rawbuss + a lv2:Plugin ; + doap:name "Airwindows C5RawBuss" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <C5RawBuss@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <C5RawBuss.ttl> . diff --git a/plugins/LV2/src/C5RawChannel/C5RawChannel.cpp b/plugins/LV2/src/C5RawChannel/C5RawChannel.cpp new file mode 100644 index 0000000..319bdff --- /dev/null +++ b/plugins/LV2/src/C5RawChannel/C5RawChannel.cpp @@ -0,0 +1,37 @@ +#include "C5RawChannel.h" +#include <iostream> +#include <lv2wrapper.h> + +C5RawChannel::C5RawChannel(double rate) + : LV2Plugin(rate) +{ +} + +void C5RawChannel::activate() +{ + A = 0.0; + lastFXChannelL = 0.0; + lastSampleChannelL = 0.0; + lastFXChannelR = 0.0; + lastSampleChannelR = 0.0; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void C5RawChannel::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/C5RawChannel/C5RawChannelProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<C5RawChannel> plugin; diff --git a/plugins/LV2/src/C5RawChannel/C5RawChannel.h b/plugins/LV2/src/C5RawChannel/C5RawChannel.h new file mode 100644 index 0000000..76ea1ab --- /dev/null +++ b/plugins/LV2/src/C5RawChannel/C5RawChannel.h @@ -0,0 +1,37 @@ +#ifndef __C5RawChannel_H +#define __C5RawChannel_H + +#include <lv2plugin.h> + +class C5RawChannel : public LV2Plugin<1> { +public: + C5RawChannel(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/c5rawchannel"; + +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 lastFXChannelL; + double lastSampleChannelL; + double lastFXChannelR; + double lastSampleChannelR; + float A; +}; + +#endif diff --git a/plugins/LV2/src/C5RawChannel/C5RawChannel.ttl b/plugins/LV2/src/C5RawChannel/C5RawChannel.ttl new file mode 100644 index 0000000..29c898f --- /dev/null +++ b/plugins/LV2/src/C5RawChannel/C5RawChannel.ttl @@ -0,0 +1,44 @@ +# Airwindows C5RawChannel 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/c5rawchannel> + 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 "Center" ; + 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/C5RawChannel/manifest.ttl.in b/plugins/LV2/src/C5RawChannel/manifest.ttl.in new file mode 100644 index 0000000..565a90a --- /dev/null +++ b/plugins/LV2/src/C5RawChannel/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:c5rawchannel + a lv2:Plugin ; + doap:name "Airwindows C5RawChannel" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <C5RawChannel@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <C5RawChannel.ttl> . diff --git a/plugins/LV2/src/Calibre/Calibre.cpp b/plugins/LV2/src/Calibre/Calibre.cpp new file mode 100644 index 0000000..2b08e8b --- /dev/null +++ b/plugins/LV2/src/Calibre/Calibre.cpp @@ -0,0 +1,40 @@ +#include "Calibre.h" +#include <iostream> +#include <lv2wrapper.h> + +Calibre::Calibre(double rate) + : LV2Plugin(rate) +{ +} + +void Calibre::activate() +{ + A = 0.74; + B = 0.3333333; + C = 0.3333333; + D = 1.0; + for(int count = 0; count < 34; count++) {bR[count] = 0;bL[count] = 0;} + lastSampleR = 0.0;lastSampleL = 0.0; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Calibre::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/Calibre/CalibreProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Calibre> plugin; diff --git a/plugins/LV2/src/Calibre/Calibre.h b/plugins/LV2/src/Calibre/Calibre.h new file mode 100644 index 0000000..7ec7991 --- /dev/null +++ b/plugins/LV2/src/Calibre/Calibre.h @@ -0,0 +1,40 @@ +#ifndef __Calibre_H +#define __Calibre_H + +#include <lv2plugin.h> + +class Calibre : public LV2Plugin<4> { +public: + Calibre(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/calibre"; + +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. + */ + + double bR[35]; + double lastSampleR; + double bL[35]; + double lastSampleL; + uint32_t fpd; + //default stuff + + float A; + float B; + float C; + float D; +}; + +#endif diff --git a/plugins/LV2/src/Calibre/Calibre.ttl b/plugins/LV2/src/Calibre/Calibre.ttl new file mode 100644 index 0000000..7ea6ce9 --- /dev/null +++ b/plugins/LV2/src/Calibre/Calibre.ttl @@ -0,0 +1,68 @@ +# Airwindows Calibre 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/calibre> + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "Hardns" ; + 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 "Persnlty" ; + 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 "Drive" ; + 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 "Output" ; + 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/Calibre/manifest.ttl.in b/plugins/LV2/src/Calibre/manifest.ttl.in new file mode 100644 index 0000000..645be4f --- /dev/null +++ b/plugins/LV2/src/Calibre/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:calibre + a lv2:Plugin ; + doap:name "Airwindows Calibre" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Calibre@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Calibre.ttl> . diff --git a/plugins/LV2/src/Capacitor/Capacitor.cpp b/plugins/LV2/src/Capacitor/Capacitor.cpp new file mode 100644 index 0000000..72a8c85 --- /dev/null +++ b/plugins/LV2/src/Capacitor/Capacitor.cpp @@ -0,0 +1,73 @@ +#include "Capacitor.h" +#include <iostream> +#include <lv2wrapper.h> + +Capacitor::Capacitor(double rate) + : LV2Plugin(rate) +{ +} + +void Capacitor::activate() +{ + A = 1.0; + B = 0.0; + C = 1.0; + iirHighpassAL = 0.0; + iirHighpassBL = 0.0; + iirHighpassCL = 0.0; + iirHighpassDL = 0.0; + iirHighpassEL = 0.0; + iirHighpassFL = 0.0; + iirLowpassAL = 0.0; + iirLowpassBL = 0.0; + iirLowpassCL = 0.0; + iirLowpassDL = 0.0; + iirLowpassEL = 0.0; + iirLowpassFL = 0.0; + + iirHighpassAR = 0.0; + iirHighpassBR = 0.0; + iirHighpassCR = 0.0; + iirHighpassDR = 0.0; + iirHighpassER = 0.0; + iirHighpassFR = 0.0; + iirLowpassAR = 0.0; + iirLowpassBR = 0.0; + iirLowpassCR = 0.0; + iirLowpassDR = 0.0; + iirLowpassER = 0.0; + iirLowpassFR = 0.0; + count = 0; + lowpassChase = 0.0; + highpassChase = 0.0; + wetChase = 0.0; + lowpassAmount = 1.0; + highpassAmount = 0.0; + wet = 1.0; + lastLowpass = 1000.0; + lastHighpass = 1000.0; + lastWet = 1000.0; + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Capacitor::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Capacitor/CapacitorProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Capacitor> plugin; diff --git a/plugins/LV2/src/Capacitor/Capacitor.h b/plugins/LV2/src/Capacitor/Capacitor.h new file mode 100644 index 0000000..6b4a49f --- /dev/null +++ b/plugins/LV2/src/Capacitor/Capacitor.h @@ -0,0 +1,76 @@ +#ifndef __Capacitor_H +#define __Capacitor_H + +#include <lv2plugin.h> + +class Capacitor : public LV2Plugin<3> { +public: + Capacitor(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/capacitor"; + +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. + */ + + double iirHighpassAL; + double iirHighpassBL; + double iirHighpassCL; + double iirHighpassDL; + double iirHighpassEL; + double iirHighpassFL; + double iirLowpassAL; + double iirLowpassBL; + double iirLowpassCL; + double iirLowpassDL; + double iirLowpassEL; + double iirLowpassFL; + + double iirHighpassAR; + double iirHighpassBR; + double iirHighpassCR; + double iirHighpassDR; + double iirHighpassER; + double iirHighpassFR; + double iirLowpassAR; + double iirLowpassBR; + double iirLowpassCR; + double iirLowpassDR; + double iirLowpassER; + double iirLowpassFR; + + int count; + + double lowpassChase; + double highpassChase; + double wetChase; + + double lowpassAmount; + double highpassAmount; + double wet; + + double lastLowpass; + double lastHighpass; + double lastWet; + + long double fpNShapeL; + long double fpNShapeR; + //default stuff + + float A; + float B; + float C; +}; + +#endif diff --git a/plugins/LV2/src/Capacitor/Capacitor.ttl b/plugins/LV2/src/Capacitor/Capacitor.ttl new file mode 100644 index 0000000..1e4ee6d --- /dev/null +++ b/plugins/LV2/src/Capacitor/Capacitor.ttl @@ -0,0 +1,60 @@ +# Airwindows Capacitor 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/capacitor> + 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 "Lowpass" ; + 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 "Highpass" ; + 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 "Dry/Wet" ; + 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/Capacitor/manifest.ttl.in b/plugins/LV2/src/Capacitor/manifest.ttl.in new file mode 100644 index 0000000..ce77b01 --- /dev/null +++ b/plugins/LV2/src/Capacitor/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:capacitor + a lv2:Plugin ; + doap:name "Airwindows Capacitor" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Capacitor@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Capacitor.ttl> . diff --git a/plugins/LV2/src/Channel4/Channel4.cpp b/plugins/LV2/src/Channel4/Channel4.cpp new file mode 100644 index 0000000..ff6b5ea --- /dev/null +++ b/plugins/LV2/src/Channel4/Channel4.cpp @@ -0,0 +1,47 @@ +#include "Channel4.h" +#include <iostream> +#include <lv2wrapper.h> + +Channel4::Channel4(double rate) + : LV2Plugin(rate) +{ +} + +void Channel4::activate() +{ + consoletype = 0.0; + drive = 0.0; + fpNShapeLA = 0.0; + fpNShapeLB = 0.0; + fpNShapeRA = 0.0; + fpNShapeRB = 0.0; + fpFlip = true; + iirSampleLA = 0.0; + iirSampleRA = 0.0; + iirSampleLB = 0.0; + iirSampleRB = 0.0; + lastSampleL = 0.0; + lastSampleR = 0.0; + iirAmount = 0.005832; + threshold = 0.33362176; //instantiating with Neve values + + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Channel4::run(uint32_t num_samples) +{ + consoletype = *params[0]; + drive = *params[1]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Channel4/Channel4Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Channel4> plugin; diff --git a/plugins/LV2/src/Channel4/Channel4.h b/plugins/LV2/src/Channel4/Channel4.h new file mode 100644 index 0000000..8705b36 --- /dev/null +++ b/plugins/LV2/src/Channel4/Channel4.h @@ -0,0 +1,46 @@ +#ifndef __Channel4_H +#define __Channel4_H + +#include <lv2plugin.h> + +class Channel4 : public LV2Plugin<2> { +public: + Channel4(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/channel4"; + +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 fpNShapeLA; + long double fpNShapeLB; + long double fpNShapeRA; + long double fpNShapeRB; + bool fpFlip; + //default stuff + double iirSampleLA; + double iirSampleRA; + double iirSampleLB; + double iirSampleRB; + double lastSampleL; + double lastSampleR; + double iirAmount; + double threshold; + + float consoletype; + float drive; //parameters. Always 0-1, and we scale/alter them elsewhere. +}; + +#endif diff --git a/plugins/LV2/src/Channel4/Channel4.ttl b/plugins/LV2/src/Channel4/Channel4.ttl new file mode 100644 index 0000000..6e2d0cc --- /dev/null +++ b/plugins/LV2/src/Channel4/Channel4.ttl @@ -0,0 +1,52 @@ +# Airwindows Channel4 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/channel4> + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "consoletype" ; + lv2:name "Console Type" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 1 ; + lv2:symbol "drive" ; + lv2:name "Drive" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 2 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 3 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 4 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 5 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/Channel4/manifest.ttl.in b/plugins/LV2/src/Channel4/manifest.ttl.in new file mode 100644 index 0000000..0cdac2c --- /dev/null +++ b/plugins/LV2/src/Channel4/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:channel4 + a lv2:Plugin ; + doap:name "Airwindows Channel4" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Channel4@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Channel4.ttl> . diff --git a/plugins/LV2/src/Channel5/Channel5.cpp b/plugins/LV2/src/Channel5/Channel5.cpp new file mode 100644 index 0000000..4150b4c --- /dev/null +++ b/plugins/LV2/src/Channel5/Channel5.cpp @@ -0,0 +1,46 @@ +#include "Channel5.h" +#include <iostream> +#include <lv2wrapper.h> + +Channel5::Channel5(double rate) + : LV2Plugin(rate) +{ +} + +void Channel5::activate() +{ + consoletype = 0.0; + drive = 0.0; + output = 1.0; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + fpFlip = true; + iirSampleLA = 0.0; + iirSampleRA = 0.0; + iirSampleLB = 0.0; + iirSampleRB = 0.0; + lastSampleL = 0.0; + lastSampleR = 0.0; + iirAmount = 0.005832; + threshold = 0.33362176; //instantiating with Neve values + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Channel5::run(uint32_t num_samples) +{ + consoletype = *params[0]; + drive = *params[1]; + output = *params[2]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Channel5/Channel5Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Channel5> plugin; diff --git a/plugins/LV2/src/Channel5/Channel5.h b/plugins/LV2/src/Channel5/Channel5.h new file mode 100644 index 0000000..e09854d --- /dev/null +++ b/plugins/LV2/src/Channel5/Channel5.h @@ -0,0 +1,45 @@ +#ifndef __Channel5_H +#define __Channel5_H + +#include <lv2plugin.h> + +class Channel5 : public LV2Plugin<3> { +public: + Channel5(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/channel5"; + +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 iirSampleLA; + double iirSampleRA; + double iirSampleLB; + double iirSampleRB; + double lastSampleL; + double lastSampleR; + double iirAmount; + double threshold; + + float consoletype; + float drive; //parameters. Always 0-1, and we scale/alter them elsewhere. + float output; +}; + +#endif diff --git a/plugins/LV2/src/Channel5/Channel5.ttl b/plugins/LV2/src/Channel5/Channel5.ttl new file mode 100644 index 0000000..36c7633 --- /dev/null +++ b/plugins/LV2/src/Channel5/Channel5.ttl @@ -0,0 +1,60 @@ +# Airwindows Channel5 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/channel5> + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "consoletype" ; + lv2:name "Console Type" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 1 ; + lv2:symbol "drive" ; + lv2:name "Drive" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 2 ; + lv2:symbol "output" ; + lv2:name "Output" ; + 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/Channel5/manifest.ttl.in b/plugins/LV2/src/Channel5/manifest.ttl.in new file mode 100644 index 0000000..f576180 --- /dev/null +++ b/plugins/LV2/src/Channel5/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:channel5 + a lv2:Plugin ; + doap:name "Airwindows Channel5" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Channel5@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Channel5.ttl> . diff --git a/plugins/LV2/src/Channel6/Channel6.cpp b/plugins/LV2/src/Channel6/Channel6.cpp new file mode 100644 index 0000000..15c95fc --- /dev/null +++ b/plugins/LV2/src/Channel6/Channel6.cpp @@ -0,0 +1,46 @@ +#include "Channel6.h" +#include <iostream> +#include <lv2wrapper.h> + +Channel6::Channel6(double rate) + : LV2Plugin(rate) +{ +} + +void Channel6::activate() +{ + consoletype = 0.0; + drive = 0.0; + output = 1.0; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + iirSampleLA = 0.0; + iirSampleRA = 0.0; + iirSampleLB = 0.0; + iirSampleRB = 0.0; + lastSampleL = 0.0; + lastSampleR = 0.0; + flip = false; + iirAmount = 0.005832; + threshold = 0.33362176; //instantiating with Neve values + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Channel6::run(uint32_t num_samples) +{ + consoletype = *params[0]; + drive = *params[1]; + output = *params[2]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Channel6/Channel6Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Channel6> plugin; diff --git a/plugins/LV2/src/Channel6/Channel6.h b/plugins/LV2/src/Channel6/Channel6.h new file mode 100644 index 0000000..63dc38b --- /dev/null +++ b/plugins/LV2/src/Channel6/Channel6.h @@ -0,0 +1,45 @@ +#ifndef __Channel6_H +#define __Channel6_H + +#include <lv2plugin.h> + +class Channel6 : public LV2Plugin<3> { +public: + Channel6(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/channel6"; + +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 iirSampleLA; + double iirSampleRA; + double iirSampleLB; + double iirSampleRB; + double lastSampleL; + double lastSampleR; + double iirAmount; + double threshold; + bool flip; + + float consoletype; + float drive; //parameters. Always 0-1, and we scale/alter them elsewhere. + float output; +}; + +#endif diff --git a/plugins/LV2/src/Channel6/Channel6.ttl b/plugins/LV2/src/Channel6/Channel6.ttl new file mode 100644 index 0000000..7e71459 --- /dev/null +++ b/plugins/LV2/src/Channel6/Channel6.ttl @@ -0,0 +1,60 @@ +# Airwindows Channel6 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/channel6> + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "consoletype" ; + lv2:name "Console Type" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 1 ; + lv2:symbol "drive" ; + lv2:name "Drive" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 2 ; + lv2:symbol "output" ; + lv2:name "Output" ; + 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/Channel6/manifest.ttl.in b/plugins/LV2/src/Channel6/manifest.ttl.in new file mode 100644 index 0000000..21a8ea9 --- /dev/null +++ b/plugins/LV2/src/Channel6/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:channel6 + a lv2:Plugin ; + doap:name "Airwindows Channel6" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Channel6@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Channel6.ttl> . diff --git a/plugins/LV2/src/Channel7/Channel7.cpp b/plugins/LV2/src/Channel7/Channel7.cpp new file mode 100644 index 0000000..846cb66 --- /dev/null +++ b/plugins/LV2/src/Channel7/Channel7.cpp @@ -0,0 +1,45 @@ +#include "Channel7.h" +#include <iostream> +#include <lv2wrapper.h> + +Channel7::Channel7(double rate) + : LV2Plugin(rate) +{ +} + +void Channel7::activate() +{ + consoletype = 0.0; + drive = 0.0; + output = 1.0; + fpd = 17; + iirSampleLA = 0.0; + iirSampleRA = 0.0; + iirSampleLB = 0.0; + iirSampleRB = 0.0; + lastSampleL = 0.0; + lastSampleR = 0.0; + flip = false; + iirAmount = 0.005832; + threshold = 0.33362176; //instantiating with Neve values + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Channel7::run(uint32_t num_samples) +{ + consoletype = *params[0]; + drive = *params[1]; + output = *params[2]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Channel7/Channel7Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Channel7> plugin; diff --git a/plugins/LV2/src/Channel7/Channel7.h b/plugins/LV2/src/Channel7/Channel7.h new file mode 100644 index 0000000..55111f8 --- /dev/null +++ b/plugins/LV2/src/Channel7/Channel7.h @@ -0,0 +1,44 @@ +#ifndef __Channel7_H +#define __Channel7_H + +#include <lv2plugin.h> + +class Channel7 : public LV2Plugin<3> { +public: + Channel7(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/channel7"; + +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. + */ + + uint32_t fpd; + //default stuff + double iirSampleLA; + double iirSampleRA; + double iirSampleLB; + double iirSampleRB; + double lastSampleL; + double lastSampleR; + double iirAmount; + double threshold; + bool flip; + + float consoletype; + float drive; //parameters. Always 0-1, and we scale/alter them elsewhere. + float output; +}; + +#endif diff --git a/plugins/LV2/src/Channel7/Channel7.ttl b/plugins/LV2/src/Channel7/Channel7.ttl new file mode 100644 index 0000000..7433c75 --- /dev/null +++ b/plugins/LV2/src/Channel7/Channel7.ttl @@ -0,0 +1,60 @@ +# Airwindows Channel7 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/channel7> + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "consoletype" ; + lv2:name "Console Type" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 1 ; + lv2:symbol "drive" ; + lv2:name "Drive" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 2 ; + lv2:symbol "output" ; + lv2:name "Output" ; + 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/Channel7/manifest.ttl.in b/plugins/LV2/src/Channel7/manifest.ttl.in new file mode 100644 index 0000000..4ce33e9 --- /dev/null +++ b/plugins/LV2/src/Channel7/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:channel7 + a lv2:Plugin ; + doap:name "Airwindows Channel7" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Channel7@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Channel7.ttl> . diff --git a/plugins/LV2/src/Chorus/Chorus.cpp b/plugins/LV2/src/Chorus/Chorus.cpp new file mode 100644 index 0000000..c8d68aa --- /dev/null +++ b/plugins/LV2/src/Chorus/Chorus.cpp @@ -0,0 +1,50 @@ +#include "Chorus.h" +#include <iostream> +#include <lv2wrapper.h> + +Chorus::Chorus(double rate) + : LV2Plugin(rate) +{ +} + +void Chorus::activate() +{ + A = 0.5; + B = 0.5; + C = 0.5; + + for(int count = 0; count < totalsamples-1; count++) {dL[count] = 0; dR[count] = 0;} + sweep = 3.141592653589793238 / 2.0; + gcount = 0; + airPrevL = 0.0; + airEvenL = 0.0; + airOddL = 0.0; + airFactorL = 0.0; + airPrevR = 0.0; + airEvenR = 0.0; + airOddR = 0.0; + airFactorR = 0.0; + fpFlip = true; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Chorus::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Chorus/ChorusProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Chorus> plugin; diff --git a/plugins/LV2/src/Chorus/Chorus.h b/plugins/LV2/src/Chorus/Chorus.h new file mode 100644 index 0000000..fb602b3 --- /dev/null +++ b/plugins/LV2/src/Chorus/Chorus.h @@ -0,0 +1,51 @@ +#ifndef __Chorus_H +#define __Chorus_H + +#include <lv2plugin.h> + +class Chorus : public LV2Plugin<3> { +public: + Chorus(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/chorus"; + +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 + const static int totalsamples = 16386; + float dL[totalsamples]; + float dR[totalsamples]; + double sweep; + int gcount; + double airPrevL; + double airEvenL; + double airOddL; + double airFactorL; + double airPrevR; + double airEvenR; + double airOddR; + double airFactorR; + bool fpFlip; + + float A; + float B; + float C; + +}; + +#endif diff --git a/plugins/LV2/src/Chorus/Chorus.ttl b/plugins/LV2/src/Chorus/Chorus.ttl new file mode 100644 index 0000000..cef4525 --- /dev/null +++ b/plugins/LV2/src/Chorus/Chorus.ttl @@ -0,0 +1,60 @@ +# Airwindows Chorus 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/chorus> + a lv2:Plugin , + lv2:ModulationPlugin ; + 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 "Speed" ; + 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 "Range" ; + 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 "Dry/Wet" ; + 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/Chorus/manifest.ttl.in b/plugins/LV2/src/Chorus/manifest.ttl.in new file mode 100644 index 0000000..b4223f7 --- /dev/null +++ b/plugins/LV2/src/Chorus/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:chorus + a lv2:Plugin ; + doap:name "Airwindows Chorus" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Chorus@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Chorus.ttl> . diff --git a/plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.cpp b/plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.cpp new file mode 100644 index 0000000..d688777 --- /dev/null +++ b/plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.cpp @@ -0,0 +1,50 @@ +#include "ChorusEnsemble.h" +#include <iostream> +#include <lv2wrapper.h> + +ChorusEnsemble::ChorusEnsemble(double rate) + : LV2Plugin(rate) +{ +} + +void ChorusEnsemble::activate() +{ + A = 0.5; + B = 0.5; + C = 0.8; + + for(int count = 0; count < totalsamples-1; count++) {dL[count] = 0; dR[count] = 0;} + sweep = 3.141592653589793238 / 2.0; + gcount = 0; + airPrevL = 0.0; + airEvenL = 0.0; + airOddL = 0.0; + airFactorL = 0.0; + airPrevR = 0.0; + airEvenR = 0.0; + airOddR = 0.0; + airFactorR = 0.0; + fpFlip = true; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void ChorusEnsemble::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/ChorusEnsemble/ChorusEnsembleProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<ChorusEnsemble> plugin; diff --git a/plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.h b/plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.h new file mode 100644 index 0000000..f59ddc0 --- /dev/null +++ b/plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.h @@ -0,0 +1,50 @@ +#ifndef __ChorusEnsemble_H +#define __ChorusEnsemble_H + +#include <lv2plugin.h> + +class ChorusEnsemble : public LV2Plugin<3> { +public: + ChorusEnsemble(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/chorusensemble"; + +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. + */ + + const static int totalsamples = 16386; + float dL[totalsamples]; + float dR[totalsamples]; + double sweep; + int gcount; + double airPrevL; + double airEvenL; + double airOddL; + double airFactorL; + double airPrevR; + double airEvenR; + double airOddR; + double airFactorR; + bool fpFlip; + long double fpNShapeL; + long double fpNShapeR; + //default stuff + + float A; + float B; + float C; +}; + +#endif diff --git a/plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.ttl b/plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.ttl new file mode 100644 index 0000000..88bf368 --- /dev/null +++ b/plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.ttl @@ -0,0 +1,60 @@ +# Airwindows ChorusEnsemble 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/chorusensemble> + a lv2:Plugin , + lv2:ModulationPlugin ; + 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 "Speed" ; + 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 "Range" ; + 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 "Dry/Wet" ; + 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/ChorusEnsemble/manifest.ttl.in b/plugins/LV2/src/ChorusEnsemble/manifest.ttl.in new file mode 100644 index 0000000..14a9fe5 --- /dev/null +++ b/plugins/LV2/src/ChorusEnsemble/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:chorusensemble + a lv2:Plugin ; + doap:name "Airwindows ChorusEnsemble" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <ChorusEnsemble@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <ChorusEnsemble.ttl> . diff --git a/plugins/LV2/src/ChromeOxide/ChromeOxide.cpp b/plugins/LV2/src/ChromeOxide/ChromeOxide.cpp new file mode 100644 index 0000000..1bf33e3 --- /dev/null +++ b/plugins/LV2/src/ChromeOxide/ChromeOxide.cpp @@ -0,0 +1,51 @@ +#include "ChromeOxide.h" +#include <iostream> +#include <lv2wrapper.h> + +ChromeOxide::ChromeOxide(double rate) + : LV2Plugin(rate) +{ +} + +void ChromeOxide::activate() +{ + iirSampleAL = 0.0; + iirSampleBL = 0.0; + iirSampleCL = 0.0; + iirSampleDL = 0.0; + secondSampleL = 0.0; + thirdSampleL = 0.0; + fourthSampleL = 0.0; + fifthSampleL = 0.0; + iirSampleAR = 0.0; + iirSampleBR = 0.0; + iirSampleCR = 0.0; + iirSampleDR = 0.0; + secondSampleR = 0.0; + thirdSampleR = 0.0; + fourthSampleR = 0.0; + fifthSampleR = 0.0; + flip = false; + A = 0.5; + B = 0.5; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void ChromeOxide::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/ChromeOxide/ChromeOxideProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<ChromeOxide> plugin; diff --git a/plugins/LV2/src/ChromeOxide/ChromeOxide.h b/plugins/LV2/src/ChromeOxide/ChromeOxide.h new file mode 100644 index 0000000..4a2d31b --- /dev/null +++ b/plugins/LV2/src/ChromeOxide/ChromeOxide.h @@ -0,0 +1,54 @@ +#ifndef __ChromeOxide_H +#define __ChromeOxide_H + +#include <lv2plugin.h> + +class ChromeOxide : public LV2Plugin<2> { +public: + ChromeOxide(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/chromeoxide"; + +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. + */ + + double iirSampleAL; + double iirSampleBL; + double iirSampleCL; + double iirSampleDL; + double secondSampleL; + double thirdSampleL; + double fourthSampleL; + double fifthSampleL; + + double iirSampleAR; + double iirSampleBR; + double iirSampleCR; + double iirSampleDR; + double secondSampleR; + double thirdSampleR; + double fourthSampleR; + double fifthSampleR; + + bool flip; + + uint32_t fpd; + //default stuff + + float A; + float B; +}; + +#endif diff --git a/plugins/LV2/src/ChromeOxide/ChromeOxide.ttl b/plugins/LV2/src/ChromeOxide/ChromeOxide.ttl new file mode 100644 index 0000000..5831347 --- /dev/null +++ b/plugins/LV2/src/ChromeOxide/ChromeOxide.ttl @@ -0,0 +1,52 @@ +# Airwindows ChromeOxide 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/chromeoxide> + 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 "Intense" ; + 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 "Bias" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 2 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 3 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 4 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 5 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/ChromeOxide/manifest.ttl.in b/plugins/LV2/src/ChromeOxide/manifest.ttl.in new file mode 100644 index 0000000..3c0387e --- /dev/null +++ b/plugins/LV2/src/ChromeOxide/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:chromeoxide + a lv2:Plugin ; + doap:name "Airwindows ChromeOxide" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <ChromeOxide@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <ChromeOxide.ttl> . diff --git a/plugins/LV2/src/Cider/Cider.cpp b/plugins/LV2/src/Cider/Cider.cpp new file mode 100644 index 0000000..b2cdb40 --- /dev/null +++ b/plugins/LV2/src/Cider/Cider.cpp @@ -0,0 +1,40 @@ +#include "Cider.h" +#include <iostream> +#include <lv2wrapper.h> + +Cider::Cider(double rate) + : LV2Plugin(rate) +{ +} + +void Cider::activate() +{ + A = 0.70; + B = 0.3333333; + C = 0.3333333; + D = 1.0; + for(int count = 0; count < 34; count++) {bR[count] = 0;bL[count] = 0;} + lastSampleR = 0.0;lastSampleL = 0.0; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Cider::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/Cider/CiderProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Cider> plugin; diff --git a/plugins/LV2/src/Cider/Cider.h b/plugins/LV2/src/Cider/Cider.h new file mode 100644 index 0000000..fe037c1 --- /dev/null +++ b/plugins/LV2/src/Cider/Cider.h @@ -0,0 +1,40 @@ +#ifndef __Cider_H +#define __Cider_H + +#include <lv2plugin.h> + +class Cider : public LV2Plugin<4> { +public: + Cider(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/cider"; + +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. + */ + + double bR[35]; + double lastSampleR; + double bL[35]; + double lastSampleL; + uint32_t fpd; + //default stuff + + float A; + float B; + float C; + float D; +}; + +#endif diff --git a/plugins/LV2/src/Cider/Cider.ttl b/plugins/LV2/src/Cider/Cider.ttl new file mode 100644 index 0000000..275c20d --- /dev/null +++ b/plugins/LV2/src/Cider/Cider.ttl @@ -0,0 +1,68 @@ +# Airwindows Cider 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/cider> + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "Hardns" ; + 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 "Persnlty" ; + 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 "Drive" ; + 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 "Output" ; + 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/Cider/manifest.ttl.in b/plugins/LV2/src/Cider/manifest.ttl.in new file mode 100644 index 0000000..581c560 --- /dev/null +++ b/plugins/LV2/src/Cider/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:cider + a lv2:Plugin ; + doap:name "Airwindows Cider" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Cider@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Cider.ttl> . diff --git a/plugins/LV2/src/ClipOnly/ClipOnly.cpp b/plugins/LV2/src/ClipOnly/ClipOnly.cpp new file mode 100644 index 0000000..7efa648 --- /dev/null +++ b/plugins/LV2/src/ClipOnly/ClipOnly.cpp @@ -0,0 +1,37 @@ +#include "ClipOnly.h" +#include <iostream> +#include <lv2wrapper.h> + +ClipOnly::ClipOnly(double rate) + : LV2Plugin(rate) +{ +} + +void ClipOnly::activate() +{ + lastSampleL = 0.0; + wasPosClipL = false; + wasNegClipL = false; + + lastSampleR = 0.0; + wasPosClipR = false; + wasNegClipR = false; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void ClipOnly::run(uint32_t num_samples) +{ + + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/ClipOnly/ClipOnlyProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<ClipOnly> plugin; diff --git a/plugins/LV2/src/ClipOnly/ClipOnly.h b/plugins/LV2/src/ClipOnly/ClipOnly.h new file mode 100644 index 0000000..51cee76 --- /dev/null +++ b/plugins/LV2/src/ClipOnly/ClipOnly.h @@ -0,0 +1,37 @@ +#ifndef __ClipOnly_H +#define __ClipOnly_H + +#include <lv2plugin.h> + +class ClipOnly : public LV2Plugin<0> { +public: + ClipOnly(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/cliponly"; + +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. + */ + + float lastSampleL; + bool wasPosClipL; + bool wasNegClipL; + + float lastSampleR; + bool wasPosClipR; + bool wasNegClipR; + +}; + +#endif diff --git a/plugins/LV2/src/ClipOnly/ClipOnly.ttl b/plugins/LV2/src/ClipOnly/ClipOnly.ttl new file mode 100644 index 0000000..d050c90 --- /dev/null +++ b/plugins/LV2/src/ClipOnly/ClipOnly.ttl @@ -0,0 +1,38 @@ +# Airwindows ClipOnly 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/cliponly> + a lv2:Plugin , + lv2:DistortionPlugin ; + lv2:project <https://www.airwindows.com> ; + + lv2:optionalFeature lv2:hardRTCapable ; + + # Define the ports for this plugin. + lv2:port [ + + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 0 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 1 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 2 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 3 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/ClipOnly/manifest.ttl.in b/plugins/LV2/src/ClipOnly/manifest.ttl.in new file mode 100644 index 0000000..1b7fbce --- /dev/null +++ b/plugins/LV2/src/ClipOnly/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:cliponly + a lv2:Plugin ; + doap:name "Airwindows ClipOnly" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <ClipOnly@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <ClipOnly.ttl> . diff --git a/plugins/LV2/src/Coils/Coils.cpp b/plugins/LV2/src/Coils/Coils.cpp new file mode 100644 index 0000000..01a880d --- /dev/null +++ b/plugins/LV2/src/Coils/Coils.cpp @@ -0,0 +1,37 @@ +#include "Coils.h" +#include <iostream> +#include <lv2wrapper.h> + +Coils::Coils(double rate) + : LV2Plugin(rate) +{ +} + +void Coils::activate() +{ + A = 0.0; + B = 0.5; + C = 1.0; + for (int x = 0; x < 9; x++) {figureL[x] = 0.0;figureR[x] = 0.0;} + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Coils::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + + processReplacing(const_cast<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Coils/CoilsProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Coils> plugin; diff --git a/plugins/LV2/src/Coils/Coils.h b/plugins/LV2/src/Coils/Coils.h new file mode 100644 index 0000000..ec1f2fd --- /dev/null +++ b/plugins/LV2/src/Coils/Coils.h @@ -0,0 +1,37 @@ +#ifndef __Coils_H +#define __Coils_H + +#include <lv2plugin.h> + +class Coils : public LV2Plugin<3> { +public: + Coils(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/coils"; + +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 figureL[9]; + long double figureR[9]; + uint32_t fpd; + //default stuff + + float A; + float B; + float C; +}; + +#endif diff --git a/plugins/LV2/src/Coils/Coils.ttl b/plugins/LV2/src/Coils/Coils.ttl new file mode 100644 index 0000000..97deb65 --- /dev/null +++ b/plugins/LV2/src/Coils/Coils.ttl @@ -0,0 +1,60 @@ +# Airwindows Coils 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/coils> + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "Saturat" ; + 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 "Core DC" ; + 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 "Dry/Wet" ; + 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/Coils/manifest.ttl.in b/plugins/LV2/src/Coils/manifest.ttl.in new file mode 100644 index 0000000..8d9851d --- /dev/null +++ b/plugins/LV2/src/Coils/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:coils + a lv2:Plugin ; + doap:name "Airwindows Coils" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Coils@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Coils.ttl> . diff --git a/plugins/LV2/src/Cojones/Cojones.cpp b/plugins/LV2/src/Cojones/Cojones.cpp new file mode 100644 index 0000000..89dda8f --- /dev/null +++ b/plugins/LV2/src/Cojones/Cojones.cpp @@ -0,0 +1,48 @@ +#include "Cojones.h" +#include <iostream> +#include <lv2wrapper.h> + +Cojones::Cojones(double rate) + : LV2Plugin(rate) +{ +} + +void Cojones::activate() +{ + A = 0.5; //0-2 + B = 0.5; //0-2 + C = 0.5; //0-2 + D = 1.0; + E = 1.0; + + storedL[0] = storedL[1] = 0.0; + diffL[0] = diffL[1] = diffL[2] = diffL[3] = diffL[4] = diffL[5] = 0.0; + + storedR[0] = storedR[1] = 0.0; + diffR[0] = diffR[1] = diffR[2] = diffR[3] = diffR[4] = diffR[5] = 0.0; + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Cojones::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/Cojones/CojonesProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Cojones> plugin; diff --git a/plugins/LV2/src/Cojones/Cojones.h b/plugins/LV2/src/Cojones/Cojones.h new file mode 100644 index 0000000..b72ad34 --- /dev/null +++ b/plugins/LV2/src/Cojones/Cojones.h @@ -0,0 +1,45 @@ +#ifndef __Cojones_H +#define __Cojones_H + +#include <lv2plugin.h> + +class Cojones : public LV2Plugin<5> { +public: + Cojones(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/cojones"; + +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 + + long double storedL[2]; + long double diffL[6]; + + long double storedR[2]; + long double diffR[6]; + + float A; + float B; + float C; + float D; + float E; //parameters. Always 0-1, and we scale/alter them elsewhere. + +}; + +#endif diff --git a/plugins/LV2/src/Cojones/Cojones.ttl b/plugins/LV2/src/Cojones/Cojones.ttl new file mode 100644 index 0000000..7e0c30d --- /dev/null +++ b/plugins/LV2/src/Cojones/Cojones.ttl @@ -0,0 +1,76 @@ +# Airwindows Cojones 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/cojones> + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "Breathy" ; + 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 "Cojones" ; + 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 "Body" ; + 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 "Output" ; + 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/Cojones/manifest.ttl.in b/plugins/LV2/src/Cojones/manifest.ttl.in new file mode 100644 index 0000000..7d54bf6 --- /dev/null +++ b/plugins/LV2/src/Cojones/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:cojones + a lv2:Plugin ; + doap:name "Airwindows Cojones" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Cojones@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Cojones.ttl> . diff --git a/plugins/LV2/src/Compresaturator/Compresaturator.cpp b/plugins/LV2/src/Compresaturator/Compresaturator.cpp new file mode 100644 index 0000000..22b1167 --- /dev/null +++ b/plugins/LV2/src/Compresaturator/Compresaturator.cpp @@ -0,0 +1,48 @@ +#include "Compresaturator.h" +#include <iostream> +#include <lv2wrapper.h> + +Compresaturator::Compresaturator(double rate) + : LV2Plugin(rate) +{ +} + +void Compresaturator::activate() +{ + A = 0.5; //-12 to +12 dB + B = 0.5; //0 to 100% + C = 0.5; //50 to 5000 samples, default 500 + D = 1.0; + E = 1.0; + + for(int count = 0; count < 10990; count++) {dL[count] = 0.0; dR[count] = 0.0;} + dCount = 0; + lastWidthL = 500; + padFactorL = 0; + lastWidthR = 500; + padFactorR = 0; + + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Compresaturator::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/Compresaturator/CompresaturatorProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Compresaturator> plugin; diff --git a/plugins/LV2/src/Compresaturator/Compresaturator.h b/plugins/LV2/src/Compresaturator/Compresaturator.h new file mode 100644 index 0000000..12b3b6c --- /dev/null +++ b/plugins/LV2/src/Compresaturator/Compresaturator.h @@ -0,0 +1,48 @@ +#ifndef __Compresaturator_H +#define __Compresaturator_H + +#include <lv2plugin.h> + +class Compresaturator : public LV2Plugin<5> { +public: + Compresaturator(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/compresaturator"; + +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. + */ + + uint32_t fpd; + //default stuff + + int dCount; + + float dL[11000]; + int lastWidthL; + double padFactorL; + + float dR[11000]; + int lastWidthR; + double padFactorR; + + float A; + float B; + float C; + float D; + float E; //parameters. Always 0-1, and we scale/alter them elsewhere. + +}; + +#endif diff --git a/plugins/LV2/src/Compresaturator/Compresaturator.ttl b/plugins/LV2/src/Compresaturator/Compresaturator.ttl new file mode 100644 index 0000000..0ae2cf9 --- /dev/null +++ b/plugins/LV2/src/Compresaturator/Compresaturator.ttl @@ -0,0 +1,76 @@ +# Airwindows Compresaturator 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/compresaturator> + 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 "Drive" ; + 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 "Clamp" ; + 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 "Expand" ; + 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 "Output" ; + 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/Compresaturator/manifest.ttl.in b/plugins/LV2/src/Compresaturator/manifest.ttl.in new file mode 100644 index 0000000..052045a --- /dev/null +++ b/plugins/LV2/src/Compresaturator/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:compresaturator + a lv2:Plugin ; + doap:name "Airwindows Compresaturator" ; + doap:license <http://opensource.org/licenses/mit> ; + lv2:binary <Compresaturator@CMAKE_SHARED_LIBRARY_SUFFIX@> ; + rdfs:seeAlso <Compresaturator.ttl> . |