From 69f27e744180fd95f3e2461d34a11a55ca76a003 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Thu, 18 Mar 2021 13:52:14 +0100 Subject: [PATCH] Linear smoother: ensure to get the derivative correct --- src/sfizz/Smoothers.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sfizz/Smoothers.cpp b/src/sfizz/Smoothers.cpp index 9dcd8023..dff32e78 100644 --- a/src/sfizz/Smoothers.cpp +++ b/src/sfizz/Smoothers.cpp @@ -101,8 +101,8 @@ void LinearSmoother::process(absl::Span input, absl::Span ou if (target != nextTarget) { target = nextTarget; //framesToTarget = (framesToTarget > 0) ? framesToTarget : smoothFrames; - //step = (target - current) / max(1, framesToTarget); - step = (target - current) / max(1, smoothFrames); + //step = (target - current) / (16 * max(1, framesToTarget)); + step = (target - current) / (16 * max(1, smoothFrames)); } const simde__m128 targetX4 = simde_mm_set1_ps(target); if (target > current) { @@ -149,8 +149,8 @@ void LinearSmoother::process(absl::Span input, absl::Span ou if (target != nextTarget) { target = nextTarget; // framesToTarget = (framesToTarget > 0) ? framesToTarget : smoothFrames; - // step = (target - current) / max(1, framesToTarget); - step = (target - current) / max(1, smoothFrames); + // step = (target - current) / ((count - i) * max(1, framesToTarget)); + step = (target - current) / ((count - i) * max(1, smoothFrames)); } if (target > current) { for (; i < count; ++i)