OpenShot Audio Library | OpenShotAudio 0.3.2
Loading...
Searching...
No Matches
juce::dsp::ConvolutionEngine Struct Reference

Public Member Functions

void reset ()
 
void initializeConvolutionEngine (ProcessingInformation &info, int channel)
 
void copyStateFromOtherEngine (const ConvolutionEngine &other)
 
void processSamples (const float *input, float *output, size_t numSamples)
 
void prepareForConvolution (float *samples) noexcept
 
void convolutionProcessingAndAccumulate (const float *input, const float *impulse, float *output)
 
void updateSymmetricFrequencyDomainData (float *samples) noexcept
 

Public Attributes

std::unique_ptr< FFTFFTobject
 
size_t FFTSize = 0
 
size_t currentSegment = 0
 
size_t numInputSegments = 0
 
size_t numSegments = 0
 
size_t blockSize = 0
 
size_t inputDataPos = 0
 
AudioBuffer< floatbufferInput
 
AudioBuffer< floatbufferOutput
 
AudioBuffer< floatbufferTempOutput
 
AudioBuffer< floatbufferOverlap
 
Array< AudioBuffer< float > > buffersInputSegments
 
Array< AudioBuffer< float > > buffersImpulseSegments
 
bool isReady = false
 

Detailed Description

This class is the convolution engine itself, processing only one channel at a time of input signal.

Definition at line 35 of file juce_Convolution.cpp.

Member Function Documentation

◆ convolutionProcessingAndAccumulate()

void juce::dsp::ConvolutionEngine::convolutionProcessingAndAccumulate ( const float input,
const float impulse,
float output 
)
inline

Does the convolution operation itself only on half of the frequency domain samples.

Definition at line 279 of file juce_Convolution.cpp.

Referenced by processSamples().

◆ copyStateFromOtherEngine()

void juce::dsp::ConvolutionEngine::copyStateFromOtherEngine ( const ConvolutionEngine other)
inline

Copy the states of another engine.

Definition at line 150 of file juce_Convolution.cpp.

◆ initializeConvolutionEngine()

void juce::dsp::ConvolutionEngine::initializeConvolutionEngine ( ProcessingInformation &  info,
int  channel 
)
inline

Initalize all the states and objects to perform the convolution.

Definition at line 87 of file juce_Convolution.cpp.

◆ prepareForConvolution()

void juce::dsp::ConvolutionEngine::prepareForConvolution ( float samples)
inlinenoexcept

After each FFT, this function is called to allow convolution to be performed with only 4 SIMD functions calls.

Definition at line 265 of file juce_Convolution.cpp.

Referenced by initializeConvolutionEngine(), and processSamples().

◆ processSamples()

void juce::dsp::ConvolutionEngine::processSamples ( const float input,
float output,
size_t  numSamples 
)
inline

Performs the uniform partitioned convolution using FFT.

Definition at line 176 of file juce_Convolution.cpp.

◆ reset()

void juce::dsp::ConvolutionEngine::reset ( )
inline

Definition at line 73 of file juce_Convolution.cpp.

◆ updateSymmetricFrequencyDomainData()

void juce::dsp::ConvolutionEngine::updateSymmetricFrequencyDomainData ( float samples)
inlinenoexcept

Undo the re-organization of samples from the function prepareForConvolution. Then, takes the conjugate of the frequency domain first half of samples, to fill the second half, so that the inverse transform will return real samples in the time domain.

Definition at line 296 of file juce_Convolution.cpp.

Referenced by processSamples().

Member Data Documentation

◆ blockSize

size_t juce::dsp::ConvolutionEngine::blockSize = 0

Definition at line 319 of file juce_Convolution.cpp.

◆ bufferInput

AudioBuffer<float> juce::dsp::ConvolutionEngine::bufferInput

Definition at line 321 of file juce_Convolution.cpp.

◆ bufferOutput

AudioBuffer<float> juce::dsp::ConvolutionEngine::bufferOutput

Definition at line 321 of file juce_Convolution.cpp.

◆ bufferOverlap

AudioBuffer<float> juce::dsp::ConvolutionEngine::bufferOverlap

Definition at line 321 of file juce_Convolution.cpp.

◆ buffersImpulseSegments

Array<AudioBuffer<float> > juce::dsp::ConvolutionEngine::buffersImpulseSegments

Definition at line 322 of file juce_Convolution.cpp.

◆ buffersInputSegments

Array<AudioBuffer<float> > juce::dsp::ConvolutionEngine::buffersInputSegments

Definition at line 322 of file juce_Convolution.cpp.

◆ bufferTempOutput

AudioBuffer<float> juce::dsp::ConvolutionEngine::bufferTempOutput

Definition at line 321 of file juce_Convolution.cpp.

◆ currentSegment

size_t juce::dsp::ConvolutionEngine::currentSegment = 0

Definition at line 319 of file juce_Convolution.cpp.

◆ FFTobject

std::unique_ptr<FFT> juce::dsp::ConvolutionEngine::FFTobject

Definition at line 316 of file juce_Convolution.cpp.

◆ FFTSize

size_t juce::dsp::ConvolutionEngine::FFTSize = 0

Definition at line 318 of file juce_Convolution.cpp.

◆ inputDataPos

size_t juce::dsp::ConvolutionEngine::inputDataPos = 0

Definition at line 319 of file juce_Convolution.cpp.

◆ isReady

bool juce::dsp::ConvolutionEngine::isReady = false

Definition at line 324 of file juce_Convolution.cpp.

◆ numInputSegments

size_t juce::dsp::ConvolutionEngine::numInputSegments = 0

Definition at line 319 of file juce_Convolution.cpp.

◆ numSegments

size_t juce::dsp::ConvolutionEngine::numSegments = 0

Definition at line 319 of file juce_Convolution.cpp.


The documentation for this struct was generated from the following file: