diff options
Diffstat (limited to 'plugins/MacVST/DitherMeTimbers/source/DitherMeTimbersProc.cpp')
-rwxr-xr-x | plugins/MacVST/DitherMeTimbers/source/DitherMeTimbersProc.cpp | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/plugins/MacVST/DitherMeTimbers/source/DitherMeTimbersProc.cpp b/plugins/MacVST/DitherMeTimbers/source/DitherMeTimbersProc.cpp index 7ba84d7..4641d8b 100755 --- a/plugins/MacVST/DitherMeTimbers/source/DitherMeTimbersProc.cpp +++ b/plugins/MacVST/DitherMeTimbers/source/DitherMeTimbersProc.cpp @@ -41,7 +41,24 @@ void DitherMeTimbers::processReplacing(float **inputs, float **outputs, VstInt32 noiseShapingR += outputSampleR; noiseShapingR -= lastSampleR; - + + if (outputSampleL > 8388600.0) { + outputSampleL = 8388600.0; + noiseShapingL *= 0.5; + } + if (outputSampleR > 8388600.0) { + outputSampleR = 8388600.0; + noiseShapingR *= 0.5; + } + if (outputSampleL < -8388600.0) { + outputSampleL = -8388600.0; + noiseShapingL *= 0.5; + } + if (outputSampleR < -8388600.0) { + outputSampleR = -8388600.0; + noiseShapingR *= 0.5; + } + *out1 = outputSampleL / 8388608.0; *out2 = outputSampleR / 8388608.0; @@ -87,6 +104,23 @@ void DitherMeTimbers::processDoubleReplacing(double **inputs, double **outputs, noiseShapingR += outputSampleR; noiseShapingR -= lastSampleR; + if (outputSampleL > 8388600.0) { + outputSampleL = 8388600.0; + noiseShapingL *= 0.5; + } + if (outputSampleR > 8388600.0) { + outputSampleR = 8388600.0; + noiseShapingR *= 0.5; + } + if (outputSampleL < -8388600.0) { + outputSampleL = -8388600.0; + noiseShapingL *= 0.5; + } + if (outputSampleR < -8388600.0) { + outputSampleR = -8388600.0; + noiseShapingR *= 0.5; + } + *out1 = outputSampleL / 8388608.0; *out2 = outputSampleR / 8388608.0; |