CMLSReverb.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "CMLSReverb.h";
  2. CMLSReverb::CMLSReverb()
  3. {
  4. // Default parameters declaration
  5. this->reverbParams.dryLevel = 1.0f;
  6. this->reverbParams.wetLevel = 0.0f;
  7. this->reverbParams.roomSize = 0.0f;
  8. this->reverbParams.damping = 0.5f;
  9. this->reverbParams.width = 0.0f;
  10. this->reverb.setParameters(this->reverbParams);
  11. }
  12. CMLSReverb::~CMLSReverb() {}
  13. void CMLSReverb::reset() {
  14. this->reverb.reset();
  15. }
  16. void CMLSReverb::prepare(const juce::dsp::ProcessSpec& spec) {
  17. this->reverb.setSampleRate(spec.sampleRate);
  18. }
  19. void CMLSReverb::process(const juce::dsp::ProcessContextReplacing<float>& context) {
  20. juce::dsp::AudioBlock<float> buffer = context.getOutputBlock();
  21. this->reverb.processStereo(buffer.getChannelPointer(0), buffer.getChannelPointer(1), buffer.getNumSamples());
  22. }
  23. void CMLSReverb::setDryWet(float value)
  24. {
  25. // Set the dry/wet mix value
  26. this->reverbParams.wetLevel = value;
  27. this->reverbParams.dryLevel = 1.0f - value;
  28. this->reverb.setParameters(this->reverbParams);
  29. }
  30. void CMLSReverb::setRoomSize(float value)
  31. {
  32. // Set the room size value
  33. this->reverbParams.roomSize = value;
  34. this->reverbParams.width = value / 2;
  35. this->reverb.setParameters(this->reverbParams);
  36. }
  37. const float CMLSReverb::getDryWet()
  38. {
  39. // Get the dry/wet mix value
  40. return this->reverbParams.wetLevel;
  41. }
  42. const float CMLSReverb::getRoomSize()
  43. {
  44. // Get the room size value
  45. return this->reverbParams.roomSize;
  46. }