From 1698b616dd284db3d7e1eb0d2a54f3931a4772db Mon Sep 17 00:00:00 2001 From: hemmer <915048+hemmer@users.noreply.github.com> Date: Tue, 26 Dec 2023 09:12:34 +0000 Subject: [PATCH] Fix Rampage bug #44 --- CHANGELOG.md | 4 ++++ plugin.json | 2 +- src/Rampage.cpp | 5 +++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6e9650..8400b3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## v2.4.1 + * Rampage + * Fix SIMD bug + ## v2.4.0 * MotionMTR * Initial release diff --git a/plugin.json b/plugin.json index 8edb3d1..a001e22 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "slug": "Befaco", - "version": "2.4.0", + "version": "2.4.1", "license": "GPL-3.0-or-later", "name": "Befaco", "brand": "Befaco", diff --git a/src/Rampage.cpp b/src/Rampage.cpp index b204b84..53923ed 100644 --- a/src/Rampage.cpp +++ b/src/Rampage.cpp @@ -240,8 +240,9 @@ struct Rampage : Module { float shape = params[SHAPE_A_PARAM + part].getValue(); out[part][c / 4] += shapeDelta(delta, rate, shape) * args.sampleTime; - float_4 rising = (in[c / 4] - out[part][c / 4]) > 1e-3f; - float_4 falling = (in[c / 4] - out[part][c / 4]) < -1e-3f; + float_4 rising = simd::ifelse(delta_gt_0, (in[c / 4] - out[part][c / 4]) > 1e-3f, float_4::zero()); + float_4 falling = simd::ifelse(delta_lt_0, (in[c / 4] - out[part][c / 4]) < -1e-3f, float_4::zero()); + float_4 end_of_cycle = simd::andnot(falling, delta_lt_0); endOfCyclePulse[part][c / 4].trigger(end_of_cycle, 1e-3);