aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/MacVST/DitherMeDiskers/source/DitherMeDiskersProc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/MacVST/DitherMeDiskers/source/DitherMeDiskersProc.cpp')
-rwxr-xr-xplugins/MacVST/DitherMeDiskers/source/DitherMeDiskersProc.cpp34
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;