![]() |
quantumVERB
1.0.0
A FOSS convolution reverb plugin
|
#include <MainPipeline.h>
Public Types | |
using | Ptr = std::shared_ptr< MainPipeline > |
![]() | |
using | Ptr = std::shared_ptr< Task > |
Public Member Functions | |
MainPipeline (juce::AudioProcessor *processor) | |
Constructs a MainPipeline object associated with an AudioProcessor. More... | |
virtual void | updateParams (const juce::AudioProcessorValueTreeState ¶ms, const juce::String &="") override |
Updates parameters from processor parameter tree. More... | |
virtual void | updateSampleRate (double sr) override |
Update sample rate for pipeline and child tasks. More... | |
virtual AudioBlock | exec (AudioBlock audio) override |
Apply reverb effect to given audio buffer. More... | |
virtual bool | needsToRun () const override |
Pipeline must always be executed. More... | |
void | loadIR (AudioBlock irIn) |
Copy reference to IR buffer. More... | |
![]() | |
Task (juce::AudioProcessor *processor) | |
Public Attributes | |
AudioBlock | ir |
![]() | |
double | sampleRate |
Protected Attributes | |
Convolution::Ptr | convolution |
Gain::Ptr | gain |
Mixer::Ptr | dryWetMixer |
![]() | |
juce::AudioProcessor * | processor |
bool | mustExec = true |
Additional Inherited Members | |
![]() | |
float | getParam (const juce::AudioProcessorValueTreeState ¶ms, const juce::String &blockId) const |
Internal method used to get (and check) a parameter's value. | |
Main audio processing pipeline. Contains various steps applied on every processing cycle, in particular convolution with the associated impulse response and some cleanup steps afterwards. This pipeline constitutes the critical path (i.e. it limits plugin performance) and thus is more heavily optimised than its IR counterpart.
Definition at line 27 of file MainPipeline.h.
reverb::MainPipeline::MainPipeline | ( | juce::AudioProcessor * | processor | ) |
Constructs a MainPipeline object associated with an AudioProcessor.
Creates a MainPipeline and each of its steps.
[in] | processor | Pointer to main processor |
Definition at line 25 of file MainPipeline.cpp.
|
overridevirtual |
Apply reverb effect to given audio buffer.
Load original audio buffer into dryWetMixer object, then apply reverb pipeline steps in series (convolution w/ IR, dry/wet mixing and output attenuation). Output replaces samples in given audio buffer.
[in,out] | audio | Audio sample buffer |
Implements reverb::Task.
Definition at line 80 of file MainPipeline.cpp.
void reverb::MainPipeline::loadIR | ( | AudioBlock | irIn | ) |
Copy reference to IR buffer.
Calls convolution block's loadIR method to pass along the given audio block
[in] | irIn | Input IR block |
Definition at line 99 of file MainPipeline.cpp.
|
inlineoverridevirtual |
Pipeline must always be executed.
Reimplemented from reverb::Task.
Definition at line 52 of file MainPipeline.h.
|
overridevirtual |
Updates parameters from processor parameter tree.
[in] | params | Processor parameter tree |
[in] | blockId | ID of block whose paramters should be checked |
Implements reverb::Task.
Definition at line 40 of file MainPipeline.cpp.
|
overridevirtual |
Update sample rate for pipeline and child tasks.
Compares new sample rate with previous value. If different, sets mustExec to true in order to re-run pipeline for new sample rate. Store new sample rate value in object.
[in] | sr | Sample rate |
Reimplemented from reverb::Task.
Definition at line 57 of file MainPipeline.cpp.