/* ============================================================================== CMLSDelay.h Created: 3 May 2025 5:39:35pm Author: Luigi Ref. https://github.com/flipbug/simple-delay/tree/master ============================================================================== */ #pragma once #include #define MAX_DELAY_LENGTH 1.0f // Maximum delay time in seconds #define MAX_FEEDBACK 1.0f class CMLSDelay : public juce::dsp::ProcessorBase { public: CMLSDelay(); ~CMLSDelay() override; void reset() override; void prepare(const juce::dsp::ProcessSpec&) override; void process(const juce::dsp::ProcessContextReplacing&) override; // Parameter getters and setters void setDryWet(float value); void setAmount(float value); const float getDryWet(); const float getAmount(); private: float dryWetProp = 0.0f; float amount = 0.0f; float delayLength; float feedback; juce::AudioSampleBuffer delayBuffer; int delayBufferLength; int delayReadPosition; int delayWritePosition; juce::NormalisableRange* delayLengthRange; juce::NormalisableRange* feedbackRange; };