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 | |
FFTReal (unsigned int n) | |
Prepare to calculate transforms of size n. More... | |
~FFTReal () | |
void | forward (const double *ri, double *co) |
Calculate a forward transform of size n. More... | |
void | inverse (const double *ci, double *ro) |
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 transforms between double-precision real time-domain and double-precision complex frequency-domain data.
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::FFTReal::FFTReal | 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::FFTReal::~FFTReal | Chris@6:( | Chris@6:) | Chris@6:Chris@6: |
void Vamp::FFTReal::forward | Chris@6:( | Chris@6:const double * | Chris@6:ri, | 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:ri must point to the real input data of size n.
Chris@6:co must point to enough space to receive an interleaved complex output array of size n/2+1 (that is, n+2 doubles in total).
Chris@6: Chris@6:void Vamp::FFTReal::inverse | Chris@6:( | Chris@6:const double * | Chris@6:ci, | Chris@6:
Chris@6: | Chris@6: | double * | Chris@6:ro | 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/2+1 (that is, n+2 doubles in total).
Chris@6:ro must point to enough space to receive the real output data of size n. The output is scaled by 1/n and only the real part is returned.
Chris@6: Chris@6:
Chris@6:
|
Chris@6: Chris@6: private | Chris@6: