summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpcktm <jakub@kopanko.com>2023-06-13 23:14:10 +0200
committerpcktm <jakub@kopanko.com>2023-06-13 23:14:10 +0200
commit8a5c045b557ebc27882a1538a4a61a1450c526df (patch)
tree4b45dd95d2a9dd476234cbe73fce7e6f3a52deab
parent265b5eb132e0441135ad5635eee1a90beda863fd (diff)
Move maxDelay to a const variable
-rw-r--r--src/effects/backends/builtin/glitcheffect.cpp6
-rw-r--r--src/effects/backends/builtin/glitcheffect.h4
2 files changed, 8 insertions, 2 deletions
diff --git a/src/effects/backends/builtin/glitcheffect.cpp b/src/effects/backends/builtin/glitcheffect.cpp
index 29ca12835b..23ec5046e9 100644
--- a/src/effects/backends/builtin/glitcheffect.cpp
+++ b/src/effects/backends/builtin/glitcheffect.cpp
@@ -34,7 +34,7 @@ EffectManifestPointer GlitchEffect::getManifest() {
"1/8 - 2 seconds if no tempo is detected"));
delay->setValueScaler(EffectManifestParameter::ValueScaler::Linear);
delay->setUnitsHint(EffectManifestParameter::UnitsHint::Beats);
- delay->setRange(0.0, 0.5, 2.0);
+ delay->setRange(0.0, 0.5, kMaxDelay);
EffectManifestParameterPointer quantize = pManifest->addParameter();
quantize->setId("quantize");
@@ -106,7 +106,9 @@ void GlitchEffect::processChannel(
int delay_samples = delay_frames * engineParameters.channelCount();
pGroupState->sample_count += engineParameters.samplesPerBuffer();
if (pGroupState->sample_count >= delay_samples) {
- if (m_pDelayParameter->value() < 2.0) {
+ // If the delay parameter is at its maximum value, we don't update the `repeat_buf`
+ // in order to achieve an "audio freeze" effect.
+ if (m_pDelayParameter->value() < kMaxDelay) {
SampleUtil::copy(pGroupState->repeat_buf.data(),
pInput,
engineParameters.samplesPerBuffer());
diff --git a/src/effects/backends/builtin/glitcheffect.h b/src/effects/backends/builtin/glitcheffect.h
index 42ed367f43..f624a3d86a 100644
--- a/src/effects/backends/builtin/glitcheffect.h
+++ b/src/effects/backends/builtin/glitcheffect.h
@@ -11,6 +11,10 @@
#include "util/sample.h"
#include "util/samplebuffer.h"
+namespace {
+constexpr double kMaxDelay = 2.0;
+}
+
class GlitchGroupState : public EffectState {
public:
GlitchGroupState(const mixxx::EngineParameters& engineParameters)