Chris@6: Chris@6: Chris@6:
Chris@6: Chris@6: Chris@6: Chris@6: Chris@6:
Chris@6: VampPluginSDK
Chris@6: 2.7
Chris@6:
Chris@6: |
Chris@6:
A simple FFT implementation provided for convenience of plugin authors. Chris@6: More...
Chris@6: Chris@6:#include <FFT.h>
Chris@6: Public Member Functions | |
FFTComplex (unsigned int n) | |
Prepare to calculate transforms of size n. More... | |
~FFTComplex () | |
void | forward (const double *ci, double *co) |
Calculate a forward transform of size n. More... | |
void | inverse (const double *ci, double *co) |
Calculate an inverse transform of size n. More... | |
Chris@6: Private Attributes | |
D * | m_d |
A simple FFT implementation provided for convenience of plugin authors.
Chris@6:This class provides double-precision complex-complex transforms.
Chris@6:Note: If the SDK has been compiled with the SINGLE_PRECISION_FFT flag, then all FFTs will use single precision internally. The default is double precision. The API uses doubles in either case.
Chris@6:The forward transform is unscaled; the inverse transform is scaled by 1/n.
Chris@6: Chris@6: Chris@6:Vamp::FFTComplex::FFTComplex | Chris@6:( | Chris@6:unsigned int | Chris@6:n | ) | Chris@6:Chris@6: |
Prepare to calculate transforms of size n.
Chris@6:n must be a multiple of 2.
Chris@6: Chris@6:Vamp::FFTComplex::~FFTComplex | Chris@6:( | Chris@6:) | Chris@6:Chris@6: |
void Vamp::FFTComplex::forward | Chris@6:( | Chris@6:const double * | Chris@6:ci, | Chris@6:
Chris@6: | Chris@6: | double * | Chris@6:co | Chris@6:
Chris@6: | ) | Chris@6:Chris@6: |
Calculate a forward transform of size n.
Chris@6:ci must point to the interleaved complex input data of size n (that is, 2n doubles in total).
Chris@6:co must point to enough space to receive an interleaved complex output array of size n (that is, 2n doubles in total).
Chris@6: Chris@6:void Vamp::FFTComplex::inverse | Chris@6:( | Chris@6:const double * | Chris@6:ci, | Chris@6:
Chris@6: | Chris@6: | double * | Chris@6:co | Chris@6:
Chris@6: | ) | Chris@6:Chris@6: |
Calculate an inverse transform of size n.
Chris@6:ci must point to an interleaved complex input array of size n (that is, 2n doubles in total).
Chris@6:co must point to enough space to receive the interleaved complex output data of size n (that is, 2n doubles in total). The output is scaled by 1/n.
Chris@6: Chris@6:
Chris@6:
|
Chris@6: Chris@6: private | Chris@6: