|
Krotos Modules 3
|
Implementation of a partitioned FFT convolution algorithm with uniform block size. More...
#include <FFTConvolver.h>
Public Member Functions | |
| FFTConvolver () | |
| virtual | ~FFTConvolver () |
| bool | init (size_t blockSize, const Sample *ir, size_t irLen) |
| Initializes the convolver. | |
| void | process (const Sample *input, Sample *output, size_t len) |
| Convolves the the given input samples and immediately outputs the result. | |
| void | reset () |
| Resets the convolver and discards the set impulse response. | |
Private Member Functions | |
| FFTConvolver (const FFTConvolver &) | |
| FFTConvolver & | operator= (const FFTConvolver &) |
Private Attributes | |
| size_t | _blockSize |
| size_t | _segSize |
| size_t | _segCount |
| size_t | _fftComplexSize |
| std::vector< SplitComplex * > | _segments |
| std::vector< SplitComplex * > | _segmentsIR |
| SampleBuffer | _fftBuffer |
| audiofft::AudioFFT | _fft |
| SplitComplex | _preMultiplied |
| SplitComplex | _conv |
| SampleBuffer | _overlap |
| size_t | _current |
| SampleBuffer | _inputBuffer |
| size_t | _inputBufferFill |
Implementation of a partitioned FFT convolution algorithm with uniform block size.
Some notes on how to use it:
| fftconvolver::FFTConvolver::FFTConvolver | ( | ) |
|
virtual |
|
private |
| bool fftconvolver::FFTConvolver::init | ( | size_t | blockSize, |
| const Sample * | ir, | ||
| size_t | irLen ) |
Initializes the convolver.
| blockSize | Block size internally used by the convolver (partition size) |
| ir | The impulse response |
| irLen | Length of the impulse response |
|
private |
Convolves the the given input samples and immediately outputs the result.
| input | The input samples |
| output | The convolution result |
| len | Number of input/output samples |
| void fftconvolver::FFTConvolver::reset | ( | ) |
Resets the convolver and discards the set impulse response.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |