quantumVERB  1.0.0
A FOSS convolution reverb plugin
PreDelay.h
1 /*
2  ==============================================================================
3 
4  PreDelay.h
5  Created: 14 Feb 2018 3:26:12pm
6  Author: Eric Seguin
7 
8  ==============================================================================
9 */
10 
11 #pragma once
12 
13 #include "Task.h"
14 
15 namespace reverb
16 {
17 
18  //==============================================================================
19  /**
20  * Implements a method to apply a pre-delay factor to a given impulse response.
21  */
22  class PreDelay : public Task
23  {
24  public:
25  //==============================================================================
26  PreDelay(juce::AudioProcessor * processor);
27 
28  //==============================================================================
29  using Ptr = std::shared_ptr<PreDelay>;
30 
31  //==============================================================================
32  virtual void updateParams(const juce::AudioProcessorValueTreeState& params,
33  const juce::String& blockId) override;
34 
35  virtual AudioBlock exec(AudioBlock ir) override;
36 
37  //==============================================================================
38  void prepareIR(juce::AudioSampleBuffer& ir);
39  int getNumSamplesToAdd();
40 
41  protected:
42  //==============================================================================
43  static constexpr int MAX_DELAY_MS = 1000;
44 
45  //==============================================================================
46  float delayMs = 0;
47  };
48 
49 }
float getParam(const juce::AudioProcessorValueTreeState &params, const juce::String &blockId) const
Internal method used to get (and check) a parameter&#39;s value.
Definition: Task.h:111
int getNumSamplesToAdd()
Returns expected number of samples after processing.
Definition: PreDelay.cpp:98
virtual void updateParams(const juce::AudioProcessorValueTreeState &params, const juce::String &blockId) override
Updates parameters from processor parameter tree.
Definition: PreDelay.cpp:37
void prepareIR(juce::AudioSampleBuffer &ir)
Resizes given IR before processing.
Definition: PreDelay.cpp:86
PreDelay(juce::AudioProcessor *processor)
Constructs a PreDelay object associated with an AudioProcessor.
Definition: PreDelay.cpp:26
virtual AudioBlock exec(AudioBlock ir) override
Applies predelay to impulse response.
Definition: PreDelay.cpp:58