Pd++
0.01
A pure C++ implementation of Pure Data objects
|
Real Inverse Fast Fourier Transform. More...
#include <rIFFT.h>
Public Member Functions | |
realIFFT () | |
realIFFT (int) | |
double | perform (double *input) |
Public Member Functions inherited from PdMaster | |
void * | getbytes (size_t nbytes) |
void * | resizebytes (void *old, size_t oldsize, size_t newsize) |
void | freebytes (void *fatso, size_t nbytes) |
std::string | getPath () |
void | setSampleRate (unsigned long) |
unsigned long | getSampleRate () |
void | setBlockSize (int) |
int | getBlockSize () |
double | getTimeInSampleTicks () |
long | getTimeInMilliSeconds (double time) |
int | pdBigOrSmall (double f) |
void | cos_maketable () |
int | PD_BIGORSMALL (float f) |
void | setFFTWindow (int) |
int | getFFTWindow () |
double | mtof (double) |
double | ftom (double) |
double | powtodb (double) |
double | dbtopow (double) |
double | rmstodb (double) |
double | dbtorms (double) |
Public Member Functions inherited from FFT | |
void | mayer_fht (double *fz, int n) |
void | mayer_fft (int n, double *real, double *imag) |
void | mayer_ifft (int n, double *real, double *imag) |
void | mayer_realfft (int n, double *real) |
void | mayer_realifft (int n, double *real) |
Public Attributes | |
const std::string | pdName = "rifft~" |
Public Attributes inherited from PdMaster | |
int | cosTableSize = COSTABSIZE |
float * | cos_table |
Additional Inherited Members | |
Public Types inherited from PdMaster | |
typedef union PdMaster::_sampleint_union | t_sampleint_union |
Real Inverse Fast Fourier Transform.
This is an emulation of the rifft~ object. It takes a window of samples and resynthesizes them back into the time domain. This is different from several other Pd++ classes as it accepts a double*, which is a c-style reference to our input window. Real Inverse Fast Fourier Transform only provides the real (or cosine part I believe) of an FFT. See FFT or fft_mayer.c for more information on the algorithm.
pd::realIFFT::realIFFT | ( | ) |
If you would like to change the window size, default is 64, use ::setFFTWindow() which is inherited from PdMaster.
pd::realIFFT::realIFFT | ( | int | ws | ) |
Copy constructor. You can manually set the window size here.