From 35ee7938c7c86758d0b5e6413679db9bb7b90ab2 Mon Sep 17 00:00:00 2001 From: Chris Johnson Date: Sun, 23 Dec 2018 17:36:57 -0500 Subject: RawTimbers --- plugins/WinVST/RawGlitters/RawGlittersProc.cpp | 86 ++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 plugins/WinVST/RawGlitters/RawGlittersProc.cpp (limited to 'plugins/WinVST/RawGlitters/RawGlittersProc.cpp') diff --git a/plugins/WinVST/RawGlitters/RawGlittersProc.cpp b/plugins/WinVST/RawGlitters/RawGlittersProc.cpp new file mode 100755 index 0000000..41d2bf7 --- /dev/null +++ b/plugins/WinVST/RawGlitters/RawGlittersProc.cpp @@ -0,0 +1,86 @@ +/* ======================================== + * RawGlitters - RawGlitters.h + * Copyright (c) 2016 airwindows, All rights reserved + * ======================================== */ + +#ifndef __RawGlitters_H +#include "RawGlitters.h" +#endif + +void RawGlitters::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames) +{ + float* in1 = inputs[0]; + float* in2 = inputs[1]; + float* out1 = outputs[0]; + float* out2 = outputs[1]; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1 * 8388608.0; + double inputSampleR = *in2 * 8388608.0; + double outputSampleL; + double outputSampleR; + + inputSampleL += 0.381966011250105; + inputSampleR += 0.381966011250105; + + if ((lastSampleL+lastSampleL) <= (inputSampleL+lastSample2L)) outputSampleL = floor(lastSampleL); + else outputSampleL = floor(lastSampleL+1.0); //round down or up based on whether it softens treble angles + + if ((lastSampleR+lastSampleR) <= (inputSampleR+lastSample2R)) outputSampleR = floor(lastSampleR); + else outputSampleR = floor(lastSampleR+1.0); //round down or up based on whether it softens treble angles + + lastSample2L = lastSampleL; + lastSampleL = inputSampleL; //we retain three samples in a row + + lastSample2R = lastSampleR; + lastSampleR = inputSampleR; //we retain three samples in a row + + *out1 = outputSampleL / 8388608.0; + *out2 = outputSampleR / 8388608.0; + + *in1++; + *in2++; + *out1++; + *out2++; + } +} + +void RawGlitters::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames) +{ + double* in1 = inputs[0]; + double* in2 = inputs[1]; + double* out1 = outputs[0]; + double* out2 = outputs[1]; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1 * 8388608.0; + double inputSampleR = *in2 * 8388608.0; + double outputSampleL; + double outputSampleR; + + inputSampleL += 0.381966011250105; + inputSampleR += 0.381966011250105; + + if ((lastSampleL+lastSampleL) <= (inputSampleL+lastSample2L)) outputSampleL = floor(lastSampleL); + else outputSampleL = floor(lastSampleL+1.0); //round down or up based on whether it softens treble angles + + if ((lastSampleR+lastSampleR) <= (inputSampleR+lastSample2R)) outputSampleR = floor(lastSampleR); + else outputSampleR = floor(lastSampleR+1.0); //round down or up based on whether it softens treble angles + + lastSample2L = lastSampleL; + lastSampleL = inputSampleL; //we retain three samples in a row + + lastSample2R = lastSampleR; + lastSampleR = inputSampleR; //we retain three samples in a row + + *out1 = outputSampleL / 8388608.0; + *out2 = outputSampleR / 8388608.0; + + *in1++; + *in2++; + *out1++; + *out2++; + } +} -- cgit v1.2.3