11 #ifndef INCLUDE_CONVOLUTION2_H
12 #define INCLUDE_CONVOLUTION2_H
15 #define USE_FFTW // use FFTW (faster but complicated to build)
30 void setIRFile(
char * inFName,
unsigned chan = 0);
31 void setIRData(
float * irData,
unsigned nTaps);
sample * SampleBuffer
1-channel buffer data type, vector of (sample)
SampleComplex * SampleComplexVector
complex vector
AdditiveInstrument.h – Sum-of-sines synthesis instrument class.
Effect – mix-in for classes that have unit generators as inputs (like filters).
Convolver2(UnitGenerator &in, char *inFName, unsigned chan=0, unsigned len=512, bool norm=false)
Constructors.
void nextBuffer(Buffer &outputBuffer)
main nextBuffer call does the fft/ifft
SampleComplexPtr * SampleComplexMatrix
complex 2D matrix
SampleComplexMatrix mInputFFT
A list of past input spectra.
SampleComplexVector mSpectrumBuffer
temp summing complex vector
FFT_Wrapper mFFTAnalyzer
FFT analysis/synthesis wrappers.
SampleComplexMatrix mFilterFFT
list of IR ffts
void setIRFile(char *inFName, unsigned chan=0)
SampleBuffer mLastOutput
most-recent output (1/2 window)
void checkBuffers(unsigned newNumBufs)
alloc buffers
void setIRData(float *irData, unsigned nTaps)
Buffer – the multi-channel sample buffer class (passed around between generators and IO guys)...
The Convolver2 is a CSL Effect.
~Convolver2()
set the IR file name; runs the analysis ffts
FFT_Wrapper mFFTSynthesizer
void complex_multiply_accumulate(SampleComplexVector left, SampleComplexVector right, SampleComplexVector output)
fast complex MAC using non-interleaved complex arrays
Buffer mFFTBuffer
buffer used for FFTs, no storage
Base class of CSL exceptions (written upper-case). Has a string message.