/* ============================================================================== 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 MIN_FEEDBACK -100.0f #define MAX_FEEDBACK 0.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 effectDelaySamples; //Paramters float dryWetProp; float feedback; float delayLength; float amount; // Normaliosable range juce::NormalisableRange* delayLengthRange; juce::NormalisableRange* feedbackRange; //Delay Lines juce::dsp::DelayLine delayLine; juce::dsp::DelayLine linearDelay; juce::dsp::DryWetMixer mixer; std::array delayValue; std::array lastDelayOutput; std::array, 2> delayFeedbackVolume; };