5 for (
int i = 0; i < 4; i++)
14 jassert(numChannels == 2);
24 for (
int i = 0; i < numSamples; i++)
25 for (
int j = 0; j < numChannels; j++)
60 float wetSample =
m_wetBuffer.getSample(channelIdx, sampleIdx);
61 float drySample =
m_dryBuffer.getSample(channelIdx, sampleIdx);
64 predelayPtr->copySample(wetSample);
65 float idx = predelayPtr->getHead() -
m_predelay - 1.0f;
73 auto bufferPtr = buffer.getArrayOfWritePointers();
74 int numSamples = buffer.getNumSamples();
75 int numChannels = buffer.getNumChannels();
79 for (
int i = 0; i < numSamples; i++)
80 for (
int j = 0; j < numChannels; j++)
A fractional delay line with several interpolation methods.
Definition AudioSampleCircularBuffer.h:10
A thread class designed to load and preprocess an impulse response.
Definition ConvolutionComputationThread.h:8
@ RIGHT
Definition ConvolutionReverb.h:43
@ LEFT
Definition ConvolutionReverb.h:42
void prepareToPlay(double sampleRate, int samplesPerBlock)
Definition ConvolutionReverb.cpp:117
size_t getConvolverTailBlockSize() const
Definition ConvolutionReverb.cpp:171
void prepareNextBlock(const float *const *buffer, int numSamples, int numChannels)
Definition ConvolutionReverb.cpp:11
AudioBuffer< float > m_dryBuffer
Definition ConvolutionReverb.h:55
void setPredelayMs(float predelayMs)
Definition ConvolutionReverb.cpp:104
void setOutputGainDb(float outputGainValueIndB)
Definition ConvolutionReverb.cpp:102
String getImpulseResponseFilePath() const
Definition ConvolutionReverb.cpp:177
~ConvolutionReverb()
Definition ConvolutionReverb.cpp:9
float getNextSample(int sampleIdx, int channelIdx)
Definition ConvolutionReverb.cpp:58
std::vector< float > m_convolutionBufferLR
Definition ConvolutionReverb.h:58
std::vector< float > m_convolutionBufferRR
Definition ConvolutionReverb.h:60
ConvolutionReverb()
Definition ConvolutionReverb.cpp:3
OwnedArray< AudioSampleCircularBuffer > m_predelayBuffers
Definition ConvolutionReverb.h:53
OwnedArray< IRConvolver > m_convolvers
Definition ConvolutionReverb.h:37
void updateConvolvers()
Definition ConvolutionReverb.cpp:148
std::vector< float > m_convolutionBufferLL
Definition ConvolutionReverb.h:57
void clearConvolvers()
Definition ConvolutionReverb.cpp:159
float m_predelay
Definition ConvolutionReverb.h:50
void setImpulseResponseFilePath(const String &impulseResponseFilePath)
Definition ConvolutionReverb.cpp:183
void setMix(float mixValue)
Definition ConvolutionReverb.cpp:100
CriticalSection m_irCalculationMutex
Definition ConvolutionReverb.h:66
CriticalSection m_convolverMutex
Definition ConvolutionReverb.h:62
const int m_numOutputChannels
Definition ConvolutionReverb.h:45
size_t m_convolverTailBlockSize
Definition ConvolutionReverb.h:64
String m_impulseResponseFilePath
Definition ConvolutionReverb.h:38
size_t getConvolverHeadBlockSize() const
Definition ConvolutionReverb.cpp:165
DryWet m_mix
Definition ConvolutionReverb.h:48
std::unique_ptr< Thread > m_irCalculation
Definition ConvolutionReverb.h:67
float m_outputGain
Definition ConvolutionReverb.h:49
size_t m_convolverHeadBlockSize
Definition ConvolutionReverb.h:63
const OwnedArray< IRConvolver > & getConvolvers() const
Definition ConvolutionReverb.cpp:142
std::vector< float > m_convolutionBufferRL
Definition ConvolutionReverb.h:59
void processBlock(AudioBuffer< float > &buffer)
Definition ConvolutionReverb.cpp:71
AudioBuffer< float > m_wetBuffer
Definition ConvolutionReverb.h:55
void setSampleRate(double newSampleRate)
Definition ConvolutionReverb.cpp:90
void reset()
Definition ConvolutionReverb.cpp:109
double m_sampleRate
Definition ConvolutionReverb.h:47
double getSampleRate() const
Definition ConvolutionReverb.cpp:84
const float m_maxPredelayMs
Definition ConvolutionReverb.h:52
float wet() const
Definition DryWet.h:26
float dry() const
Definition DryWet.h:25
Used in the ConvolutionReverb class, performs single-channel convolution.
Definition IRConvolver.h:29
Convolver * getConvolver()
Definition IRConvolver.cpp:15
void process(const float *input, float *output, int len)
Definition IRConvolver.cpp:49
Definition AirAbsorptionFilter.cpp:2