From b3dd8b3ce91ae8158a5b45cde8117aae3043dcb4 Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Mon, 13 Apr 2020 23:33:57 +0200 Subject: [PATCH] Use trunc in modifiers --- src/sfizz/ModifierHelpers.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/sfizz/ModifierHelpers.h b/src/sfizz/ModifierHelpers.h index 1a5d5aba..4aaffa75 100644 --- a/src/sfizz/ModifierHelpers.h +++ b/src/sfizz/ModifierHelpers.h @@ -87,7 +87,7 @@ void linearEnvelope(const EventVector& events, absl::Span envelope, F&& l return; auto quantize = [step](float value) -> float { - return std::floor(value / step) * step; + return std::trunc(value / step) * step; }; const auto maxDelay = static_cast(envelope.size() - 1); @@ -156,10 +156,7 @@ void multiplicativeEnvelope(const EventVector& events, absl::Span envelop // log q log q // and log(b)\log(q) is between 0 and 1. auto quantize = [logStep](float value) -> float { - if (value > 1) - return std::exp(logStep * std::floor(std::log(value) / logStep)); - else - return std::exp(logStep * std::ceil(std::log(value) / logStep)); + return std::exp(logStep * std::trunc(std::log(value) / logStep)); }; auto lastValue = quantize(lambda(events[0].value));