From 3c0d151e1a8014ece2a3982ec0e7b364e23a7575 Mon Sep 17 00:00:00 2001 From: Chris Johnson Date: Thu, 28 May 2020 07:27:31 -0400 Subject: Laserbat spotted an interesting bug in legacy NJAD code! --- plugins/WinVST/NotJustAnotherDither/NotJustAnotherDitherProc.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'plugins/WinVST/NotJustAnotherDither') diff --git a/plugins/WinVST/NotJustAnotherDither/NotJustAnotherDitherProc.cpp b/plugins/WinVST/NotJustAnotherDither/NotJustAnotherDitherProc.cpp index 46a073e..cbc6cc3 100755 --- a/plugins/WinVST/NotJustAnotherDither/NotJustAnotherDitherProc.cpp +++ b/plugins/WinVST/NotJustAnotherDither/NotJustAnotherDitherProc.cpp @@ -145,7 +145,7 @@ void NotJustAnotherDither::processReplacing(float **inputs, float **outputs, Vst totalA = bynL[1] + bynL[2] + bynL[3] + bynL[4] + bynL[5] + bynL[6] + bynL[7] + bynL[8] + bynL[9]; totalA /= 1000; - if (totalA = 0) totalA = 1; + if (totalA = 0) totalA = 1; // spotted by Laserbat: this 'scaling back' code doesn't. It always divides by the fallback of 1. Old NJAD doesn't scale back the things we're comparing against. Kept to retain known behavior, use the one in StudioTan and Monitoring for a tuned-as-intended NJAD. bynL[1] /= totalA; bynL[2] /= totalA; bynL[3] /= totalA; @@ -226,7 +226,7 @@ void NotJustAnotherDither::processReplacing(float **inputs, float **outputs, Vst totalA = bynR[1] + bynR[2] + bynR[3] + bynR[4] + bynR[5] + bynR[6] + bynR[7] + bynR[8] + bynR[9]; totalA /= 1000; - if (totalA = 0) totalA = 1; + if (totalA = 0) totalA = 1; // spotted by Laserbat: this 'scaling back' code doesn't. It always divides by the fallback of 1. Old NJAD doesn't scale back the things we're comparing against. Kept to retain known behavior, use the one in StudioTan and Monitoring for a tuned-as-intended NJAD. bynR[1] /= totalA; bynR[2] /= totalA; bynR[3] /= totalA; @@ -394,7 +394,7 @@ void NotJustAnotherDither::processDoubleReplacing(double **inputs, double **outp totalA = bynL[1] + bynL[2] + bynL[3] + bynL[4] + bynL[5] + bynL[6] + bynL[7] + bynL[8] + bynL[9]; totalA /= 1000; - if (totalA = 0) totalA = 1; + if (totalA = 0) totalA = 1; // spotted by Laserbat: this 'scaling back' code doesn't. It always divides by the fallback of 1. Old NJAD doesn't scale back the things we're comparing against. Kept to retain known behavior, use the one in StudioTan and Monitoring for a tuned-as-intended NJAD. bynL[1] /= totalA; bynL[2] /= totalA; bynL[3] /= totalA; @@ -475,7 +475,7 @@ void NotJustAnotherDither::processDoubleReplacing(double **inputs, double **outp totalA = bynR[1] + bynR[2] + bynR[3] + bynR[4] + bynR[5] + bynR[6] + bynR[7] + bynR[8] + bynR[9]; totalA /= 1000; - if (totalA = 0) totalA = 1; + if (totalA = 0) totalA = 1; // spotted by Laserbat: this 'scaling back' code doesn't. It always divides by the fallback of 1. Old NJAD doesn't scale back the things we're comparing against. Kept to retain known behavior, use the one in StudioTan and Monitoring for a tuned-as-intended NJAD. bynR[1] /= totalA; bynR[2] /= totalA; bynR[3] /= totalA; -- cgit v1.2.3