diff options
Diffstat (limited to 'plugins/LV2/src/Ditherbox/Ditherbox.cpp')
-rw-r--r-- | plugins/LV2/src/Ditherbox/Ditherbox.cpp | 157 |
1 files changed, 157 insertions, 0 deletions
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 <iostream> +#include <lv2wrapper.h> + +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<float **>(in), out, num_samples); +} + +// +// Include the processing code from the VST version. +// +#include <cmath> +#include "../../../LinuxVST/src/Ditherbox/DitherboxProc.cpp" + +// Create the LV2Wrapper and register the plugin +LV2Wrapper<Ditherbox> plugin; |