aboutsummaryrefslogtreecommitdiff
path: root/src/DSP/SchroederReverb.h
blob: 5f1b7b198fb63dd72f4b2e522d556fc634da254b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include "AllPassFilter.h"
#include "CombFilter.h"
#include "Delay.h"
#include <juce_audio_processors/juce_audio_processors.h>

class SchroederReverb
{
  public:
    void prepare(double sampleRate, int samplesPerBlock);
    void reset();
    void process(float& sample, float dryWetMix, float decayFactor);

    void setPreDelayMs(float ms);

  private:
    CombFilter combFilter0, combFilter1, combFilter2, combFilter3;
    AllPassFilter allPassFilter0, allPassFilter1;
    Delay preDelay;
};