Browse Source

Small optimization to LinearValueSmoother

Signed-off-by: falkTX <falktx@falktx.com>
pull/476/head
falkTX 6 months ago
parent
commit
c60a151ca5
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      distrho/extra/ValueSmoother.hpp

+ 3
- 3
distrho/extra/ValueSmoother.hpp View File

@@ -180,20 +180,20 @@ public:
inline float peek() const noexcept inline float peek() const noexcept
{ {
const float dy = target - mem; const float dy = target - mem;
return mem + std::copysign(std::fmin(std::abs(dy), std::abs(step)), dy);
return mem + std::copysign(std::fmin(std::abs(dy), step), dy);
} }


inline float next() noexcept inline float next() noexcept
{ {
const float y0 = mem; const float y0 = mem;
const float dy = target - y0; const float dy = target - y0;
return (mem = y0 + std::copysign(std::fmin(std::abs(dy), std::abs(step)), dy));
return (mem = y0 + std::copysign(std::fmin(std::abs(dy), step), dy));
} }


private: private:
void updateStep() noexcept void updateStep() noexcept
{ {
step = (target - mem) / (tau * sampleRate);
step = std::abs(target - mem) / (tau * sampleRate);
} }
}; };




Loading…
Cancel
Save