From a42203c7ddd28f1b6a5d2c12cab5e6dd40f1622f Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 28 Mar 2021 17:29:25 +0200 Subject: LV2: More plugins. Plugins added in this batch is: - C5RawBuss - C5RawChannel - Calibre - Channel4-7 - Chorus - ChorusEnsemble - ChromeOxide - Cider - ClipOnly - Coils - Cojones - Compresaturator --- plugins/LV2/CMakeLists.txt | 32 +++--- plugins/LV2/manifest.ttl.in | 112 +++++++++++++++++++++ plugins/LV2/src/C5RawBuss/C5RawBuss.cpp | 37 +++++++ plugins/LV2/src/C5RawBuss/C5RawBuss.h | 37 +++++++ plugins/LV2/src/C5RawBuss/C5RawBuss.ttl | 44 ++++++++ plugins/LV2/src/C5RawBuss/manifest.ttl.in | 6 ++ plugins/LV2/src/C5RawChannel/C5RawChannel.cpp | 37 +++++++ plugins/LV2/src/C5RawChannel/C5RawChannel.h | 37 +++++++ plugins/LV2/src/C5RawChannel/C5RawChannel.ttl | 44 ++++++++ plugins/LV2/src/C5RawChannel/manifest.ttl.in | 6 ++ plugins/LV2/src/Calibre/Calibre.cpp | 40 ++++++++ plugins/LV2/src/Calibre/Calibre.h | 40 ++++++++ plugins/LV2/src/Calibre/Calibre.ttl | 68 +++++++++++++ plugins/LV2/src/Calibre/manifest.ttl.in | 6 ++ plugins/LV2/src/Capacitor/Capacitor.cpp | 73 ++++++++++++++ plugins/LV2/src/Capacitor/Capacitor.h | 76 ++++++++++++++ plugins/LV2/src/Capacitor/Capacitor.ttl | 60 +++++++++++ plugins/LV2/src/Capacitor/manifest.ttl.in | 6 ++ plugins/LV2/src/Channel4/Channel4.cpp | 47 +++++++++ plugins/LV2/src/Channel4/Channel4.h | 46 +++++++++ plugins/LV2/src/Channel4/Channel4.ttl | 52 ++++++++++ plugins/LV2/src/Channel4/manifest.ttl.in | 6 ++ plugins/LV2/src/Channel5/Channel5.cpp | 46 +++++++++ plugins/LV2/src/Channel5/Channel5.h | 45 +++++++++ plugins/LV2/src/Channel5/Channel5.ttl | 60 +++++++++++ plugins/LV2/src/Channel5/manifest.ttl.in | 6 ++ plugins/LV2/src/Channel6/Channel6.cpp | 46 +++++++++ plugins/LV2/src/Channel6/Channel6.h | 45 +++++++++ plugins/LV2/src/Channel6/Channel6.ttl | 60 +++++++++++ plugins/LV2/src/Channel6/manifest.ttl.in | 6 ++ plugins/LV2/src/Channel7/Channel7.cpp | 45 +++++++++ plugins/LV2/src/Channel7/Channel7.h | 44 ++++++++ plugins/LV2/src/Channel7/Channel7.ttl | 60 +++++++++++ plugins/LV2/src/Channel7/manifest.ttl.in | 6 ++ plugins/LV2/src/Chorus/Chorus.cpp | 50 +++++++++ plugins/LV2/src/Chorus/Chorus.h | 51 ++++++++++ plugins/LV2/src/Chorus/Chorus.ttl | 60 +++++++++++ plugins/LV2/src/Chorus/manifest.ttl.in | 6 ++ plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.cpp | 50 +++++++++ plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.h | 50 +++++++++ plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.ttl | 60 +++++++++++ plugins/LV2/src/ChorusEnsemble/manifest.ttl.in | 6 ++ plugins/LV2/src/ChromeOxide/ChromeOxide.cpp | 51 ++++++++++ plugins/LV2/src/ChromeOxide/ChromeOxide.h | 54 ++++++++++ plugins/LV2/src/ChromeOxide/ChromeOxide.ttl | 52 ++++++++++ plugins/LV2/src/ChromeOxide/manifest.ttl.in | 6 ++ plugins/LV2/src/Cider/Cider.cpp | 40 ++++++++ plugins/LV2/src/Cider/Cider.h | 40 ++++++++ plugins/LV2/src/Cider/Cider.ttl | 68 +++++++++++++ plugins/LV2/src/Cider/manifest.ttl.in | 6 ++ plugins/LV2/src/ClipOnly/ClipOnly.cpp | 37 +++++++ plugins/LV2/src/ClipOnly/ClipOnly.h | 37 +++++++ plugins/LV2/src/ClipOnly/ClipOnly.ttl | 38 +++++++ plugins/LV2/src/ClipOnly/manifest.ttl.in | 6 ++ plugins/LV2/src/Coils/Coils.cpp | 37 +++++++ plugins/LV2/src/Coils/Coils.h | 37 +++++++ plugins/LV2/src/Coils/Coils.ttl | 60 +++++++++++ plugins/LV2/src/Coils/manifest.ttl.in | 6 ++ plugins/LV2/src/Cojones/Cojones.cpp | 48 +++++++++ plugins/LV2/src/Cojones/Cojones.h | 45 +++++++++ plugins/LV2/src/Cojones/Cojones.ttl | 76 ++++++++++++++ plugins/LV2/src/Cojones/manifest.ttl.in | 6 ++ .../LV2/src/Compresaturator/Compresaturator.cpp | 48 +++++++++ plugins/LV2/src/Compresaturator/Compresaturator.h | 48 +++++++++ .../LV2/src/Compresaturator/Compresaturator.ttl | 76 ++++++++++++++ plugins/LV2/src/Compresaturator/manifest.ttl.in | 6 ++ 66 files changed, 2626 insertions(+), 16 deletions(-) create mode 100644 plugins/LV2/src/C5RawBuss/C5RawBuss.cpp create mode 100644 plugins/LV2/src/C5RawBuss/C5RawBuss.h create mode 100644 plugins/LV2/src/C5RawBuss/C5RawBuss.ttl create mode 100644 plugins/LV2/src/C5RawBuss/manifest.ttl.in create mode 100644 plugins/LV2/src/C5RawChannel/C5RawChannel.cpp create mode 100644 plugins/LV2/src/C5RawChannel/C5RawChannel.h create mode 100644 plugins/LV2/src/C5RawChannel/C5RawChannel.ttl create mode 100644 plugins/LV2/src/C5RawChannel/manifest.ttl.in create mode 100644 plugins/LV2/src/Calibre/Calibre.cpp create mode 100644 plugins/LV2/src/Calibre/Calibre.h create mode 100644 plugins/LV2/src/Calibre/Calibre.ttl create mode 100644 plugins/LV2/src/Calibre/manifest.ttl.in create mode 100644 plugins/LV2/src/Capacitor/Capacitor.cpp create mode 100644 plugins/LV2/src/Capacitor/Capacitor.h create mode 100644 plugins/LV2/src/Capacitor/Capacitor.ttl create mode 100644 plugins/LV2/src/Capacitor/manifest.ttl.in create mode 100644 plugins/LV2/src/Channel4/Channel4.cpp create mode 100644 plugins/LV2/src/Channel4/Channel4.h create mode 100644 plugins/LV2/src/Channel4/Channel4.ttl create mode 100644 plugins/LV2/src/Channel4/manifest.ttl.in create mode 100644 plugins/LV2/src/Channel5/Channel5.cpp create mode 100644 plugins/LV2/src/Channel5/Channel5.h create mode 100644 plugins/LV2/src/Channel5/Channel5.ttl create mode 100644 plugins/LV2/src/Channel5/manifest.ttl.in create mode 100644 plugins/LV2/src/Channel6/Channel6.cpp create mode 100644 plugins/LV2/src/Channel6/Channel6.h create mode 100644 plugins/LV2/src/Channel6/Channel6.ttl create mode 100644 plugins/LV2/src/Channel6/manifest.ttl.in create mode 100644 plugins/LV2/src/Channel7/Channel7.cpp create mode 100644 plugins/LV2/src/Channel7/Channel7.h create mode 100644 plugins/LV2/src/Channel7/Channel7.ttl create mode 100644 plugins/LV2/src/Channel7/manifest.ttl.in create mode 100644 plugins/LV2/src/Chorus/Chorus.cpp create mode 100644 plugins/LV2/src/Chorus/Chorus.h create mode 100644 plugins/LV2/src/Chorus/Chorus.ttl create mode 100644 plugins/LV2/src/Chorus/manifest.ttl.in create mode 100644 plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.cpp create mode 100644 plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.h create mode 100644 plugins/LV2/src/ChorusEnsemble/ChorusEnsemble.ttl create mode 100644 plugins/LV2/src/ChorusEnsemble/manifest.ttl.in create mode 100644 plugins/LV2/src/ChromeOxide/ChromeOxide.cpp create mode 100644 plugins/LV2/src/ChromeOxide/ChromeOxide.h create mode 100644 plugins/LV2/src/ChromeOxide/ChromeOxide.ttl create mode 100644 plugins/LV2/src/ChromeOxide/manifest.ttl.in create mode 100644 plugins/LV2/src/Cider/Cider.cpp create mode 100644 plugins/LV2/src/Cider/Cider.h create mode 100644 plugins/LV2/src/Cider/Cider.ttl create mode 100644 plugins/LV2/src/Cider/manifest.ttl.in create mode 100644 plugins/LV2/src/ClipOnly/ClipOnly.cpp create mode 100644 plugins/LV2/src/ClipOnly/ClipOnly.h create mode 100644 plugins/LV2/src/ClipOnly/ClipOnly.ttl create mode 100644 plugins/LV2/src/ClipOnly/manifest.ttl.in create mode 100644 plugins/LV2/src/Coils/Coils.cpp create mode 100644 plugins/LV2/src/Coils/Coils.h create mode 100644 plugins/LV2/src/Coils/Coils.ttl create mode 100644 plugins/LV2/src/Coils/manifest.ttl.in create mode 100644 plugins/LV2/src/Cojones/Cojones.cpp create mode 100644 plugins/LV2/src/Cojones/Cojones.h create mode 100644 plugins/LV2/src/Cojones/Cojones.ttl create mode 100644 plugins/LV2/src/Cojones/manifest.ttl.in create mode 100644 plugins/LV2/src/Compresaturator/Compresaturator.cpp create mode 100644 plugins/LV2/src/Compresaturator/Compresaturator.h create mode 100644 plugins/LV2/src/Compresaturator/Compresaturator.ttl create mode 100644 plugins/LV2/src/Compresaturator/manifest.ttl.in 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 ; lv2:binary ; rdfs:seeAlso . + +airwindows:c5rawbuss + a lv2:Plugin ; + doap:name "Airwindows C5RawBuss" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:c5rawchannel + a lv2:Plugin ; + doap:name "Airwindows C5RawChannel" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:calibre + a lv2:Plugin ; + doap:name "Airwindows Calibre" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:capacitor + a lv2:Plugin ; + doap:name "Airwindows Capacitor" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:channel4 + a lv2:Plugin ; + doap:name "Airwindows Channel4" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:channel5 + a lv2:Plugin ; + doap:name "Airwindows Channel5" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:channel6 + a lv2:Plugin ; + doap:name "Airwindows Channel6" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:channel7 + a lv2:Plugin ; + doap:name "Airwindows Channel7" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:chorus + a lv2:Plugin ; + doap:name "Airwindows Chorus" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:chorusensemble + a lv2:Plugin ; + doap:name "Airwindows ChorusEnsemble" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:chromeoxide + a lv2:Plugin ; + doap:name "Airwindows ChromeOxide" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:cider + a lv2:Plugin ; + doap:name "Airwindows Cider" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:cliponly + a lv2:Plugin ; + doap:name "Airwindows ClipOnly" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:coils + a lv2:Plugin ; + doap:name "Airwindows Coils" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:cojones + a lv2:Plugin ; + doap:name "Airwindows Cojones" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:compresaturator + a lv2:Plugin ; + doap:name "Airwindows Compresaturator" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/C5RawBuss/C5RawBussProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/C5RawChannel/C5RawChannelProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Calibre/CalibreProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Capacitor/CapacitorProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:EQPlugin ; + 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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Channel4/Channel4Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:DistortionPlugin ; + lv2:project ; + + 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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Channel5/Channel5Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:DistortionPlugin ; + lv2:project ; + + 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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Channel6/Channel6Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:DistortionPlugin ; + lv2:project ; + + 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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Channel7/Channel7Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:DistortionPlugin ; + lv2:project ; + + 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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Chorus/ChorusProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:ModulationPlugin ; + 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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/ChorusEnsemble/ChorusEnsembleProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:ModulationPlugin ; + 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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/ChromeOxide/ChromeOxideProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Cider/CiderProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/ClipOnly/ClipOnlyProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:DistortionPlugin ; + lv2:project ; + + 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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Coils/CoilsProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Cojones/CojonesProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:DistortionPlugin ; + 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 "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 ; + lv2:binary ; + rdfs:seeAlso . 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 +#include + +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(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Compresaturator/CompresaturatorProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper 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 + +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: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:CompressorPlugin ; + 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 "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 ; + lv2:binary ; + rdfs:seeAlso . -- cgit v1.2.3