CMLSEqualizer.cpp 973 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "CMLSEqualizer.h"
  2. CMLSEqualizer::CMLSEqualizer() {}
  3. void CMLSEqualizer::prepare(const juce::dsp::ProcessSpec& spec) {
  4. sampleRate = spec.sampleRate;
  5. lowBand.prepare(spec);
  6. highBand.prepare(spec);
  7. lowBand.reset();
  8. highBand.reset();
  9. setEqLowGain(0.0f);
  10. setEqHighGain(0.0f);
  11. }
  12. void CMLSEqualizer::reset() {
  13. lowBand.reset();
  14. highBand.reset();
  15. }
  16. void CMLSEqualizer::process(const juce::dsp::ProcessContextReplacing<float>& context) {
  17. lowBand.process(context);
  18. highBand.process(context);
  19. }
  20. void CMLSEqualizer::setEqLowGain(float gain) {
  21. *lowBand.state = *juce::dsp::IIR::Coefficients<float>::makeLowShelf(
  22. sampleRate, 200.0f, 0.7f, juce::Decibels::decibelsToGain(gain));
  23. }
  24. void CMLSEqualizer::setEqHighGain(float gain) {
  25. *highBand.state = *juce::dsp::IIR::Coefficients<float>::makeHighShelf(
  26. sampleRate, 5000.0f, 0.7f, juce::Decibels::decibelsToGain(gain));
  27. }