diff options
Diffstat (limited to 'plugins/MacVST/DitherMeDiskers/source')
-rwxr-xr-x | plugins/MacVST/DitherMeDiskers/source/DitherMeDiskersProc.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/plugins/MacVST/DitherMeDiskers/source/DitherMeDiskersProc.cpp b/plugins/MacVST/DitherMeDiskers/source/DitherMeDiskersProc.cpp index 9f8a34e..746f713 100755 --- a/plugins/MacVST/DitherMeDiskers/source/DitherMeDiskersProc.cpp +++ b/plugins/MacVST/DitherMeDiskers/source/DitherMeDiskersProc.cpp @@ -42,6 +42,23 @@ void DitherMeDiskers::processReplacing(float **inputs, float **outputs, VstInt32 noiseShapingR += outputSampleR; noiseShapingR -= lastSampleR; + if (outputSampleL > 32760.0) { + outputSampleL = 32760.0; + noiseShapingL *= 0.5; + } + if (outputSampleR > 32760.0) { + outputSampleR = 32760.0; + noiseShapingR *= 0.5; + } + if (outputSampleL < -32760.0) { + outputSampleL = -32760.0; + noiseShapingL *= 0.5; + } + if (outputSampleR < -32760.0) { + outputSampleR = -32760.0; + noiseShapingR *= 0.5; + } + *out1 = outputSampleL / 32768.0; *out2 = outputSampleR / 32768.0; @@ -87,6 +104,23 @@ void DitherMeDiskers::processDoubleReplacing(double **inputs, double **outputs, noiseShapingR += outputSampleR; noiseShapingR -= lastSampleR; + if (outputSampleL > 32760.0) { + outputSampleL = 32760.0; + noiseShapingL *= 0.5; + } + if (outputSampleR > 32760.0) { + outputSampleR = 32760.0; + noiseShapingR *= 0.5; + } + if (outputSampleL < -32760.0) { + outputSampleL = -32760.0; + noiseShapingL *= 0.5; + } + if (outputSampleR < -32760.0) { + outputSampleR = -32760.0; + noiseShapingR *= 0.5; + } + *out1 = outputSampleL / 32768.0; *out2 = outputSampleR / 32768.0; |