| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /*
- ==============================================================================
- CMLSDelay.h
- Created: 3 May 2025 5:39:35pm
- Author: Luigi
- Ref. https://github.com/flipbug/simple-delay/tree/master
- ==============================================================================
- */
- #pragma once
- #include <JuceHeader.h>
- #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<float>&) 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<float>* delayLengthRange;
- juce::NormalisableRange<float>* feedbackRange;
- //Delay Lines
- juce::dsp::DelayLine<float> delayLine;
- juce::dsp::DelayLine<float, juce::dsp::DelayLineInterpolationTypes::Linear> linearDelay;
- juce::dsp::DryWetMixer<float> mixer;
- std::array<float, 2> delayValue;
- std::array<float, 2> lastDelayOutput;
- std::array<juce::LinearSmoothedValue<float>, 2> delayFeedbackVolume;
- };
|