From 42b16a0e9989acec15d0129a8f5275ac3af8a570 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sat, 3 Apr 2021 21:11:50 +0200 Subject: LV2: Big batch of plugins, all of 'D' --- plugins/LV2/CMakeLists.txt | 52 +++--- plugins/LV2/manifest.ttl.in | 182 +++++++++++++++++++++ plugins/LV2/src/DCVoltage/DCVoltage.cpp | 31 ++++ plugins/LV2/src/DCVoltage/DCVoltage.h | 30 ++++ plugins/LV2/src/DCVoltage/DCVoltage.ttl | 44 +++++ plugins/LV2/src/DCVoltage/manifest.ttl.in | 6 + plugins/LV2/src/Dark/Dark.cpp | 38 +++++ plugins/LV2/src/Dark/Dark.h | 36 ++++ plugins/LV2/src/Dark/Dark.ttl | 52 ++++++ plugins/LV2/src/Dark/manifest.ttl.in | 6 + plugins/LV2/src/DeBess/DeBess.cpp | 52 ++++++ plugins/LV2/src/DeBess/DeBess.h | 52 ++++++ plugins/LV2/src/DeBess/DeBess.ttl | 76 +++++++++ plugins/LV2/src/DeBess/manifest.ttl.in | 6 + plugins/LV2/src/DeEss/DeEss.cpp | 54 ++++++ plugins/LV2/src/DeEss/DeEss.h | 85 ++++++++++ plugins/LV2/src/DeEss/DeEss.ttl | 60 +++++++ plugins/LV2/src/DeEss/manifest.ttl.in | 6 + plugins/LV2/src/DeHiss/DeHiss.cpp | 45 +++++ plugins/LV2/src/DeHiss/DeHiss.h | 43 +++++ plugins/LV2/src/DeHiss/DeHiss.ttl | 52 ++++++ plugins/LV2/src/DeHiss/manifest.ttl.in | 6 + plugins/LV2/src/DeRez/DeRez.cpp | 44 +++++ plugins/LV2/src/DeRez/DeRez.h | 43 +++++ plugins/LV2/src/DeRez/DeRez.ttl | 52 ++++++ plugins/LV2/src/DeRez/manifest.ttl.in | 6 + plugins/LV2/src/DeRez2/DeRez2.cpp | 51 ++++++ plugins/LV2/src/DeRez2/DeRez2.h | 51 ++++++ plugins/LV2/src/DeRez2/DeRez2.ttl | 68 ++++++++ plugins/LV2/src/DeRez2/manifest.ttl.in | 6 + plugins/LV2/src/Deckwrecka/Deckwrecka.cpp | 96 +++++++++++ plugins/LV2/src/Deckwrecka/Deckwrecka.h | 97 +++++++++++ plugins/LV2/src/Deckwrecka/Deckwrecka.ttl | 44 +++++ plugins/LV2/src/Deckwrecka/manifest.ttl.in | 6 + plugins/LV2/src/Density/Density.cpp | 44 +++++ plugins/LV2/src/Density/Density.h | 42 +++++ plugins/LV2/src/Density/Density.ttl | 68 ++++++++ plugins/LV2/src/Density/manifest.ttl.in | 6 + plugins/LV2/src/Desk/Desk.cpp | 38 +++++ plugins/LV2/src/Desk/Desk.h | 40 +++++ plugins/LV2/src/Desk/Desk.ttl | 38 +++++ plugins/LV2/src/Desk/manifest.ttl.in | 6 + plugins/LV2/src/Desk4/Desk4.cpp | 55 +++++++ plugins/LV2/src/Desk4/Desk4.h | 52 ++++++ plugins/LV2/src/Desk4/Desk4.ttl | 84 ++++++++++ plugins/LV2/src/Desk4/manifest.ttl.in | 6 + plugins/LV2/src/DigitalBlack/DigitalBlack.cpp | 40 +++++ plugins/LV2/src/DigitalBlack/DigitalBlack.h | 40 +++++ plugins/LV2/src/DigitalBlack/DigitalBlack.ttl | 52 ++++++ plugins/LV2/src/DigitalBlack/manifest.ttl.in | 6 + plugins/LV2/src/Distance/Distance.cpp | 37 +++++ plugins/LV2/src/Distance/Distance.h | 49 ++++++ plugins/LV2/src/Distance/Distance.ttl | 52 ++++++ plugins/LV2/src/Distance/manifest.ttl.in | 6 + plugins/LV2/src/Distance2/Distance2.cpp | 83 ++++++++++ plugins/LV2/src/Distance2/Distance2.h | 84 ++++++++++ plugins/LV2/src/Distance2/Distance2.ttl | 60 +++++++ plugins/LV2/src/Distance2/manifest.ttl.in | 6 + plugins/LV2/src/Distortion/Distortion.cpp | 42 +++++ plugins/LV2/src/Distortion/Distortion.h | 41 +++++ plugins/LV2/src/Distortion/Distortion.ttl | 74 +++++++++ plugins/LV2/src/Distortion/manifest.ttl.in | 6 + plugins/LV2/src/DitherFloat/DitherFloat.cpp | 34 ++++ plugins/LV2/src/DitherFloat/DitherFloat.h | 34 ++++ plugins/LV2/src/DitherFloat/DitherFloat.ttl | 52 ++++++ plugins/LV2/src/DitherFloat/manifest.ttl.in | 6 + .../LV2/src/DitherMeDiskers/DitherMeDiskers.cpp | 36 ++++ plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.h | 35 ++++ .../LV2/src/DitherMeDiskers/DitherMeDiskers.ttl | 38 +++++ plugins/LV2/src/DitherMeDiskers/manifest.ttl.in | 6 + .../LV2/src/DitherMeTimbers/DitherMeTimbers.cpp | 36 ++++ plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.h | 35 ++++ .../LV2/src/DitherMeTimbers/DitherMeTimbers.ttl | 38 +++++ plugins/LV2/src/DitherMeTimbers/manifest.ttl.in | 6 + plugins/LV2/src/Ditherbox/Ditherbox.cpp | 157 ++++++++++++++++++ plugins/LV2/src/Ditherbox/Ditherbox.h | 105 ++++++++++++ plugins/LV2/src/Ditherbox/Ditherbox.ttl | 70 ++++++++ plugins/LV2/src/Ditherbox/manifest.ttl.in | 6 + plugins/LV2/src/DoublePaul/DoublePaul.cpp | 31 ++++ plugins/LV2/src/DoublePaul/DoublePaul.h | 32 ++++ plugins/LV2/src/DoublePaul/DoublePaul.ttl | 38 +++++ plugins/LV2/src/DoublePaul/manifest.ttl.in | 6 + plugins/LV2/src/Drive/Drive.cpp | 44 +++++ plugins/LV2/src/Drive/Drive.h | 42 +++++ plugins/LV2/src/Drive/Drive.ttl | 68 ++++++++ plugins/LV2/src/Drive/manifest.ttl.in | 6 + plugins/LV2/src/DrumSlam/DrumSlam.cpp | 58 +++++++ plugins/LV2/src/DrumSlam/DrumSlam.h | 59 +++++++ plugins/LV2/src/DrumSlam/DrumSlam.ttl | 60 +++++++ plugins/LV2/src/DrumSlam/manifest.ttl.in | 6 + plugins/LV2/src/DubCenter/DubCenter.cpp | 109 ++++++++++++ plugins/LV2/src/DubCenter/DubCenter.h | 100 +++++++++++ plugins/LV2/src/DubCenter/DubCenter.ttl | 116 +++++++++++++ plugins/LV2/src/DubCenter/manifest.ttl.in | 6 + plugins/LV2/src/DubSub/DubSub.cpp | 147 +++++++++++++++++ plugins/LV2/src/DubSub/DubSub.h | 142 ++++++++++++++++ plugins/LV2/src/DubSub/DubSub.ttl | 116 +++++++++++++ plugins/LV2/src/DubSub/manifest.ttl.in | 6 + plugins/LV2/src/DustBunny/DustBunny.cpp | 45 +++++ plugins/LV2/src/DustBunny/DustBunny.h | 63 +++++++ plugins/LV2/src/DustBunny/DustBunny.ttl | 44 +++++ plugins/LV2/src/DustBunny/manifest.ttl.in | 6 + plugins/LV2/src/Dyno/Dyno.cpp | 32 ++++ plugins/LV2/src/Dyno/Dyno.h | 33 ++++ plugins/LV2/src/Dyno/Dyno.ttl | 44 +++++ plugins/LV2/src/Dyno/manifest.ttl.in | 6 + 106 files changed, 4868 insertions(+), 26 deletions(-) create mode 100644 plugins/LV2/src/DCVoltage/DCVoltage.cpp create mode 100644 plugins/LV2/src/DCVoltage/DCVoltage.h create mode 100644 plugins/LV2/src/DCVoltage/DCVoltage.ttl create mode 100644 plugins/LV2/src/DCVoltage/manifest.ttl.in create mode 100644 plugins/LV2/src/Dark/Dark.cpp create mode 100644 plugins/LV2/src/Dark/Dark.h create mode 100644 plugins/LV2/src/Dark/Dark.ttl create mode 100644 plugins/LV2/src/Dark/manifest.ttl.in create mode 100644 plugins/LV2/src/DeBess/DeBess.cpp create mode 100644 plugins/LV2/src/DeBess/DeBess.h create mode 100644 plugins/LV2/src/DeBess/DeBess.ttl create mode 100644 plugins/LV2/src/DeBess/manifest.ttl.in create mode 100644 plugins/LV2/src/DeEss/DeEss.cpp create mode 100644 plugins/LV2/src/DeEss/DeEss.h create mode 100644 plugins/LV2/src/DeEss/DeEss.ttl create mode 100644 plugins/LV2/src/DeEss/manifest.ttl.in create mode 100644 plugins/LV2/src/DeHiss/DeHiss.cpp create mode 100644 plugins/LV2/src/DeHiss/DeHiss.h create mode 100644 plugins/LV2/src/DeHiss/DeHiss.ttl create mode 100644 plugins/LV2/src/DeHiss/manifest.ttl.in create mode 100644 plugins/LV2/src/DeRez/DeRez.cpp create mode 100644 plugins/LV2/src/DeRez/DeRez.h create mode 100644 plugins/LV2/src/DeRez/DeRez.ttl create mode 100644 plugins/LV2/src/DeRez/manifest.ttl.in create mode 100644 plugins/LV2/src/DeRez2/DeRez2.cpp create mode 100644 plugins/LV2/src/DeRez2/DeRez2.h create mode 100644 plugins/LV2/src/DeRez2/DeRez2.ttl create mode 100644 plugins/LV2/src/DeRez2/manifest.ttl.in create mode 100644 plugins/LV2/src/Deckwrecka/Deckwrecka.cpp create mode 100644 plugins/LV2/src/Deckwrecka/Deckwrecka.h create mode 100644 plugins/LV2/src/Deckwrecka/Deckwrecka.ttl create mode 100644 plugins/LV2/src/Deckwrecka/manifest.ttl.in create mode 100644 plugins/LV2/src/Density/Density.cpp create mode 100644 plugins/LV2/src/Density/Density.h create mode 100644 plugins/LV2/src/Density/Density.ttl create mode 100644 plugins/LV2/src/Density/manifest.ttl.in create mode 100644 plugins/LV2/src/Desk/Desk.cpp create mode 100644 plugins/LV2/src/Desk/Desk.h create mode 100644 plugins/LV2/src/Desk/Desk.ttl create mode 100644 plugins/LV2/src/Desk/manifest.ttl.in create mode 100644 plugins/LV2/src/Desk4/Desk4.cpp create mode 100644 plugins/LV2/src/Desk4/Desk4.h create mode 100644 plugins/LV2/src/Desk4/Desk4.ttl create mode 100644 plugins/LV2/src/Desk4/manifest.ttl.in create mode 100644 plugins/LV2/src/DigitalBlack/DigitalBlack.cpp create mode 100644 plugins/LV2/src/DigitalBlack/DigitalBlack.h create mode 100644 plugins/LV2/src/DigitalBlack/DigitalBlack.ttl create mode 100644 plugins/LV2/src/DigitalBlack/manifest.ttl.in create mode 100644 plugins/LV2/src/Distance/Distance.cpp create mode 100644 plugins/LV2/src/Distance/Distance.h create mode 100644 plugins/LV2/src/Distance/Distance.ttl create mode 100644 plugins/LV2/src/Distance/manifest.ttl.in create mode 100644 plugins/LV2/src/Distance2/Distance2.cpp create mode 100644 plugins/LV2/src/Distance2/Distance2.h create mode 100644 plugins/LV2/src/Distance2/Distance2.ttl create mode 100644 plugins/LV2/src/Distance2/manifest.ttl.in create mode 100644 plugins/LV2/src/Distortion/Distortion.cpp create mode 100644 plugins/LV2/src/Distortion/Distortion.h create mode 100644 plugins/LV2/src/Distortion/Distortion.ttl create mode 100644 plugins/LV2/src/Distortion/manifest.ttl.in create mode 100644 plugins/LV2/src/DitherFloat/DitherFloat.cpp create mode 100644 plugins/LV2/src/DitherFloat/DitherFloat.h create mode 100644 plugins/LV2/src/DitherFloat/DitherFloat.ttl create mode 100644 plugins/LV2/src/DitherFloat/manifest.ttl.in create mode 100644 plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.cpp create mode 100644 plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.h create mode 100644 plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.ttl create mode 100644 plugins/LV2/src/DitherMeDiskers/manifest.ttl.in create mode 100644 plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.cpp create mode 100644 plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.h create mode 100644 plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.ttl create mode 100644 plugins/LV2/src/DitherMeTimbers/manifest.ttl.in create mode 100644 plugins/LV2/src/Ditherbox/Ditherbox.cpp create mode 100644 plugins/LV2/src/Ditherbox/Ditherbox.h create mode 100644 plugins/LV2/src/Ditherbox/Ditherbox.ttl create mode 100644 plugins/LV2/src/Ditherbox/manifest.ttl.in create mode 100644 plugins/LV2/src/DoublePaul/DoublePaul.cpp create mode 100644 plugins/LV2/src/DoublePaul/DoublePaul.h create mode 100644 plugins/LV2/src/DoublePaul/DoublePaul.ttl create mode 100644 plugins/LV2/src/DoublePaul/manifest.ttl.in create mode 100644 plugins/LV2/src/Drive/Drive.cpp create mode 100644 plugins/LV2/src/Drive/Drive.h create mode 100644 plugins/LV2/src/Drive/Drive.ttl create mode 100644 plugins/LV2/src/Drive/manifest.ttl.in create mode 100644 plugins/LV2/src/DrumSlam/DrumSlam.cpp create mode 100644 plugins/LV2/src/DrumSlam/DrumSlam.h create mode 100644 plugins/LV2/src/DrumSlam/DrumSlam.ttl create mode 100644 plugins/LV2/src/DrumSlam/manifest.ttl.in create mode 100644 plugins/LV2/src/DubCenter/DubCenter.cpp create mode 100644 plugins/LV2/src/DubCenter/DubCenter.h create mode 100644 plugins/LV2/src/DubCenter/DubCenter.ttl create mode 100644 plugins/LV2/src/DubCenter/manifest.ttl.in create mode 100644 plugins/LV2/src/DubSub/DubSub.cpp create mode 100644 plugins/LV2/src/DubSub/DubSub.h create mode 100644 plugins/LV2/src/DubSub/DubSub.ttl create mode 100644 plugins/LV2/src/DubSub/manifest.ttl.in create mode 100644 plugins/LV2/src/DustBunny/DustBunny.cpp create mode 100644 plugins/LV2/src/DustBunny/DustBunny.h create mode 100644 plugins/LV2/src/DustBunny/DustBunny.ttl create mode 100644 plugins/LV2/src/DustBunny/manifest.ttl.in create mode 100644 plugins/LV2/src/Dyno/Dyno.cpp create mode 100644 plugins/LV2/src/Dyno/Dyno.h create mode 100644 plugins/LV2/src/Dyno/Dyno.ttl create mode 100644 plugins/LV2/src/Dyno/manifest.ttl.in diff --git a/plugins/LV2/CMakeLists.txt b/plugins/LV2/CMakeLists.txt index c2a9cdb..0f7e489 100755 --- a/plugins/LV2/CMakeLists.txt +++ b/plugins/LV2/CMakeLists.txt @@ -68,32 +68,32 @@ add_airwindows_plugin(CrunchyGrooveWear) add_airwindows_plugin(Crystal) add_airwindows_plugin(CStrip) add_airwindows_plugin(curve) -# add_airwindows_plugin(Dark) -# add_airwindows_plugin(DCVoltage) -# add_airwindows_plugin(Deckwrecka) -# add_airwindows_plugin(DeBess) -# add_airwindows_plugin(DeEss) -# add_airwindows_plugin(DeHiss) -# add_airwindows_plugin(Density) -# add_airwindows_plugin(DeRez) -# add_airwindows_plugin(DeRez2) -# add_airwindows_plugin(Desk) -# add_airwindows_plugin(Desk4) -# add_airwindows_plugin(DigitalBlack) -# add_airwindows_plugin(Distance) -# add_airwindows_plugin(Distance2) -# add_airwindows_plugin(Distortion) -# add_airwindows_plugin(DoublePaul) -# add_airwindows_plugin(Ditherbox) -# add_airwindows_plugin(DitherFloat) -# add_airwindows_plugin(DitherMeDiskers) -# add_airwindows_plugin(DitherMeTimbers) -# add_airwindows_plugin(Drive) -# add_airwindows_plugin(DrumSlam) -# add_airwindows_plugin(DubCenter) -# add_airwindows_plugin(DubSub) -# add_airwindows_plugin(DustBunny) -# add_airwindows_plugin(Dyno) +add_airwindows_plugin(Dark) +add_airwindows_plugin(DCVoltage) +add_airwindows_plugin(Deckwrecka) +add_airwindows_plugin(DeBess) +add_airwindows_plugin(DeEss) +add_airwindows_plugin(DeHiss) +add_airwindows_plugin(Density) +add_airwindows_plugin(DeRez) +add_airwindows_plugin(DeRez2) +add_airwindows_plugin(Desk) +add_airwindows_plugin(Desk4) +add_airwindows_plugin(DigitalBlack) +add_airwindows_plugin(Distance) +add_airwindows_plugin(Distance2) +add_airwindows_plugin(Distortion) +add_airwindows_plugin(DoublePaul) +add_airwindows_plugin(Ditherbox) +add_airwindows_plugin(DitherFloat) +add_airwindows_plugin(DitherMeDiskers) +add_airwindows_plugin(DitherMeTimbers) +add_airwindows_plugin(Drive) +add_airwindows_plugin(DrumSlam) +add_airwindows_plugin(DubCenter) +add_airwindows_plugin(DubSub) +add_airwindows_plugin(DustBunny) +add_airwindows_plugin(Dyno) # add_airwindows_plugin(EQ) # add_airwindows_plugin(EdIsDim) # add_airwindows_plugin(Elation) diff --git a/plugins/LV2/manifest.ttl.in b/plugins/LV2/manifest.ttl.in index 521a596..072d235 100644 --- a/plugins/LV2/manifest.ttl.in +++ b/plugins/LV2/manifest.ttl.in @@ -395,3 +395,185 @@ airwindows:curve doap:license ; lv2:binary ; rdfs:seeAlso . + +airwindows:dcvoltage + a lv2:Plugin ; + doap:name "Airwindows DCVoltage" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:dark + a lv2:Plugin ; + doap:name "Airwindows Dark" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:debess + a lv2:Plugin ; + doap:name "Airwindows DeBess" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:deess + a lv2:Plugin ; + doap:name "Airwindows DeEss" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:dehiss + a lv2:Plugin ; + doap:name "Airwindows DeHiss" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:derez + a lv2:Plugin ; + doap:name "Airwindows DeRez" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:derez2 + a lv2:Plugin ; + doap:name "Airwindows DeRez2" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:deckwrecka + a lv2:Plugin ; + doap:name "Airwindows Deckwrecka" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:density + a lv2:Plugin ; + doap:name "Airwindows Density" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:desk + a lv2:Plugin ; + doap:name "Airwindows Desk" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:desk4 + a lv2:Plugin ; + doap:name "Airwindows Desk4" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:digitalblack + a lv2:Plugin ; + doap:name "Airwindows DigitalBlack" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:distance + a lv2:Plugin ; + doap:name "Airwindows Distance" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:distance2 + a lv2:Plugin ; + doap:name "Airwindows Distance2" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:distortion + a lv2:Plugin ; + doap:name "Airwindows Distortion" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:ditherfloat + a lv2:Plugin ; + doap:name "Airwindows DitherFloat" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:dithermediskers + a lv2:Plugin ; + doap:name "Airwindows DitherMeDiskers" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:dithermetimbers + a lv2:Plugin ; + doap:name "Airwindows DitherMeTimbers" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:ditherbox + a lv2:Plugin ; + doap:name "Airwindows Ditherbox" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:doublepaul + a lv2:Plugin ; + doap:name "Airwindows DoublePaul" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:drive + a lv2:Plugin ; + doap:name "Airwindows Drive" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:drumslam + a lv2:Plugin ; + doap:name "Airwindows DrumSlam" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:dubcenter + a lv2:Plugin ; + doap:name "Airwindows DubCenter" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:dubsub + a lv2:Plugin ; + doap:name "Airwindows DubSub" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:dustbunny + a lv2:Plugin ; + doap:name "Airwindows DustBunny" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . + +airwindows:dyno + a lv2:Plugin ; + doap:name "Airwindows Dyno" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DCVoltage/DCVoltage.cpp b/plugins/LV2/src/DCVoltage/DCVoltage.cpp new file mode 100644 index 0000000..06c84fe --- /dev/null +++ b/plugins/LV2/src/DCVoltage/DCVoltage.cpp @@ -0,0 +1,31 @@ +#include "DCVoltage.h" +#include +#include + +DCVoltage::DCVoltage(double rate) + : LV2Plugin(rate) +{ +} + +void DCVoltage::activate() +{ + A = 0.5; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DCVoltage::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/DCVoltage/DCVoltageProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DCVoltage/DCVoltage.h b/plugins/LV2/src/DCVoltage/DCVoltage.h new file mode 100644 index 0000000..587b8c5 --- /dev/null +++ b/plugins/LV2/src/DCVoltage/DCVoltage.h @@ -0,0 +1,30 @@ +#ifndef __DCVoltage_H +#define __DCVoltage_H + +#include + +class DCVoltage : public LV2Plugin<1> { +public: + DCVoltage(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/dcvoltage"; + +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 A; +}; + +#endif diff --git a/plugins/LV2/src/DCVoltage/DCVoltage.ttl b/plugins/LV2/src/DCVoltage/DCVoltage.ttl new file mode 100644 index 0000000..80fd8f4 --- /dev/null +++ b/plugins/LV2/src/DCVoltage/DCVoltage.ttl @@ -0,0 +1,44 @@ +# Airwindows DCVoltage plugin description + +@prefix lv2: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:UtilityPlugin ; + 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 "Voltage" ; + 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/DCVoltage/manifest.ttl.in b/plugins/LV2/src/DCVoltage/manifest.ttl.in new file mode 100644 index 0000000..d87c38a --- /dev/null +++ b/plugins/LV2/src/DCVoltage/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:dcvoltage + a lv2:Plugin ; + doap:name "Airwindows DCVoltage" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Dark/Dark.cpp b/plugins/LV2/src/Dark/Dark.cpp new file mode 100644 index 0000000..abaf5d5 --- /dev/null +++ b/plugins/LV2/src/Dark/Dark.cpp @@ -0,0 +1,38 @@ +#include "Dark.h" +#include +#include + +Dark::Dark(double rate) + : LV2Plugin(rate) +{ +} + +void Dark::activate() +{ + A = 1.0; + B = 0.0; + fpd = 17; + for(int count = 0; count < 99; count++) { + lastSampleL[count] = 0; + lastSampleR[count] = 0; + } + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Dark::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/Dark/DarkProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Dark/Dark.h b/plugins/LV2/src/Dark/Dark.h new file mode 100644 index 0000000..674872c --- /dev/null +++ b/plugins/LV2/src/Dark/Dark.h @@ -0,0 +1,36 @@ +#ifndef __Dark_H +#define __Dark_H + +#include + +class Dark : public LV2Plugin<2> { +public: + Dark(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/dark"; + +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[100]; + float lastSampleR[100]; + uint32_t fpd; + //default stuff + + float A; + float B; +}; + +#endif diff --git a/plugins/LV2/src/Dark/Dark.ttl b/plugins/LV2/src/Dark/Dark.ttl new file mode 100644 index 0000000..70e6ada --- /dev/null +++ b/plugins/LV2/src/Dark/Dark.ttl @@ -0,0 +1,52 @@ +# Airwindows Dark 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 "Quant" ; + 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 "DeRez" ; + 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/Dark/manifest.ttl.in b/plugins/LV2/src/Dark/manifest.ttl.in new file mode 100644 index 0000000..6d571db --- /dev/null +++ b/plugins/LV2/src/Dark/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:dark + a lv2:Plugin ; + doap:name "Airwindows Dark" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DeBess/DeBess.cpp b/plugins/LV2/src/DeBess/DeBess.cpp new file mode 100644 index 0000000..a1a14e5 --- /dev/null +++ b/plugins/LV2/src/DeBess/DeBess.cpp @@ -0,0 +1,52 @@ +#include "DeBess.h" +#include +#include + +DeBess::DeBess(double rate) + : LV2Plugin(rate) +{ +} + +void DeBess::activate() +{ + A = 0.0; + B = 0.5; + C = 0.5; + D = 0.5; + E = 0.0; + for (int x = 0; x < 41; x++) { + sL[x] = 0.0; mL[x] = 0.0; cL[x] = 0.0; + sR[x] = 0.0; mR[x] = 0.0; cR[x] = 0.0; + } + ratioAL = ratioBL = 1.0; + iirSampleAL = 0.0; + iirSampleBL = 0.0; + ratioAR = ratioBR = 1.0; + iirSampleAR = 0.0; + iirSampleBR = 0.0; + + flip = false; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DeBess::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/DeBess/DeBessProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DeBess/DeBess.h b/plugins/LV2/src/DeBess/DeBess.h new file mode 100644 index 0000000..e7e2438 --- /dev/null +++ b/plugins/LV2/src/DeBess/DeBess.h @@ -0,0 +1,52 @@ +#ifndef __DeBess_H +#define __DeBess_H + +#include + +class DeBess : public LV2Plugin<5> { +public: + DeBess(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/debess"; + +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 sL[41], mL[41], cL[41]; + double ratioAL; + double ratioBL; + double iirSampleAL; + double iirSampleBL; + + long double sR[41], mR[41], cR[41]; + double ratioAR; + double ratioBR; + double iirSampleAR; + double iirSampleBR; + + + bool flip; + uint32_t fpd; + //default stuff + + 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/DeBess/DeBess.ttl b/plugins/LV2/src/DeBess/DeBess.ttl new file mode 100644 index 0000000..7fc338b --- /dev/null +++ b/plugins/LV2/src/DeBess/DeBess.ttl @@ -0,0 +1,76 @@ +# Airwindows DeBess 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 "Sharp" ; + 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 "Depth" ; + 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 "Filter" ; + 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 "Sense" ; + 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/DeBess/manifest.ttl.in b/plugins/LV2/src/DeBess/manifest.ttl.in new file mode 100644 index 0000000..877119e --- /dev/null +++ b/plugins/LV2/src/DeBess/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:debess + a lv2:Plugin ; + doap:name "Airwindows DeBess" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DeEss/DeEss.cpp b/plugins/LV2/src/DeEss/DeEss.cpp new file mode 100644 index 0000000..c6e8e60 --- /dev/null +++ b/plugins/LV2/src/DeEss/DeEss.cpp @@ -0,0 +1,54 @@ +#include "DeEss.h" +#include +#include + +DeEss::DeEss(double rate) + : LV2Plugin(rate) +{ +} + +void DeEss::activate() +{ + A = 0.0; + B = 0.5; //-48.0 to 0.0 + C = 0.5; + + s1L = s2L = s3L = s4L = s5L = s6L= s7L = 0.0; + m1L = m2L = m3L = m4L = m5L = m6L = 0.0; + c1L = c2L = c3L = c4L = c5L = 0.0; + ratioAL = ratioBL = 1.0; + iirSampleAL = 0.0; + iirSampleBL = 0.0; + + s1R = s2R = s3R = s4R = s5R = s6R = s7R = 0.0; + m1R = m2R = m3R = m4R = m5R = m6R = 0.0; + c1R = c2R = c3R = c4R = c5R = 0.0; + ratioAR = ratioBR = 1.0; + iirSampleAR = 0.0; + iirSampleBR = 0.0; + + flip = false; + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DeEss::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/DeEss/DeEssProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DeEss/DeEss.h b/plugins/LV2/src/DeEss/DeEss.h new file mode 100644 index 0000000..b3c2d4e --- /dev/null +++ b/plugins/LV2/src/DeEss/DeEss.h @@ -0,0 +1,85 @@ +#ifndef __DeEss_H +#define __DeEss_H + +#include + +class DeEss : public LV2Plugin<3> { +public: + DeEss(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/deess"; + +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 s1L; + double s2L; + double s3L; + double s4L; + double s5L; + double s6L; + double s7L; + double m1L; + double m2L; + double m3L; + double m4L; + double m5L; + double m6L; + double c1L; + double c2L; + double c3L; + double c4L; + double c5L; + double ratioAL; + double ratioBL; + double iirSampleAL; + double iirSampleBL; + + double s1R; + double s2R; + double s3R; + double s4R; + double s5R; + double s6R; + double s7R; + double m1R; + double m2R; + double m3R; + double m4R; + double m5R; + double m6R; + double c1R; + double c2R; + double c3R; + double c4R; + double c5R; + double ratioAR; + double ratioBR; + double iirSampleAR; + double iirSampleBR; + + + bool flip; + + long double fpNShapeL; + long double fpNShapeR; + //default stuff + + float A; + float B; + float C; +}; + +#endif diff --git a/plugins/LV2/src/DeEss/DeEss.ttl b/plugins/LV2/src/DeEss/DeEss.ttl new file mode 100644 index 0000000..348bc69 --- /dev/null +++ b/plugins/LV2/src/DeEss/DeEss.ttl @@ -0,0 +1,60 @@ +# Airwindows DeEss 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 "Max DS" ; + 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 "Freq" ; + 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/DeEss/manifest.ttl.in b/plugins/LV2/src/DeEss/manifest.ttl.in new file mode 100644 index 0000000..4228e29 --- /dev/null +++ b/plugins/LV2/src/DeEss/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:deess + a lv2:Plugin ; + doap:name "Airwindows DeEss" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DeHiss/DeHiss.cpp b/plugins/LV2/src/DeHiss/DeHiss.cpp new file mode 100644 index 0000000..b6d78c5 --- /dev/null +++ b/plugins/LV2/src/DeHiss/DeHiss.cpp @@ -0,0 +1,45 @@ +#include "DeHiss.h" +#include +#include + +DeHiss::DeHiss(double rate) + : LV2Plugin(rate) +{ +} + +void DeHiss::activate() +{ + A = 0.0; + B = 1.0; + + storedL[0] = storedL[1] = 0.0; + diffL[0] = diffL[1] = diffL[2] = diffL[3] = diffL[4] = diffL[5] = 0.0; + gateL = 1.0; + rawL = 2.0; + + storedR[0] = storedR[1] = 0.0; + diffR[0] = diffR[1] = diffR[2] = diffR[3] = diffR[4] = diffR[5] = 0.0; + gateR = 1.0; + rawR = 2.0; + + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DeHiss::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/DeHiss/DeHissProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DeHiss/DeHiss.h b/plugins/LV2/src/DeHiss/DeHiss.h new file mode 100644 index 0000000..1d22cf1 --- /dev/null +++ b/plugins/LV2/src/DeHiss/DeHiss.h @@ -0,0 +1,43 @@ +#ifndef __DeHiss_H +#define __DeHiss_H + +#include + +class DeHiss : public LV2Plugin<2> { +public: + DeHiss(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/dehiss"; + +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 storedL[2]; + double diffL[6]; + double gateL; + double rawL; + + double storedR[2]; + double diffR[6]; + double gateR; + double rawR; + + float A; + float B; +}; + +#endif diff --git a/plugins/LV2/src/DeHiss/DeHiss.ttl b/plugins/LV2/src/DeHiss/DeHiss.ttl new file mode 100644 index 0000000..bcad11c --- /dev/null +++ b/plugins/LV2/src/DeHiss/DeHiss.ttl @@ -0,0 +1,52 @@ +# Airwindows DeHiss 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 "Thresh" ; + 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 "Dry/Wet" ; + 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/DeHiss/manifest.ttl.in b/plugins/LV2/src/DeHiss/manifest.ttl.in new file mode 100644 index 0000000..8108a4a --- /dev/null +++ b/plugins/LV2/src/DeHiss/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:dehiss + a lv2:Plugin ; + doap:name "Airwindows DeHiss" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DeRez/DeRez.cpp b/plugins/LV2/src/DeRez/DeRez.cpp new file mode 100644 index 0000000..411f0bc --- /dev/null +++ b/plugins/LV2/src/DeRez/DeRez.cpp @@ -0,0 +1,44 @@ +#include "DeRez.h" +#include +#include + +DeRez::DeRez(double rate) + : LV2Plugin(rate) +{ +} + +void DeRez::activate() +{ + A = 1.0; + B = 1.0; + + lastSampleL = 0.0; + heldSampleL = 0.0; + lastSampleR = 0.0; + heldSampleR = 0.0; + position = 0.0; + incrementA = 0.0; + incrementB = 0.0; + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DeRez::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/DeRez/DeRezProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DeRez/DeRez.h b/plugins/LV2/src/DeRez/DeRez.h new file mode 100644 index 0000000..7778ae4 --- /dev/null +++ b/plugins/LV2/src/DeRez/DeRez.h @@ -0,0 +1,43 @@ +#ifndef __DeRez_H +#define __DeRez_H + +#include + +class DeRez : public LV2Plugin<2> { +public: + DeRez(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/derez"; + +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 lastSampleL; + double heldSampleL; + double lastSampleR; + double heldSampleR; + double position; + double incrementA; + double incrementB; + + float A; + float B; +}; + +#endif diff --git a/plugins/LV2/src/DeRez/DeRez.ttl b/plugins/LV2/src/DeRez/DeRez.ttl new file mode 100644 index 0000000..7a45716 --- /dev/null +++ b/plugins/LV2/src/DeRez/DeRez.ttl @@ -0,0 +1,52 @@ +# Airwindows DeRez 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 "Rate" ; + 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 "Rez" ; + 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/DeRez/manifest.ttl.in b/plugins/LV2/src/DeRez/manifest.ttl.in new file mode 100644 index 0000000..b2697de --- /dev/null +++ b/plugins/LV2/src/DeRez/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:derez + a lv2:Plugin ; + doap:name "Airwindows DeRez" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DeRez2/DeRez2.cpp b/plugins/LV2/src/DeRez2/DeRez2.cpp new file mode 100644 index 0000000..0766bc6 --- /dev/null +++ b/plugins/LV2/src/DeRez2/DeRez2.cpp @@ -0,0 +1,51 @@ +#include "DeRez2.h" +#include +#include + +DeRez2::DeRez2(double rate) + : LV2Plugin(rate) +{ +} + +void DeRez2::activate() +{ + A = 1.0; + B = 1.0; + C = 1.0; + D = 1.0; + lastSampleL = 0.0; + heldSampleL = 0.0; + lastDrySampleL = 0.0; + lastOutputSampleL = 0.0; + + lastSampleR = 0.0; + heldSampleR = 0.0; + lastDrySampleR = 0.0; + lastOutputSampleR = 0.0; + + position = 0.0; + incrementA = 0.0; + incrementB = 0.0; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DeRez2::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/DeRez2/DeRez2Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DeRez2/DeRez2.h b/plugins/LV2/src/DeRez2/DeRez2.h new file mode 100644 index 0000000..d5e92ee --- /dev/null +++ b/plugins/LV2/src/DeRez2/DeRez2.h @@ -0,0 +1,51 @@ +#ifndef __DeRez2_H +#define __DeRez2_H + +#include + +class DeRez2 : public LV2Plugin<4> { +public: + DeRez2(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/derez2"; + +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 lastSampleL; + double heldSampleL; + double lastDrySampleL; + double lastOutputSampleL; + + double lastSampleR; + double heldSampleR; + double lastDrySampleR; + double lastOutputSampleR; + + double position; + double incrementA; + double incrementB; + + uint32_t fpd; + //default stuff + + float A; + float B; + float C; + float D; + +}; + +#endif diff --git a/plugins/LV2/src/DeRez2/DeRez2.ttl b/plugins/LV2/src/DeRez2/DeRez2.ttl new file mode 100644 index 0000000..5306065 --- /dev/null +++ b/plugins/LV2/src/DeRez2/DeRez2.ttl @@ -0,0 +1,68 @@ +# Airwindows DeRez2 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 "Rate" ; + 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 "Rez" ; + 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 "Hard" ; + 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 "Dry/Wet" ; + 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/DeRez2/manifest.ttl.in b/plugins/LV2/src/DeRez2/manifest.ttl.in new file mode 100644 index 0000000..c683940 --- /dev/null +++ b/plugins/LV2/src/DeRez2/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:derez2 + a lv2:Plugin ; + doap:name "Airwindows DeRez2" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Deckwrecka/Deckwrecka.cpp b/plugins/LV2/src/Deckwrecka/Deckwrecka.cpp new file mode 100644 index 0000000..44fc474 --- /dev/null +++ b/plugins/LV2/src/Deckwrecka/Deckwrecka.cpp @@ -0,0 +1,96 @@ +#include "Deckwrecka.h" +#include +#include + +Deckwrecka::Deckwrecka(double rate) + : LV2Plugin(rate) +{ +} + +void Deckwrecka::activate() +{ + A = 0.0; + fpd = 17; + bflip = 1; + + iirHeadBumpAL = 0.0; + iirHeadBumpBL = 0.0; + iirHeadBumpCL = 0.0; + + iirSampleAL = 0.0; + iirSampleBL = 0.0; + iirSampleCL = 0.0; + iirSampleDL = 0.0; + iirSampleEL = 0.0; + iirSampleFL = 0.0; + iirSampleGL = 0.0; + iirSampleHL = 0.0; + iirSampleIL = 0.0; + iirSampleJL = 0.0; + iirSampleKL = 0.0; + iirSampleLL = 0.0; + iirSampleML = 0.0; + iirSampleNL = 0.0; + iirSampleOL = 0.0; + iirSamplePL = 0.0; + iirSampleQL = 0.0; + iirSampleRL = 0.0; + iirSampleSL = 0.0; + iirSampleTL = 0.0; + iirSampleUL = 0.0; + iirSampleVL = 0.0; + iirSampleWL = 0.0; + iirSampleXL = 0.0; + iirSampleYL = 0.0; + iirSampleZL = 0.0; + + iirHeadBumpAR = 0.0; + iirHeadBumpBR = 0.0; + iirHeadBumpCR = 0.0; + + iirSampleAR = 0.0; + iirSampleBR = 0.0; + iirSampleCR = 0.0; + iirSampleDR = 0.0; + iirSampleER = 0.0; + iirSampleFR = 0.0; + iirSampleGR = 0.0; + iirSampleHR = 0.0; + iirSampleIR = 0.0; + iirSampleJR = 0.0; + iirSampleKR = 0.0; + iirSampleLR = 0.0; + iirSampleMR = 0.0; + iirSampleNR = 0.0; + iirSampleOR = 0.0; + iirSamplePR = 0.0; + iirSampleQR = 0.0; + iirSampleRR = 0.0; + iirSampleSR = 0.0; + iirSampleTR = 0.0; + iirSampleUR = 0.0; + iirSampleVR = 0.0; + iirSampleWR = 0.0; + iirSampleXR = 0.0; + iirSampleYR = 0.0; + iirSampleZR = 0.0; + + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Deckwrecka::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/Deckwrecka/DeckwreckaProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Deckwrecka/Deckwrecka.h b/plugins/LV2/src/Deckwrecka/Deckwrecka.h new file mode 100644 index 0000000..bf307a2 --- /dev/null +++ b/plugins/LV2/src/Deckwrecka/Deckwrecka.h @@ -0,0 +1,97 @@ +#ifndef __Deckwrecka_H +#define __Deckwrecka_H + +#include + +class Deckwrecka : public LV2Plugin<1> { +public: + Deckwrecka(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/deckwrecka"; + +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 bflip; + + double iirHeadBumpAL; + double iirHeadBumpBL; + double iirHeadBumpCL; + + double iirSampleAL; + double iirSampleBL; + double iirSampleCL; + double iirSampleDL; + double iirSampleEL; + double iirSampleFL; + double iirSampleGL; + double iirSampleHL; + double iirSampleIL; + double iirSampleJL; + double iirSampleKL; + double iirSampleLL; + double iirSampleML; + double iirSampleNL; + double iirSampleOL; + double iirSamplePL; + double iirSampleQL; + double iirSampleRL; + double iirSampleSL; + double iirSampleTL; + double iirSampleUL; + double iirSampleVL; + double iirSampleWL; + double iirSampleXL; + double iirSampleYL; + double iirSampleZL; + + double iirHeadBumpAR; + double iirHeadBumpBR; + double iirHeadBumpCR; + + double iirSampleAR; + double iirSampleBR; + double iirSampleCR; + double iirSampleDR; + double iirSampleER; + double iirSampleFR; + double iirSampleGR; + double iirSampleHR; + double iirSampleIR; + double iirSampleJR; + double iirSampleKR; + double iirSampleLR; + double iirSampleMR; + double iirSampleNR; + double iirSampleOR; + double iirSamplePR; + double iirSampleQR; + double iirSampleRR; + double iirSampleSR; + double iirSampleTR; + double iirSampleUR; + double iirSampleVR; + double iirSampleWR; + double iirSampleXR; + double iirSampleYR; + double iirSampleZR; + + float A; +}; + +#endif diff --git a/plugins/LV2/src/Deckwrecka/Deckwrecka.ttl b/plugins/LV2/src/Deckwrecka/Deckwrecka.ttl new file mode 100644 index 0000000..4e498d7 --- /dev/null +++ b/plugins/LV2/src/Deckwrecka/Deckwrecka.ttl @@ -0,0 +1,44 @@ +# Airwindows Deckwrecka 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 "Wreck" ; + 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/Deckwrecka/manifest.ttl.in b/plugins/LV2/src/Deckwrecka/manifest.ttl.in new file mode 100644 index 0000000..2150015 --- /dev/null +++ b/plugins/LV2/src/Deckwrecka/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:deckwrecka + a lv2:Plugin ; + doap:name "Airwindows Deckwrecka" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Density/Density.cpp b/plugins/LV2/src/Density/Density.cpp new file mode 100644 index 0000000..c9c4bb9 --- /dev/null +++ b/plugins/LV2/src/Density/Density.cpp @@ -0,0 +1,44 @@ +#include "Density.h" +#include +#include + +Density::Density(double rate) + : LV2Plugin(rate) +{ +} + +void Density::activate() +{ + A = 0.2; //equivalent of 0.0 in VST 0-1 scale for 'Density' control + B = 0.0; + C = 1.0; + D = 1.0; + iirSampleAL = 0.0; + iirSampleBL = 0.0; + iirSampleAR = 0.0; + iirSampleBR = 0.0; + fpFlip = true; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Density::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/Density/DensityProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Density/Density.h b/plugins/LV2/src/Density/Density.h new file mode 100644 index 0000000..bf0632d --- /dev/null +++ b/plugins/LV2/src/Density/Density.h @@ -0,0 +1,42 @@ +#ifndef __Density_H +#define __Density_H + +#include + +class Density : public LV2Plugin<4> { +public: + Density(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/density"; + +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 iirSampleAL; + double iirSampleBL; + double iirSampleAR; + double iirSampleBR; + bool fpFlip; + float A; + float B; + float C; + float D; //parameters. Always 0-1, and we scale/alter them elsewhere. + +}; + +#endif diff --git a/plugins/LV2/src/Density/Density.ttl b/plugins/LV2/src/Density/Density.ttl new file mode 100644 index 0000000..420befc --- /dev/null +++ b/plugins/LV2/src/Density/Density.ttl @@ -0,0 +1,68 @@ +# Airwindows Density 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 "Density" ; + 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 "Out Level" ; + 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 "Dry/Wet" ; + 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/Density/manifest.ttl.in b/plugins/LV2/src/Density/manifest.ttl.in new file mode 100644 index 0000000..94cbf9f --- /dev/null +++ b/plugins/LV2/src/Density/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:density + a lv2:Plugin ; + doap:name "Airwindows Density" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Desk/Desk.cpp b/plugins/LV2/src/Desk/Desk.cpp new file mode 100644 index 0000000..e9c3e97 --- /dev/null +++ b/plugins/LV2/src/Desk/Desk.cpp @@ -0,0 +1,38 @@ +#include "Desk.h" +#include +#include + +Desk::Desk(double rate) + : LV2Plugin(rate) +{ +} + +void Desk::activate() +{ + lastSampleL = 0.0; + lastOutSampleL = 0.0; + lastSlewL = 0.0; + lastSampleR = 0.0; + lastOutSampleR = 0.0; + lastSlewR = 0.0; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Desk::run(uint32_t num_samples) +{ + + + processReplacing(const_cast(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Desk/DeskProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Desk/Desk.h b/plugins/LV2/src/Desk/Desk.h new file mode 100644 index 0000000..7dc8aa5 --- /dev/null +++ b/plugins/LV2/src/Desk/Desk.h @@ -0,0 +1,40 @@ +#ifndef __Desk_H +#define __Desk_H + +#include + +class Desk : public LV2Plugin<0> { +public: + Desk(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/desk"; + +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 lastSampleL; + long double lastOutSampleL; + double lastSlewL; + long double lastSampleR; + long double lastOutSampleR; + double lastSlewR; + +}; + +#endif diff --git a/plugins/LV2/src/Desk/Desk.ttl b/plugins/LV2/src/Desk/Desk.ttl new file mode 100644 index 0000000..e910962 --- /dev/null +++ b/plugins/LV2/src/Desk/Desk.ttl @@ -0,0 +1,38 @@ +# Airwindows Desk 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/Desk/manifest.ttl.in b/plugins/LV2/src/Desk/manifest.ttl.in new file mode 100644 index 0000000..88a3da2 --- /dev/null +++ b/plugins/LV2/src/Desk/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:desk + a lv2:Plugin ; + doap:name "Airwindows Desk" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Desk4/Desk4.cpp b/plugins/LV2/src/Desk4/Desk4.cpp new file mode 100644 index 0000000..84c361a --- /dev/null +++ b/plugins/LV2/src/Desk4/Desk4.cpp @@ -0,0 +1,55 @@ +#include "Desk4.h" +#include +#include + +Desk4::Desk4(double rate) + : LV2Plugin(rate) +{ +} + +void Desk4::activate() +{ + A = 0.27; + B = 0.18; + C = 0.26; + D = 0.54; + E = 0.84; + F = 1.0; + + for(int count = 0; count < 9999; count++) {dL[count] = 0; dR[count] = 0;} + controlL = 0; + lastSampleL = 0.0; + lastOutSampleL = 0.0; + lastSlewL = 0.0; + controlR = 0; + lastSampleR = 0.0; + lastOutSampleR = 0.0; + lastSlewR = 0.0; + gcount = 0; + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Desk4::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + D = *params[3]; + E = *params[4]; + F = *params[5]; + + processReplacing(const_cast(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/Desk4/Desk4Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Desk4/Desk4.h b/plugins/LV2/src/Desk4/Desk4.h new file mode 100644 index 0000000..2baff55 --- /dev/null +++ b/plugins/LV2/src/Desk4/Desk4.h @@ -0,0 +1,52 @@ +#ifndef __Desk4_H +#define __Desk4_H + +#include + +class Desk4 : public LV2Plugin<6> { +public: + Desk4(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/desk4"; + +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 dL[10000]; + double controlL; + double lastSampleL; + double lastOutSampleL; + double lastSlewL; + + double dR[10000]; + double controlR; + double lastSampleR; + double lastOutSampleR; + double lastSlewR; + + int gcount; + long double fpNShapeL; + long double fpNShapeR; + //default stuff + + float A; + float B; + float C; + float D; + float E; + float F; +}; + +#endif diff --git a/plugins/LV2/src/Desk4/Desk4.ttl b/plugins/LV2/src/Desk4/Desk4.ttl new file mode 100644 index 0000000..a0564a7 --- /dev/null +++ b/plugins/LV2/src/Desk4/Desk4.ttl @@ -0,0 +1,84 @@ +# Airwindows Desk4 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 "Overdrive" ; + 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 "Hi Choke" ; + 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 "Power Sag" ; + 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 "Frequency" ; + 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 "Output Trim" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 5 ; + lv2:symbol "F" ; + lv2:name "Dry/Wet" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 6 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 7 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 8 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 9 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/Desk4/manifest.ttl.in b/plugins/LV2/src/Desk4/manifest.ttl.in new file mode 100644 index 0000000..e7abb95 --- /dev/null +++ b/plugins/LV2/src/Desk4/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:desk4 + a lv2:Plugin ; + doap:name "Airwindows Desk4" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DigitalBlack/DigitalBlack.cpp b/plugins/LV2/src/DigitalBlack/DigitalBlack.cpp new file mode 100644 index 0000000..337dd77 --- /dev/null +++ b/plugins/LV2/src/DigitalBlack/DigitalBlack.cpp @@ -0,0 +1,40 @@ +#include "DigitalBlack.h" +#include +#include + +DigitalBlack::DigitalBlack(double rate) + : LV2Plugin(rate) +{ +} + +void DigitalBlack::activate() +{ + A = 0.0; + B = 1.0; + WasNegativeL = false; + ZeroCrossL = 0; + gaterollerL = 0.0; + WasNegativeR = false; + ZeroCrossR = 0; + gaterollerR = 0.0; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DigitalBlack::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/DigitalBlack/DigitalBlackProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DigitalBlack/DigitalBlack.h b/plugins/LV2/src/DigitalBlack/DigitalBlack.h new file mode 100644 index 0000000..fe58d92 --- /dev/null +++ b/plugins/LV2/src/DigitalBlack/DigitalBlack.h @@ -0,0 +1,40 @@ +#ifndef __DigitalBlack_H +#define __DigitalBlack_H + +#include + +class DigitalBlack : public LV2Plugin<2> { +public: + DigitalBlack(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/digitalblack"; + +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. + */ + + bool WasNegativeL; + int ZeroCrossL; + double gaterollerL; + bool WasNegativeR; + int ZeroCrossR; + double gaterollerR; + uint32_t fpd; + //default stuff + + float A; + float B; +}; + +#endif diff --git a/plugins/LV2/src/DigitalBlack/DigitalBlack.ttl b/plugins/LV2/src/DigitalBlack/DigitalBlack.ttl new file mode 100644 index 0000000..ebb50c0 --- /dev/null +++ b/plugins/LV2/src/DigitalBlack/DigitalBlack.ttl @@ -0,0 +1,52 @@ +# Airwindows DigitalBlack 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 "Thresh" ; + 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 "Dry/Wet" ; + 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/DigitalBlack/manifest.ttl.in b/plugins/LV2/src/DigitalBlack/manifest.ttl.in new file mode 100644 index 0000000..2c1fe0e --- /dev/null +++ b/plugins/LV2/src/DigitalBlack/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:digitalblack + a lv2:Plugin ; + doap:name "Airwindows DigitalBlack" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Distance/Distance.cpp b/plugins/LV2/src/Distance/Distance.cpp new file mode 100644 index 0000000..fb3dce4 --- /dev/null +++ b/plugins/LV2/src/Distance/Distance.cpp @@ -0,0 +1,37 @@ +#include "Distance.h" +#include +#include + +Distance::Distance(double rate) + : LV2Plugin(rate) +{ +} + +void Distance::activate() +{ + A = 0.0; + B = 1.0; + thirdresultL = prevresultL = lastclampL = clampL = changeL = lastL = 0.0; + thirdresultR = prevresultR = lastclampR = clampR = changeR = lastR = 0.0; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Distance::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/Distance/DistanceProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Distance/Distance.h b/plugins/LV2/src/Distance/Distance.h new file mode 100644 index 0000000..d6697a0 --- /dev/null +++ b/plugins/LV2/src/Distance/Distance.h @@ -0,0 +1,49 @@ +#ifndef __Distance_H +#define __Distance_H + +#include + +class Distance : public LV2Plugin<2> { +public: + Distance(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/distance"; + +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 lastclampL; + double clampL; + double changeL; + double thirdresultL; + double prevresultL; + double lastL; + + double lastclampR; + double clampR; + double changeR; + double thirdresultR; + double prevresultR; + double lastR; + + long double fpNShapeL; + long double fpNShapeR; + //default stuff + + float A; + float B; +}; + +#endif diff --git a/plugins/LV2/src/Distance/Distance.ttl b/plugins/LV2/src/Distance/Distance.ttl new file mode 100644 index 0000000..fa06993 --- /dev/null +++ b/plugins/LV2/src/Distance/Distance.ttl @@ -0,0 +1,52 @@ +# Airwindows Distance 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 "Distance" ; + 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 "Dry/Wet" ; + 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/Distance/manifest.ttl.in b/plugins/LV2/src/Distance/manifest.ttl.in new file mode 100644 index 0000000..03d28a9 --- /dev/null +++ b/plugins/LV2/src/Distance/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:distance + a lv2:Plugin ; + doap:name "Airwindows Distance" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Distance2/Distance2.cpp b/plugins/LV2/src/Distance2/Distance2.cpp new file mode 100644 index 0000000..3fa2788 --- /dev/null +++ b/plugins/LV2/src/Distance2/Distance2.cpp @@ -0,0 +1,83 @@ +#include "Distance2.h" +#include +#include + +Distance2::Distance2(double rate) + : LV2Plugin(rate) +{ +} + +void Distance2::activate() +{ + A = 0.85; + B = 0.618; + C = 0.618; + + thirdSampleL = lastSampleL = 0.0; + thirdSampleR = lastSampleR = 0.0; + + lastSampleAL = 0.0; + lastSampleBL = 0.0; + lastSampleCL = 0.0; + lastSampleDL = 0.0; + lastSampleEL = 0.0; + lastSampleFL = 0.0; + lastSampleGL = 0.0; + lastSampleHL = 0.0; + lastSampleIL = 0.0; + lastSampleJL = 0.0; + lastSampleKL = 0.0; + lastSampleLL = 0.0; + lastSampleML = 0.0; + + lastSampleAR = 0.0; + lastSampleBR = 0.0; + lastSampleCR = 0.0; + lastSampleDR = 0.0; + lastSampleER = 0.0; + lastSampleFR = 0.0; + lastSampleGR = 0.0; + lastSampleHR = 0.0; + lastSampleIR = 0.0; + lastSampleJR = 0.0; + lastSampleKR = 0.0; + lastSampleLR = 0.0; + lastSampleMR = 0.0; + + thresholdA = 0.618033988749894; + thresholdB = 0.679837387624884; + thresholdC = 0.747821126387373; + thresholdD = 0.82260323902611; + thresholdE = 0.904863562928721; + thresholdF = 0.995349919221593; + thresholdG = 1.094884911143752; + thresholdH = 1.204373402258128; + thresholdI = 1.32481074248394; + thresholdJ = 1.457291816732335; + thresholdK = 1.603020998405568; + thresholdL = 1.763323098246125; + thresholdM = 1.939655408070737; + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Distance2::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/Distance2/Distance2Proc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Distance2/Distance2.h b/plugins/LV2/src/Distance2/Distance2.h new file mode 100644 index 0000000..e49e0df --- /dev/null +++ b/plugins/LV2/src/Distance2/Distance2.h @@ -0,0 +1,84 @@ +#ifndef __Distance2_H +#define __Distance2_H + +#include + +class Distance2 : public LV2Plugin<3> { +public: + Distance2(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/distance2"; + +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 lastSampleAL; + long double lastSampleBL; + long double lastSampleCL; + long double lastSampleDL; + long double lastSampleEL; + long double lastSampleFL; + long double lastSampleGL; + long double lastSampleHL; + long double lastSampleIL; + long double lastSampleJL; + long double lastSampleKL; + long double lastSampleLL; + long double lastSampleML; + + long double lastSampleAR; + long double lastSampleBR; + long double lastSampleCR; + long double lastSampleDR; + long double lastSampleER; + long double lastSampleFR; + long double lastSampleGR; + long double lastSampleHR; + long double lastSampleIR; + long double lastSampleJR; + long double lastSampleKR; + long double lastSampleLR; + long double lastSampleMR; + + long double thresholdA; + long double thresholdB; + long double thresholdC; + long double thresholdD; + long double thresholdE; + long double thresholdF; + long double thresholdG; + long double thresholdH; + long double thresholdI; + long double thresholdJ; + long double thresholdK; + long double thresholdL; + long double thresholdM; + + double thirdSampleL; + double lastSampleL; + + double thirdSampleR; + double lastSampleR; + + float A; + float B; + float C; +}; + +#endif diff --git a/plugins/LV2/src/Distance2/Distance2.ttl b/plugins/LV2/src/Distance2/Distance2.ttl new file mode 100644 index 0000000..0d7dc0c --- /dev/null +++ b/plugins/LV2/src/Distance2/Distance2.ttl @@ -0,0 +1,60 @@ +# Airwindows Distance2 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 "Atmosph" ; + 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 "Darken" ; + 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/Distance2/manifest.ttl.in b/plugins/LV2/src/Distance2/manifest.ttl.in new file mode 100644 index 0000000..e3388c3 --- /dev/null +++ b/plugins/LV2/src/Distance2/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:distance2 + a lv2:Plugin ; + doap:name "Airwindows Distance2" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Distortion/Distortion.cpp b/plugins/LV2/src/Distortion/Distortion.cpp new file mode 100644 index 0000000..eac47e7 --- /dev/null +++ b/plugins/LV2/src/Distortion/Distortion.cpp @@ -0,0 +1,42 @@ +#include "Distortion.h" +#include +#include + +Distortion::Distortion(double rate) + : LV2Plugin(rate) +{ +} + +void Distortion::activate() +{ + A = 0.5; + B = 0.5; + C = 0.5; + D = 1.0; + for (int x = 0; x < 9; x++) { + previousInL[x] = 0.0; previousOutL[x] = 0.0; + previousInR[x] = 0.0; previousOutR[x] = 0.0; + } + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Distortion::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/Distortion/DistortionProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Distortion/Distortion.h b/plugins/LV2/src/Distortion/Distortion.h new file mode 100644 index 0000000..c3e97a0 --- /dev/null +++ b/plugins/LV2/src/Distortion/Distortion.h @@ -0,0 +1,41 @@ +#ifndef __Distortion_H +#define __Distortion_H + +#include + +class Distortion : public LV2Plugin<4> { +public: + Distortion(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/distortion"; + +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 previousInL[9]; + long double previousOutL[9]; + long double previousInR[9]; + long double previousOutR[9]; + + uint32_t fpd; + //default stuff + + float A; + float B; + float C; + float D; +}; + +#endif diff --git a/plugins/LV2/src/Distortion/Distortion.ttl b/plugins/LV2/src/Distortion/Distortion.ttl new file mode 100644 index 0000000..be4fa35 --- /dev/null +++ b/plugins/LV2/src/Distortion/Distortion.ttl @@ -0,0 +1,74 @@ +# Airwindows Distortion 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 "Input" ; + 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 "Mode" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + lv2:portProperty lv2:integer, lv2:enumeration ; + lv2:scalePoint [ rdfs:label "Density" ; rdf:value 0.0 ] ; + lv2:scalePoint [ rdfs:label "Drive" ; rdf:value 0.21 ] ; + lv2:scalePoint [ rdfs:label "Spiral" ; rdf:value 0.41 ] ; + lv2:scalePoint [ rdfs:label "Mojo" ; rdf:value 0.61 ] ; + lv2:scalePoint [ rdfs:label "Dyno" ; rdf:value 0.81 ] ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 2 ; + lv2:symbol "C" ; + lv2:name "Output" ; + 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 "Dry/Wet" ; + 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/Distortion/manifest.ttl.in b/plugins/LV2/src/Distortion/manifest.ttl.in new file mode 100644 index 0000000..3ebb721 --- /dev/null +++ b/plugins/LV2/src/Distortion/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:distortion + a lv2:Plugin ; + doap:name "Airwindows Distortion" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DitherFloat/DitherFloat.cpp b/plugins/LV2/src/DitherFloat/DitherFloat.cpp new file mode 100644 index 0000000..0336f6b --- /dev/null +++ b/plugins/LV2/src/DitherFloat/DitherFloat.cpp @@ -0,0 +1,34 @@ +#include "DitherFloat.h" +#include +#include + +DitherFloat::DitherFloat(double rate) + : LV2Plugin(rate) +{ +} + +void DitherFloat::activate() +{ + A = 0.0; + B = 1.0; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DitherFloat::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/DitherFloat/DitherFloatProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DitherFloat/DitherFloat.h b/plugins/LV2/src/DitherFloat/DitherFloat.h new file mode 100644 index 0000000..bbb5f56 --- /dev/null +++ b/plugins/LV2/src/DitherFloat/DitherFloat.h @@ -0,0 +1,34 @@ +#ifndef __DitherFloat_H +#define __DitherFloat_H + +#include + +class DitherFloat : public LV2Plugin<2> { +public: + DitherFloat(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/ditherfloat"; + +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 + + float A; + float B; +}; + +#endif diff --git a/plugins/LV2/src/DitherFloat/DitherFloat.ttl b/plugins/LV2/src/DitherFloat/DitherFloat.ttl new file mode 100644 index 0000000..a33d2da --- /dev/null +++ b/plugins/LV2/src/DitherFloat/DitherFloat.ttl @@ -0,0 +1,52 @@ +# Airwindows DitherFloat 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 "Offset" ; + 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 "Dither" ; + 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/DitherFloat/manifest.ttl.in b/plugins/LV2/src/DitherFloat/manifest.ttl.in new file mode 100644 index 0000000..5cff5bc --- /dev/null +++ b/plugins/LV2/src/DitherFloat/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:ditherfloat + a lv2:Plugin ; + doap:name "Airwindows DitherFloat" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.cpp b/plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.cpp new file mode 100644 index 0000000..ece870e --- /dev/null +++ b/plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.cpp @@ -0,0 +1,36 @@ +#include "DitherMeDiskers.h" +#include +#include + +DitherMeDiskers::DitherMeDiskers(double rate) + : LV2Plugin(rate) +{ +} + +void DitherMeDiskers::activate() +{ + noiseShapingL = 0.0; + noiseShapingR = 0.0; + lastSampleL = 0.0; + lastSample2L = 0.0; + lastSampleR = 0.0; + lastSample2R = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DitherMeDiskers::run(uint32_t num_samples) +{ + + + processReplacing(const_cast(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/DitherMeDiskers/DitherMeDiskersProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.h b/plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.h new file mode 100644 index 0000000..ac8f8cb --- /dev/null +++ b/plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.h @@ -0,0 +1,35 @@ +#ifndef __DitherMeDiskers_H +#define __DitherMeDiskers_H + +#include + +class DitherMeDiskers : public LV2Plugin<0> { +public: + DitherMeDiskers(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/dithermediskers"; + +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 noiseShapingL; + long double noiseShapingR; + double lastSampleL; + double lastSample2L; + double lastSampleR; + double lastSample2R; +}; + +#endif diff --git a/plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.ttl b/plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.ttl new file mode 100644 index 0000000..3d995fa --- /dev/null +++ b/plugins/LV2/src/DitherMeDiskers/DitherMeDiskers.ttl @@ -0,0 +1,38 @@ +# Airwindows DitherMeDiskers 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: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/DitherMeDiskers/manifest.ttl.in b/plugins/LV2/src/DitherMeDiskers/manifest.ttl.in new file mode 100644 index 0000000..72d6043 --- /dev/null +++ b/plugins/LV2/src/DitherMeDiskers/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:dithermediskers + a lv2:Plugin ; + doap:name "Airwindows DitherMeDiskers" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.cpp b/plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.cpp new file mode 100644 index 0000000..b31a473 --- /dev/null +++ b/plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.cpp @@ -0,0 +1,36 @@ +#include "DitherMeTimbers.h" +#include +#include + +DitherMeTimbers::DitherMeTimbers(double rate) + : LV2Plugin(rate) +{ +} + +void DitherMeTimbers::activate() +{ + noiseShapingL = 0.0; + noiseShapingR = 0.0; + lastSampleL = 0.0; + lastSample2L = 0.0; + lastSampleR = 0.0; + lastSample2R = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DitherMeTimbers::run(uint32_t num_samples) +{ + + + processReplacing(const_cast(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/DitherMeTimbers/DitherMeTimbersProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.h b/plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.h new file mode 100644 index 0000000..a9476ba --- /dev/null +++ b/plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.h @@ -0,0 +1,35 @@ +#ifndef __DitherMeTimbers_H +#define __DitherMeTimbers_H + +#include + +class DitherMeTimbers : public LV2Plugin<0> { +public: + DitherMeTimbers(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/dithermetimbers"; + +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 noiseShapingL; + long double noiseShapingR; + double lastSampleL; + double lastSample2L; + double lastSampleR; + double lastSample2R; +}; + +#endif diff --git a/plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.ttl b/plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.ttl new file mode 100644 index 0000000..9f42072 --- /dev/null +++ b/plugins/LV2/src/DitherMeTimbers/DitherMeTimbers.ttl @@ -0,0 +1,38 @@ +# Airwindows DitherMeTimbers 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: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/DitherMeTimbers/manifest.ttl.in b/plugins/LV2/src/DitherMeTimbers/manifest.ttl.in new file mode 100644 index 0000000..7ea372a --- /dev/null +++ b/plugins/LV2/src/DitherMeTimbers/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:dithermetimbers + a lv2:Plugin ; + doap:name "Airwindows DitherMeTimbers" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Ditherbox/Ditherbox.cpp b/plugins/LV2/src/Ditherbox/Ditherbox.cpp new file mode 100644 index 0000000..682fc81 --- /dev/null +++ b/plugins/LV2/src/Ditherbox/Ditherbox.cpp @@ -0,0 +1,157 @@ +#include "Ditherbox.h" +#include +#include + +Ditherbox::Ditherbox(double rate) + : LV2Plugin(rate) +{ +} + +void Ditherbox::activate() +{ + A = 0.86; + + Position = 99999999; + contingentErrL = 0.0; + contingentErrR = 0.0; + currentDitherL = 0.0; + currentDitherR = 0.0; + bynL[0] = 1000; + bynL[1] = 301; + bynL[2] = 176; + bynL[3] = 125; + bynL[4] = 97; + bynL[5] = 79; + bynL[6] = 67; + bynL[7] = 58; + bynL[8] = 51; + bynL[9] = 46; + bynL[10] = 1000; + noiseShapingL = 0.0; + bynR[0] = 1000; + bynR[1] = 301; + bynR[2] = 176; + bynR[3] = 125; + bynR[4] = 97; + bynR[5] = 79; + bynR[6] = 67; + bynR[7] = 58; + bynR[8] = 51; + bynR[9] = 46; + bynR[10] = 1000; + noiseShapingR = 0.0; + + NSOddL = 0.0; + prevL = 0.0; + nsL[0] = 0; + nsL[1] = 0; + nsL[2] = 0; + nsL[3] = 0; + nsL[4] = 0; + nsL[5] = 0; + nsL[6] = 0; + nsL[7] = 0; + nsL[8] = 0; + nsL[9] = 0; + nsL[10] = 0; + nsL[11] = 0; + nsL[12] = 0; + nsL[13] = 0; + nsL[14] = 0; + nsL[15] = 0; + NSOddR = 0.0; + prevR = 0.0; + nsR[0] = 0; + nsR[1] = 0; + nsR[2] = 0; + nsR[3] = 0; + nsR[4] = 0; + nsR[5] = 0; + nsR[6] = 0; + nsR[7] = 0; + nsR[8] = 0; + nsR[9] = 0; + nsR[10] = 0; + nsR[11] = 0; + nsR[12] = 0; + nsR[13] = 0; + nsR[14] = 0; + nsR[15] = 0; + + lastSampleL = 0.0; + outSampleL = 0.0; + lastSampleR = 0.0; + outSampleR = 0.0; + + iirSampleAL = 0.0; + iirSampleBL = 0.0; + iirSampleCL = 0.0; + iirSampleDL = 0.0; + iirSampleEL = 0.0; + iirSampleFL = 0.0; + iirSampleGL = 0.0; + iirSampleHL = 0.0; + iirSampleIL = 0.0; + iirSampleJL = 0.0; + iirSampleKL = 0.0; + iirSampleLL = 0.0; + iirSampleML = 0.0; + iirSampleNL = 0.0; + iirSampleOL = 0.0; + iirSamplePL = 0.0; + iirSampleQL = 0.0; + iirSampleRL = 0.0; + iirSampleSL = 0.0; + iirSampleTL = 0.0; + iirSampleUL = 0.0; + iirSampleVL = 0.0; + iirSampleWL = 0.0; + iirSampleXL = 0.0; + iirSampleYL = 0.0; + iirSampleZL = 0.0; + + iirSampleAR = 0.0; + iirSampleBR = 0.0; + iirSampleCR = 0.0; + iirSampleDR = 0.0; + iirSampleER = 0.0; + iirSampleFR = 0.0; + iirSampleGR = 0.0; + iirSampleHR = 0.0; + iirSampleIR = 0.0; + iirSampleJR = 0.0; + iirSampleKR = 0.0; + iirSampleLR = 0.0; + iirSampleMR = 0.0; + iirSampleNR = 0.0; + iirSampleOR = 0.0; + iirSamplePR = 0.0; + iirSampleQR = 0.0; + iirSampleRR = 0.0; + iirSampleSR = 0.0; + iirSampleTR = 0.0; + iirSampleUR = 0.0; + iirSampleVR = 0.0; + iirSampleWR = 0.0; + iirSampleXR = 0.0; + iirSampleYR = 0.0; + iirSampleZR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Ditherbox::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/Ditherbox/DitherboxProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Ditherbox/Ditherbox.h b/plugins/LV2/src/Ditherbox/Ditherbox.h new file mode 100644 index 0000000..fb81642 --- /dev/null +++ b/plugins/LV2/src/Ditherbox/Ditherbox.h @@ -0,0 +1,105 @@ +#ifndef __Ditherbox_H +#define __Ditherbox_H + +#include + +class Ditherbox : public LV2Plugin<1> { +public: + Ditherbox(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/ditherbox"; + +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 bynL[13]; + double bynR[13]; + long double noiseShapingL; + long double noiseShapingR; + double contingentErrL; + double contingentErrR; + double currentDitherL; + double currentDitherR; + int Position; + bool flip; + double NSOddL; + double prevL; + double nsL[16]; + double NSOddR; + double prevR; + double nsR[16]; + long double lastSampleL; + long double outSampleL; + long double lastSampleR; + long double outSampleR; + + double iirSampleAL; + double iirSampleBL; + double iirSampleCL; + double iirSampleDL; + double iirSampleEL; + double iirSampleFL; + double iirSampleGL; + double iirSampleHL; + double iirSampleIL; + double iirSampleJL; + double iirSampleKL; + double iirSampleLL; + double iirSampleML; + double iirSampleNL; + double iirSampleOL; + double iirSamplePL; + double iirSampleQL; + double iirSampleRL; + double iirSampleSL; + double iirSampleTL; + double iirSampleUL; + double iirSampleVL; + double iirSampleWL; + double iirSampleXL; + double iirSampleYL; + double iirSampleZL; + + double iirSampleAR; + double iirSampleBR; + double iirSampleCR; + double iirSampleDR; + double iirSampleER; + double iirSampleFR; + double iirSampleGR; + double iirSampleHR; + double iirSampleIR; + double iirSampleJR; + double iirSampleKR; + double iirSampleLR; + double iirSampleMR; + double iirSampleNR; + double iirSampleOR; + double iirSamplePR; + double iirSampleQR; + double iirSampleRR; + double iirSampleSR; + double iirSampleTR; + double iirSampleUR; + double iirSampleVR; + double iirSampleWR; + double iirSampleXR; + double iirSampleYR; + double iirSampleZR; + + float A; +}; + +#endif diff --git a/plugins/LV2/src/Ditherbox/Ditherbox.ttl b/plugins/LV2/src/Ditherbox/Ditherbox.ttl new file mode 100644 index 0000000..9b6880e --- /dev/null +++ b/plugins/LV2/src/Ditherbox/Ditherbox.ttl @@ -0,0 +1,70 @@ +# Airwindows Ditherbox 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 "Type" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + lv2:portProperty lv2:integer, lv2:enumeration ; + lv2:scalePoint [ rdfs:label "Trunc16" ; rdf:value 0.0 ] ; + lv2:scalePoint [ rdfs:label "Flat16" ; rdf:value 0.044 ] ; + lv2:scalePoint [ rdfs:label "TPDF16" ; rdf:value 0.084 ] ; + lv2:scalePoint [ rdfs:label "Paul16" ; rdf:value 0.124 ] ; + lv2:scalePoint [ rdfs:label "DbPaul16" ; rdf:value 0.164 ] ; + lv2:scalePoint [ rdfs:label "Tape16" ; rdf:value 0.202 ] ; + lv2:scalePoint [ rdfs:label "HiGloss16" ; rdf:value 0.244 ] ; + lv2:scalePoint [ rdfs:label "Vinyl16" ; rdf:value 0.284 ] ; + lv2:scalePoint [ rdfs:label "Spatial16" ; rdf:value 0.324 ] ; + lv2:scalePoint [ rdfs:label "Natural16" ; rdf:value 0.364 ] ; + lv2:scalePoint [ rdfs:label "NJAD16" ; rdf:value 0.404 ] ; + lv2:scalePoint [ rdfs:label "Trunc24" ; rdf:value 0.444 ] ; + lv2:scalePoint [ rdfs:label "Flat24" ; rdf:value 0.484 ] ; + lv2:scalePoint [ rdfs:label "TPDF24" ; rdf:value 0.524 ] ; + lv2:scalePoint [ rdfs:label "Paul24" ; rdf:value 0.564 ] ; + lv2:scalePoint [ rdfs:label "DbPaul24" ; rdf:value 0.604 ] ; + lv2:scalePoint [ rdfs:label "Tape24" ; rdf:value 0.644 ] ; + lv2:scalePoint [ rdfs:label "HiGloss24" ; rdf:value 0.684 ] ; + lv2:scalePoint [ rdfs:label "Vinyl24" ; rdf:value 0.724 ] ; + lv2:scalePoint [ rdfs:label "Spatial24" ; rdf:value 0.764 ] ; + lv2:scalePoint [ rdfs:label "Natural24" ; rdf:value 0.804 ] ; + lv2:scalePoint [ rdfs:label "NJAD24" ; rdf:value 0.844 ] ; + lv2:scalePoint [ rdfs:label "SlewOnly" ; rdf:value 0.884 ] ; + lv2:scalePoint [ rdfs:label "SubsOnly" ; rdf:value 0.924 ] ; + lv2:scalePoint [ rdfs:label "Silhouette" ; rdf:value 0.964 ] ; + ] , [ + 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/Ditherbox/manifest.ttl.in b/plugins/LV2/src/Ditherbox/manifest.ttl.in new file mode 100644 index 0000000..dcf3e34 --- /dev/null +++ b/plugins/LV2/src/Ditherbox/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:ditherbox + a lv2:Plugin ; + doap:name "Airwindows Ditherbox" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DoublePaul/DoublePaul.cpp b/plugins/LV2/src/DoublePaul/DoublePaul.cpp new file mode 100644 index 0000000..57093a4 --- /dev/null +++ b/plugins/LV2/src/DoublePaul/DoublePaul.cpp @@ -0,0 +1,31 @@ +#include "DoublePaul.h" +#include +#include + +DoublePaul::DoublePaul(double rate) + : LV2Plugin(rate) +{ +} + +void DoublePaul::activate() +{ + for(int count = 0; count < 11; count++) {bL[count] = 0.0;bR[count] = 0.0;} + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DoublePaul::run(uint32_t num_samples) +{ + + + processReplacing(const_cast(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/DoublePaul/DoublePaulProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DoublePaul/DoublePaul.h b/plugins/LV2/src/DoublePaul/DoublePaul.h new file mode 100644 index 0000000..337528a --- /dev/null +++ b/plugins/LV2/src/DoublePaul/DoublePaul.h @@ -0,0 +1,32 @@ +#ifndef __DoublePaul_H +#define __DoublePaul_H + +#include + +class DoublePaul : public LV2Plugin<0> { +public: + DoublePaul(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/doublepaul"; + +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 bL[11]; + double bR[11]; + +}; + +#endif diff --git a/plugins/LV2/src/DoublePaul/DoublePaul.ttl b/plugins/LV2/src/DoublePaul/DoublePaul.ttl new file mode 100644 index 0000000..4f5b022 --- /dev/null +++ b/plugins/LV2/src/DoublePaul/DoublePaul.ttl @@ -0,0 +1,38 @@ +# Airwindows DoublePaul 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: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/DoublePaul/manifest.ttl.in b/plugins/LV2/src/DoublePaul/manifest.ttl.in new file mode 100644 index 0000000..b4e7488 --- /dev/null +++ b/plugins/LV2/src/DoublePaul/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:doublepaul + a lv2:Plugin ; + doap:name "Airwindows DoublePaul" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Drive/Drive.cpp b/plugins/LV2/src/Drive/Drive.cpp new file mode 100644 index 0000000..ef64fa2 --- /dev/null +++ b/plugins/LV2/src/Drive/Drive.cpp @@ -0,0 +1,44 @@ +#include "Drive.h" +#include +#include + +Drive::Drive(double rate) + : LV2Plugin(rate) +{ +} + +void Drive::activate() +{ + A = 0.0; + B = 0.0; + C = 1.0; + D = 1.0; + iirSampleAL = 0.0; + iirSampleBL = 0.0; + iirSampleAR = 0.0; + iirSampleBR = 0.0; + fpFlip = true; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Drive::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/Drive/DriveProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Drive/Drive.h b/plugins/LV2/src/Drive/Drive.h new file mode 100644 index 0000000..39d1eb8 --- /dev/null +++ b/plugins/LV2/src/Drive/Drive.h @@ -0,0 +1,42 @@ +#ifndef __Drive_H +#define __Drive_H + +#include + +class Drive : public LV2Plugin<4> { +public: + Drive(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/drive"; + +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 iirSampleAL; + double iirSampleBL; + double iirSampleAR; + double iirSampleBR; + bool fpFlip; + float A; + float B; + float C; + float D; //parameters. Always 0-1, and we scale/alter them elsewhere. + +}; + +#endif diff --git a/plugins/LV2/src/Drive/Drive.ttl b/plugins/LV2/src/Drive/Drive.ttl new file mode 100644 index 0000000..50c5f71 --- /dev/null +++ b/plugins/LV2/src/Drive/Drive.ttl @@ -0,0 +1,68 @@ +# Airwindows Drive 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 "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 "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 "Out Level" ; + 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 "Dry/Wet" ; + 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/Drive/manifest.ttl.in b/plugins/LV2/src/Drive/manifest.ttl.in new file mode 100644 index 0000000..8154a4d --- /dev/null +++ b/plugins/LV2/src/Drive/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:drive + a lv2:Plugin ; + doap:name "Airwindows Drive" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DrumSlam/DrumSlam.cpp b/plugins/LV2/src/DrumSlam/DrumSlam.cpp new file mode 100644 index 0000000..5c4b1eb --- /dev/null +++ b/plugins/LV2/src/DrumSlam/DrumSlam.cpp @@ -0,0 +1,58 @@ +#include "DrumSlam.h" +#include +#include + +DrumSlam::DrumSlam(double rate) + : LV2Plugin(rate) +{ +} + +void DrumSlam::activate() +{ + A = 0.0; + B = 1.0; + C = 1.0; + + iirSampleAL = 0.0; + iirSampleBL = 0.0; + iirSampleCL = 0.0; + iirSampleDL = 0.0; + iirSampleEL = 0.0; + iirSampleFL = 0.0; + iirSampleGL = 0.0; + iirSampleHL = 0.0; + lastSampleL = 0.0; + + iirSampleAR = 0.0; + iirSampleBR = 0.0; + iirSampleCR = 0.0; + iirSampleDR = 0.0; + iirSampleER = 0.0; + iirSampleFR = 0.0; + iirSampleGR = 0.0; + iirSampleHR = 0.0; + lastSampleR = 0.0; + fpFlip = true; + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DrumSlam::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/DrumSlam/DrumSlamProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DrumSlam/DrumSlam.h b/plugins/LV2/src/DrumSlam/DrumSlam.h new file mode 100644 index 0000000..1e7f7e8 --- /dev/null +++ b/plugins/LV2/src/DrumSlam/DrumSlam.h @@ -0,0 +1,59 @@ +#ifndef __DrumSlam_H +#define __DrumSlam_H + +#include + +class DrumSlam : public LV2Plugin<3> { +public: + DrumSlam(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/drumslam"; + +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 iirSampleAL; + double iirSampleBL; + double iirSampleCL; + double iirSampleDL; + double iirSampleEL; + double iirSampleFL; + double iirSampleGL; + double iirSampleHL; + double lastSampleL; + + double iirSampleAR; + double iirSampleBR; + double iirSampleCR; + double iirSampleDR; + double iirSampleER; + double iirSampleFR; + double iirSampleGR; + double iirSampleHR; + double lastSampleR; + bool fpFlip; + 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/DrumSlam/DrumSlam.ttl b/plugins/LV2/src/DrumSlam/DrumSlam.ttl new file mode 100644 index 0000000..82da043 --- /dev/null +++ b/plugins/LV2/src/DrumSlam/DrumSlam.ttl @@ -0,0 +1,60 @@ +# Airwindows DrumSlam 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 "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 "Output" ; + 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/DrumSlam/manifest.ttl.in b/plugins/LV2/src/DrumSlam/manifest.ttl.in new file mode 100644 index 0000000..da396db --- /dev/null +++ b/plugins/LV2/src/DrumSlam/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:drumslam + a lv2:Plugin ; + doap:name "Airwindows DrumSlam" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DubCenter/DubCenter.cpp b/plugins/LV2/src/DubCenter/DubCenter.cpp new file mode 100644 index 0000000..6104650 --- /dev/null +++ b/plugins/LV2/src/DubCenter/DubCenter.cpp @@ -0,0 +1,109 @@ +#include "DubCenter.h" +#include +#include + +DubCenter::DubCenter(double rate) + : LV2Plugin(rate) +{ +} + +void DubCenter::activate() +{ + A = 0.9; + B = 0.5; + C = 0.74; + D = 1.0; + E = 0.95; + F = 0.5; + G = 0.2; + H = 0.2; + I = 0.5; + J = 1.0; + + WasNegative = false; + SubOctave = false; + flip = false; + bflip = 0; + iirDriveSampleAL = 0.0; + iirDriveSampleBL = 0.0; + iirDriveSampleCL = 0.0; + iirDriveSampleDL = 0.0; + iirDriveSampleEL = 0.0; + iirDriveSampleFL = 0.0; + iirDriveSampleAR = 0.0; + iirDriveSampleBR = 0.0; + iirDriveSampleCR = 0.0; + iirDriveSampleDR = 0.0; + iirDriveSampleER = 0.0; + iirDriveSampleFR = 0.0; + + iirHeadBumpA = 0.0; + iirHeadBumpB = 0.0; + iirHeadBumpC = 0.0; + + iirSubBumpA = 0.0; + iirSubBumpB = 0.0; + iirSubBumpC = 0.0; + + lastHeadBump = 0.0; + lastSubBump = 0.0; + + iirSampleA = 0.0; + iirSampleB = 0.0; + iirSampleC = 0.0; + iirSampleD = 0.0; + iirSampleE = 0.0; + iirSampleF = 0.0; + iirSampleG = 0.0; + iirSampleH = 0.0; + iirSampleI = 0.0; + iirSampleJ = 0.0; + iirSampleK = 0.0; + iirSampleL = 0.0; + iirSampleM = 0.0; + iirSampleN = 0.0; + iirSampleO = 0.0; + iirSampleP = 0.0; + iirSampleQ = 0.0; + iirSampleR = 0.0; + iirSampleS = 0.0; + iirSampleT = 0.0; + iirSampleU = 0.0; + iirSampleV = 0.0; + iirSampleW = 0.0; + iirSampleX = 0.0; + iirSampleY = 0.0; + iirSampleZ = 0.0; + + oscGate = 1.0; + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DubCenter::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + D = *params[3]; + E = *params[4]; + F = *params[5]; + G = *params[6]; + H = *params[7]; + I = *params[8]; + J = *params[9]; + + processReplacing(const_cast(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/DubCenter/DubCenterProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DubCenter/DubCenter.h b/plugins/LV2/src/DubCenter/DubCenter.h new file mode 100644 index 0000000..f6c85e0 --- /dev/null +++ b/plugins/LV2/src/DubCenter/DubCenter.h @@ -0,0 +1,100 @@ +#ifndef __DubCenter_H +#define __DubCenter_H + +#include + +class DubCenter : public LV2Plugin<10> { +public: + DubCenter(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/dubcenter"; + +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 iirDriveSampleAL; + double iirDriveSampleBL; + double iirDriveSampleCL; + double iirDriveSampleDL; + double iirDriveSampleEL; + double iirDriveSampleFL; + double iirDriveSampleAR; + double iirDriveSampleBR; + double iirDriveSampleCR; + double iirDriveSampleDR; + double iirDriveSampleER; + double iirDriveSampleFR; + bool flip; //drive things + + int bflip; + bool WasNegative; + bool SubOctave; + double iirHeadBumpA; + double iirHeadBumpB; + double iirHeadBumpC; + + double iirSubBumpA; + double iirSubBumpB; + double iirSubBumpC; + + double lastHeadBump; + double lastSubBump; + + double iirSampleA; + double iirSampleB; + double iirSampleC; + double iirSampleD; + double iirSampleE; + double iirSampleF; + double iirSampleG; + double iirSampleH; + double iirSampleI; + double iirSampleJ; + double iirSampleK; + double iirSampleL; + double iirSampleM; + double iirSampleN; + double iirSampleO; + double iirSampleP; + double iirSampleQ; + double iirSampleR; + double iirSampleS; + double iirSampleT; + double iirSampleU; + double iirSampleV; + double iirSampleW; + double iirSampleX; + double iirSampleY; + double iirSampleZ; + double oscGate; + + long double fpNShapeL; + long double fpNShapeR; + //default stuff + + float A; + float B; + float C; + float D; + float E; + float F; + float G; + float H; + float I; + float J; + +}; + +#endif diff --git a/plugins/LV2/src/DubCenter/DubCenter.ttl b/plugins/LV2/src/DubCenter/DubCenter.ttl new file mode 100644 index 0000000..22f7b3d --- /dev/null +++ b/plugins/LV2/src/DubCenter/DubCenter.ttl @@ -0,0 +1,116 @@ +# Airwindows DubCenter plugin description + +@prefix lv2: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:UtilityPlugin ; + 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 "TGrind" ; + 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 "Grd/Out" ; + 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 "XOver" ; + 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 "BsDrive" ; + 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 "BsVoice" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 5 ; + lv2:symbol "F" ; + lv2:name "BassOut" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 6 ; + lv2:symbol "G" ; + lv2:name "SbDrive" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 7 ; + lv2:symbol "H" ; + lv2:name "SbVoice" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 8 ; + lv2:symbol "I" ; + lv2:name "SubOut" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 9 ; + lv2:symbol "J" ; + lv2:name "Dry/Wet" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 10 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 11 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 12 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 13 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/DubCenter/manifest.ttl.in b/plugins/LV2/src/DubCenter/manifest.ttl.in new file mode 100644 index 0000000..9db1328 --- /dev/null +++ b/plugins/LV2/src/DubCenter/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:dubcenter + a lv2:Plugin ; + doap:name "Airwindows DubCenter" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DubSub/DubSub.cpp b/plugins/LV2/src/DubSub/DubSub.cpp new file mode 100644 index 0000000..a0e9c7b --- /dev/null +++ b/plugins/LV2/src/DubSub/DubSub.cpp @@ -0,0 +1,147 @@ +#include "DubSub.h" +#include +#include + +DubSub::DubSub(double rate) + : LV2Plugin(rate) +{ +} + +void DubSub::activate() +{ + A = 0.9; + B = 0.5; + C = 0.74; + D = 1.0; + E = 0.95; + F = 0.5; + G = 0.2; + H = 0.2; + I = 0.5; + J = 1.0; + + WasNegativeL = false; + SubOctaveL = false; + WasNegativeR = false; + SubOctaveR = false; + flip = false; + bflip = 0; + + iirDriveSampleAL = 0.0; + iirDriveSampleBL = 0.0; + iirDriveSampleCL = 0.0; + iirDriveSampleDL = 0.0; + iirDriveSampleEL = 0.0; + iirDriveSampleFL = 0.0; + iirDriveSampleAR = 0.0; + iirDriveSampleBR = 0.0; + iirDriveSampleCR = 0.0; + iirDriveSampleDR = 0.0; + iirDriveSampleER = 0.0; + iirDriveSampleFR = 0.0; + + iirHeadBumpAL = 0.0; + iirHeadBumpBL = 0.0; + iirHeadBumpCL = 0.0; + iirHeadBumpAR = 0.0; + iirHeadBumpBR = 0.0; + iirHeadBumpCR = 0.0; + + iirSubBumpAL = 0.0; + iirSubBumpBL = 0.0; + iirSubBumpCL = 0.0; + iirSubBumpAR = 0.0; + iirSubBumpBR = 0.0; + iirSubBumpCR = 0.0; + + lastHeadBumpL = 0.0; + lastSubBumpL = 0.0; + lastHeadBumpR = 0.0; + lastSubBumpR = 0.0; + + iirSampleAL = 0.0; + iirSampleBL = 0.0; + iirSampleCL = 0.0; + iirSampleDL = 0.0; + iirSampleEL = 0.0; + iirSampleFL = 0.0; + iirSampleGL = 0.0; + iirSampleHL = 0.0; + iirSampleIL = 0.0; + iirSampleJL = 0.0; + iirSampleKL = 0.0; + iirSampleLL = 0.0; + iirSampleML = 0.0; + iirSampleNL = 0.0; + iirSampleOL = 0.0; + iirSamplePL = 0.0; + iirSampleQL = 0.0; + iirSampleRL = 0.0; + iirSampleSL = 0.0; + iirSampleTL = 0.0; + iirSampleUL = 0.0; + iirSampleVL = 0.0; + iirSampleWL = 0.0; + iirSampleXL = 0.0; + iirSampleYL = 0.0; + iirSampleZL = 0.0; + iirSampleAR = 0.0; + iirSampleBR = 0.0; + iirSampleCR = 0.0; + iirSampleDR = 0.0; + iirSampleER = 0.0; + iirSampleFR = 0.0; + iirSampleGR = 0.0; + iirSampleHR = 0.0; + iirSampleIR = 0.0; + iirSampleJR = 0.0; + iirSampleKR = 0.0; + iirSampleLR = 0.0; + iirSampleMR = 0.0; + iirSampleNR = 0.0; + iirSampleOR = 0.0; + iirSamplePR = 0.0; + iirSampleQR = 0.0; + iirSampleRR = 0.0; + iirSampleSR = 0.0; + iirSampleTR = 0.0; + iirSampleUR = 0.0; + iirSampleVR = 0.0; + iirSampleWR = 0.0; + iirSampleXR = 0.0; + iirSampleYR = 0.0; + iirSampleZR = 0.0; + + oscGateL = 1.0; + oscGateR = 1.0; + + fpNShapeL = 0.0; + fpNShapeR = 0.0; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DubSub::run(uint32_t num_samples) +{ + A = *params[0]; + B = *params[1]; + C = *params[2]; + D = *params[3]; + E = *params[4]; + F = *params[5]; + G = *params[6]; + H = *params[7]; + I = *params[8]; + J = *params[9]; + + processReplacing(const_cast(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include +#include "../../../LinuxVST/src/DubSub/DubSubProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DubSub/DubSub.h b/plugins/LV2/src/DubSub/DubSub.h new file mode 100644 index 0000000..f8ab528 --- /dev/null +++ b/plugins/LV2/src/DubSub/DubSub.h @@ -0,0 +1,142 @@ +#ifndef __DubSub_H +#define __DubSub_H + +#include + +class DubSub : public LV2Plugin<10> { +public: + DubSub(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/dubsub"; + +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. + */ + + +private: + double iirDriveSampleAL; + double iirDriveSampleBL; + double iirDriveSampleCL; + double iirDriveSampleDL; + double iirDriveSampleEL; + double iirDriveSampleFL; + double iirDriveSampleAR; + double iirDriveSampleBR; + double iirDriveSampleCR; + double iirDriveSampleDR; + double iirDriveSampleER; + double iirDriveSampleFR; + bool flip; //drive things + + int bflip; + bool WasNegativeL; + bool SubOctaveL; + bool WasNegativeR; + bool SubOctaveR; + + double iirHeadBumpAL; + double iirHeadBumpBL; + double iirHeadBumpCL; + double iirHeadBumpAR; + double iirHeadBumpBR; + double iirHeadBumpCR; + + double iirSubBumpAL; + double iirSubBumpBL; + double iirSubBumpCL; + double iirSubBumpAR; + double iirSubBumpBR; + double iirSubBumpCR; + + double lastHeadBumpL; + double lastSubBumpL; + double lastHeadBumpR; + double lastSubBumpR; + + double iirSampleAL; + double iirSampleBL; + double iirSampleCL; + double iirSampleDL; + double iirSampleEL; + double iirSampleFL; + double iirSampleGL; + double iirSampleHL; + double iirSampleIL; + double iirSampleJL; + double iirSampleKL; + double iirSampleLL; + double iirSampleML; + double iirSampleNL; + double iirSampleOL; + double iirSamplePL; + double iirSampleQL; + double iirSampleRL; + double iirSampleSL; + double iirSampleTL; + double iirSampleUL; + double iirSampleVL; + double iirSampleWL; + double iirSampleXL; + double iirSampleYL; + double iirSampleZL; + double iirSampleAR; + double iirSampleBR; + double iirSampleCR; + double iirSampleDR; + double iirSampleER; + double iirSampleFR; + double iirSampleGR; + double iirSampleHR; + double iirSampleIR; + double iirSampleJR; + double iirSampleKR; + double iirSampleLR; + double iirSampleMR; + double iirSampleNR; + double iirSampleOR; + double iirSamplePR; + double iirSampleQR; + double iirSampleRR; + double iirSampleSR; + double iirSampleTR; + double iirSampleUR; + double iirSampleVR; + double iirSampleWR; + double iirSampleXR; + double iirSampleYR; + double iirSampleZR; + + double oscGateL; + double oscGateR; + + + long double fpNShapeL; + long double fpNShapeR; + //default stuff + + float A; + float B; + float C; + float D; + float E; + float F; + float G; + float H; + float I; + float J; + +}; + +#endif diff --git a/plugins/LV2/src/DubSub/DubSub.ttl b/plugins/LV2/src/DubSub/DubSub.ttl new file mode 100644 index 0000000..f53c1f7 --- /dev/null +++ b/plugins/LV2/src/DubSub/DubSub.ttl @@ -0,0 +1,116 @@ +# Airwindows DubSub plugin description + +@prefix lv2: . +@prefix rdf: . +@prefix rdfs: . +@prefix units: . + + + a lv2:Plugin , + lv2:UtilityPlugin ; + 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 "TGrind" ; + 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 "Grd/Out" ; + 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 "XOver" ; + 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 "BsDrive" ; + 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 "BsVoice" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 5 ; + lv2:symbol "F" ; + lv2:name "BassOut" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 6 ; + lv2:symbol "G" ; + lv2:name "SbDrive" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 7 ; + lv2:symbol "H" ; + lv2:name "SbVoice" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 8 ; + lv2:symbol "I" ; + lv2:name "SubOut" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:ControlPort ; + lv2:index 9 ; + lv2:symbol "J" ; + lv2:name "Dry/Wet" ; + lv2:default 0.5 ; + lv2:minimum 0.0 ; + lv2:maximum 1.0 ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 10 ; + lv2:symbol "in_l" ; + lv2:name "In left" ; + ] , [ + a lv2:InputPort , lv2:AudioPort ; + lv2:index 11 ; + lv2:symbol "in_r" ; + lv2:name "In right" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 12 ; + lv2:symbol "out_l" ; + lv2:name "Out left" ; + ] , [ + a lv2:OutputPort , lv2:AudioPort ; + lv2:index 13 ; + lv2:symbol "out_r" ; + lv2:name "Out right" ; + ] . diff --git a/plugins/LV2/src/DubSub/manifest.ttl.in b/plugins/LV2/src/DubSub/manifest.ttl.in new file mode 100644 index 0000000..7b57050 --- /dev/null +++ b/plugins/LV2/src/DubSub/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:dubsub + a lv2:Plugin ; + doap:name "Airwindows DubSub" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/DustBunny/DustBunny.cpp b/plugins/LV2/src/DustBunny/DustBunny.cpp new file mode 100644 index 0000000..d5530b9 --- /dev/null +++ b/plugins/LV2/src/DustBunny/DustBunny.cpp @@ -0,0 +1,45 @@ +#include "DustBunny.h" +#include +#include + +DustBunny::DustBunny(double rate) + : LV2Plugin(rate) +{ +} + +void DustBunny::activate() +{ + A = 0.0; + + LataLast3Sample = LataLast2Sample = LataLast1Sample = 0.0; + LataHalfwaySample = LataHalfDrySample = LataHalfDiffSample = 0.0; + LataA = LataB = LataC = LataDrySample = LataDiffSample = LataPrevDiffSample = 0.0; + LataUpsampleHighTweak = 0.0414213562373095048801688; //more adds treble to upsampling + LataDecay = 0.915965594177219015; //Catalan's constant, more adds focus and clarity + + RataLast3Sample = RataLast2Sample = RataLast1Sample = 0.0; + RataHalfwaySample = RataHalfDrySample = RataHalfDiffSample = 0.0; + RataA = RataB = RataC = RataDrySample = RataDiffSample = RataPrevDiffSample = 0.0; + RataUpsampleHighTweak = 0.0414213562373095048801688; //more adds treble to upsampling + RataDecay = 0.915965594177219015; //CRatalan's constant, more adds focus and clarity + LataFlip = false; //end reset of antialias parameters + RataFlip = false; //end reset of antialias parameters + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void DustBunny::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/DustBunny/DustBunnyProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/DustBunny/DustBunny.h b/plugins/LV2/src/DustBunny/DustBunny.h new file mode 100644 index 0000000..59f5bc4 --- /dev/null +++ b/plugins/LV2/src/DustBunny/DustBunny.h @@ -0,0 +1,63 @@ +#ifndef __DustBunny_H +#define __DustBunny_H + +#include + +class DustBunny : public LV2Plugin<1> { +public: + DustBunny(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/dustbunny"; + +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 LataLast3Sample; + float LataLast2Sample; + float LataLast1Sample; + float LataHalfwaySample; + float LataHalfDrySample; + float LataHalfDiffSample; + float LataA; + float LataB; + float LataC; + float LataDecay; + float LataUpsampleHighTweak; + float LataDrySample; + float LataDiffSample; + float LataPrevDiffSample; + + float RataLast3Sample; + float RataLast2Sample; + float RataLast1Sample; + float RataHalfwaySample; + float RataHalfDrySample; + float RataHalfDiffSample; + float RataA; + float RataB; + float RataC; + float RataDecay; + float RataUpsampleHighTweak; + float RataDrySample; + float RataDiffSample; + float RataPrevDiffSample; + + bool LataFlip; //end defining of antialiasing variables + bool RataFlip; //end defining of antialiasing variables + + float A; +}; + +#endif diff --git a/plugins/LV2/src/DustBunny/DustBunny.ttl b/plugins/LV2/src/DustBunny/DustBunny.ttl new file mode 100644 index 0000000..63cc4bd --- /dev/null +++ b/plugins/LV2/src/DustBunny/DustBunny.ttl @@ -0,0 +1,44 @@ +# Airwindows DustBunny 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 "Bunny" ; + 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/DustBunny/manifest.ttl.in b/plugins/LV2/src/DustBunny/manifest.ttl.in new file mode 100644 index 0000000..f9d952d --- /dev/null +++ b/plugins/LV2/src/DustBunny/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:dustbunny + a lv2:Plugin ; + doap:name "Airwindows DustBunny" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . diff --git a/plugins/LV2/src/Dyno/Dyno.cpp b/plugins/LV2/src/Dyno/Dyno.cpp new file mode 100644 index 0000000..13d0e5c --- /dev/null +++ b/plugins/LV2/src/Dyno/Dyno.cpp @@ -0,0 +1,32 @@ +#include "Dyno.h" +#include +#include + +Dyno::Dyno(double rate) + : LV2Plugin(rate) +{ +} + +void Dyno::activate() +{ + A = 0.5; + fpd = 17; + //this is reset: values being initialized only once. Startup values, whatever they are. + +} + +void Dyno::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/Dyno/DynoProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper plugin; diff --git a/plugins/LV2/src/Dyno/Dyno.h b/plugins/LV2/src/Dyno/Dyno.h new file mode 100644 index 0000000..aaf6a45 --- /dev/null +++ b/plugins/LV2/src/Dyno/Dyno.h @@ -0,0 +1,33 @@ +#ifndef __Dyno_H +#define __Dyno_H + +#include + +class Dyno : public LV2Plugin<1> { +public: + Dyno(double rate); + + void activate(); + void run(uint32_t num_samples); + + static constexpr const char * URI = "https://www.airwindows.com/dyno"; + +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 + + float A; +}; + +#endif diff --git a/plugins/LV2/src/Dyno/Dyno.ttl b/plugins/LV2/src/Dyno/Dyno.ttl new file mode 100644 index 0000000..a196578 --- /dev/null +++ b/plugins/LV2/src/Dyno/Dyno.ttl @@ -0,0 +1,44 @@ +# Airwindows Dyno 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 "Input" ; + 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/Dyno/manifest.ttl.in b/plugins/LV2/src/Dyno/manifest.ttl.in new file mode 100644 index 0000000..4047928 --- /dev/null +++ b/plugins/LV2/src/Dyno/manifest.ttl.in @@ -0,0 +1,6 @@ +airwindows:dyno + a lv2:Plugin ; + doap:name "Airwindows Dyno" ; + doap:license ; + lv2:binary ; + rdfs:seeAlso . -- cgit v1.2.3