CMLSDelay.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. ==============================================================================
  3. CMLSDelay.h
  4. Created: 3 May 2025 5:39:35pm
  5. Author: Luigi
  6. Ref. https://github.com/flipbug/simple-delay/tree/master
  7. ==============================================================================
  8. */
  9. #pragma once
  10. #include <JuceHeader.h>
  11. #define MAX_DELAY_LENGTH 1.0f // Maximum delay time in seconds
  12. #define MAX_FEEDBACK 1.0f
  13. class CMLSDelay : public juce::dsp::ProcessorBase
  14. {
  15. public:
  16. CMLSDelay();
  17. ~CMLSDelay() override;
  18. void reset() override;
  19. void prepare(const juce::dsp::ProcessSpec&) override;
  20. void process(const juce::dsp::ProcessContextReplacing<float>&) override;
  21. // Parameter getters and setters
  22. void setDryWet(float value);
  23. void setAmount(float value);
  24. const float getDryWet();
  25. const float getAmount();
  26. private:
  27. float dryWetProp = 0.0f;
  28. float amount = 0.0f;
  29. float delayLength;
  30. float feedback;
  31. juce::AudioSampleBuffer delayBuffer;
  32. int delayBufferLength;
  33. int delayReadPosition;
  34. int delayWritePosition;
  35. juce::NormalisableRange<float>* delayLengthRange;
  36. juce::NormalisableRange<float>* feedbackRange;
  37. };