From 3a11f43fdcfdf563b50ff88d78a3a27ac697b849 Mon Sep 17 00:00:00 2001 From: Liam Kerr Date: Sun, 2 Aug 2026 20:26:06 +0100 Subject: [PATCH] refactor: optimize Clipper class with extracted `clip` helper method for cleaner stereo processing logic --- core/Clipper.cpp | 22 ++++++++++++---------- core/Clipper.hpp | 1 + 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/core/Clipper.cpp b/core/Clipper.cpp index 8a2c224..9451a29 100644 --- a/core/Clipper.cpp +++ b/core/Clipper.cpp @@ -11,15 +11,17 @@ void Clipper::processStereo(const float *inLeft, const float *inRight, float *outLeft, float *outRight, uint32_t frames) { for (uint32_t i = 0; i < frames; ++i) { - if (outLeft[i] > 0) { - outLeft[i] = inLeft[i] > clip_ ? clip_ : inLeft[i]; - } else { - outLeft[i] = inLeft[i] < -clip_ ? -clip_ : inLeft[i]; - } - if (outRight[i] > 0) { - outRight[i] = inRight[i] > clip_ ? clip_ : inRight[i]; - } else { - outRight[i] = inRight[i] < -clip_ ? -clip_ : inRight[i]; - } + outLeft[i] = clip(inLeft[i]); + outRight[i] = clip(inRight[i]); } } + +float Clipper::clip(const float in) { + float out = in; + if (in > 0) { + out = in > clip_ ? clip_ : in; + } else { + out = in < -clip_ ? -clip_ : in; + } + return out; +} \ No newline at end of file diff --git a/core/Clipper.hpp b/core/Clipper.hpp index 8309279..91c7722 100644 --- a/core/Clipper.hpp +++ b/core/Clipper.hpp @@ -13,6 +13,7 @@ public: private: float clip_; + float clip(const float in); public: void setGain(float c) { clip_ = c; }