#include <Convolver.h>

Public Member Functions | |
| Convolver () | |
| Constructors. | |
| Convolver (char *IRfilename) | |
| give an IR file name or buffer and/or FFT len | |
| Convolver (unsigned len, Buffer &impulseResp) | |
| Convolver (unsigned len, char *IRfilename) | |
| Convolver (Buffer &inbuf) | |
| ~Convolver () | |
| void | initialize (Buffer &buf) throw (CException) |
| init/setup functions | |
| void | setFilters (fftwf_complex **filterFFTs) |
| set the IR spectrum array | |
| void | setInputf (fftwf_complex *inFFT) |
| pass in the input buffer | |
| void | nextBuffer (Buffer &outputBuffer, unsigned outBufNum) throw (CException) |
| main nextBuffer call sums past FFT'ed IRs and inputs | |
Public Attributes | |
| CSL_FFTW_sample * | mSampleBuffer |
| public I/O buffer ptr | |
Protected Member Functions | |
| void | initialize (const char *filename) throw (CException) |
| this reads in the file | |
| void | complex_multiply_accumulate (fftwf_complex *left, fftwf_complex *right, fftwf_complex *output) |
| fast complex ptr mult-accum utility | |
Protected Attributes | |
| CSL_FFTW_cmplx ** | mFilterFFTs |
| A ring buffer of IR fft buffers. | |
| CSL_FFTW_cmplx ** | mInputFFTs |
| A list of past input spectra. | |
| CSL_FFTW_cmplx * | mSpectrumBuffer |
| current summation buffer | |
| CSL_FFTW_plan | mForwardPlan |
| CSL_FFTW_plan | mInversePlan |
| FFT plans. | |
| unsigned | mFFTSize |
| unsigned | mWindowCount |
| unsigned | mNumBufs |
| window/buffer sizes | |
| bool | mMyBuffers |
| whether I allocated the filter buffers | |
| bool | mMyInput |
| whether to use pullInput | |
| csl::Convolver::Convolver | ( | ) | [inline] |
Constructors.
| Convolver::Convolver | ( | char * | IRfilename | ) |
give an IR file name or buffer and/or FFT len
References csl::CGestalt::blockSize(), initialize(), mFFTSize, and mNumBufs.
| Convolver::Convolver | ( | unsigned | len, | |
| Buffer & | impulseResp | |||
| ) |
References initialize(), mFFTSize, and mNumBufs.
| Convolver::Convolver | ( | unsigned | len, | |
| char * | IRfilename | |||
| ) |
References initialize(), mFFTSize, and mNumBufs.
| Convolver::Convolver | ( | Buffer & | inbuf | ) |
References csl::CGestalt::blockSize(), initialize(), mFFTSize, and mNumBufs.
| Convolver::~Convolver | ( | ) |
References mFilterFFTs, mForwardPlan, mInputFFTs, mInversePlan, mNumBufs, mSampleBuffer, and mSpectrumBuffer.
| void Convolver::initialize | ( | Buffer & | buf | ) | throw (CException) |
init/setup functions
this takes the fft of the IR buffer
References CHECK_PTR, testkiss::j, csl::kLogInfo, and csl::logMsg().
Referenced by Convolver().
| void Convolver::setFilters | ( | fftwf_complex ** | filterFFTs | ) |
set the IR spectrum array
pass in the input buffer
| void Convolver::setInputf | ( | fftwf_complex * | inFFT | ) |
| void Convolver::nextBuffer | ( | Buffer & | outputBuffer, | |
| unsigned | outBufNum | |||
| ) | throw (CException) [virtual] |
main nextBuffer call sums past FFT'ed IRs and inputs
set the IR spectrum array
Reimplemented from csl::UnitGenerator.
References csl::Effect::pullInput().
| void Convolver::initialize | ( | const char * | filename | ) | throw (CException) [protected] |
this reads in the file
References csl::Buffer::allocateBuffers(), csl::kLogInfo, csl::logMsg(), and csl::Buffer::monoBuffer().
| void csl::Convolver::complex_multiply_accumulate | ( | fftwf_complex * | left, | |
| fftwf_complex * | right, | |||
| fftwf_complex * | output | |||
| ) | [protected] |
fast complex ptr mult-accum utility
| CSL_FFTW_sample* csl::Convolver::mSampleBuffer |
CSL_FFTW_cmplx** csl::Convolver::mFilterFFTs [protected] |
CSL_FFTW_cmplx** csl::Convolver::mInputFFTs [protected] |
CSL_FFTW_cmplx* csl::Convolver::mSpectrumBuffer [protected] |
CSL_FFTW_plan csl::Convolver::mForwardPlan [protected] |
Referenced by ~Convolver().
CSL_FFTW_plan csl::Convolver::mInversePlan [protected] |
unsigned csl::Convolver::mFFTSize [protected] |
Referenced by Convolver(), and setInputf().
unsigned csl::Convolver::mWindowCount [protected] |
Referenced by setInputf().
unsigned csl::Convolver::mNumBufs [protected] |
bool csl::Convolver::mMyBuffers [protected] |
whether I allocated the filter buffers
bool csl::Convolver::mMyInput [protected] |
1.5.8