/* ============================================================================== CMLSChorus.h Created: 1 May 2025 11:04:18pm Author: Luigi ============================================================================== */ #pragma once #include #define DELAY_CENTER 0.015 // Center for delay in seconds #define LFO_MIN_FREQ 0.0f // Minimum frequency of the LFO #define LFO_MAX_FREQ 5.0f // Maximum frequency of the LFO #define LFO_FREQ_DELTA 0.3f // Frequency delta between the two LFOs #define LFO_MIN_DEPTH 0.0f // Minimum depth of the LFO #define LFO_MAX_DEPTH 5.0f // Maximum depth of the LFO class CMLSChorus : public juce::dsp::ProcessorBase { public: CMLSChorus(); ~CMLSChorus() override; void reset() override; void prepare(const juce::dsp::ProcessSpec&); void process(const juce::dsp::ProcessContextReplacing&); // Parameter getters and setters void setDryWet(float value); void setAmount(float value); const float getDryWet(); const float getAmount(); private: float dryWetProp = 0.0; float amount = 0.0; juce::dsp::Chorus delayLine1; // 1st chorus delayline juce::dsp::Chorus delayLine2; // 2nd chorus delayline juce::dsp::DryWetMixer dryWetMixer; // Dry/Wet mixer juce::NormalisableRange* freqRange; // Range for LFOs frequencies juce::NormalisableRange* depthRange; // Range for LFOs depth };