VCV Rack API v2
Loading...
Searching...
No Matches
rack::dsp::ComplexFFT Struct Reference

Complex-valued FFT context. More...

#include <fft.hpp>

Public Member Functions

 ComplexFFT (size_t length)
 
 ~ComplexFFT ()
 
void fftUnordered (const float *input, float *output)
 Performs the complex FFT.
 
void ifftUnordered (const float *input, float *output)
 Performs the inverse complex FFT.
 
void fft (const float *input, float *output)
 
void ifft (const float *input, float *output)
 
void scale (float *x)
 

Public Attributes

PFFFT_Setup * setup
 
int length
 

Detailed Description

Complex-valued FFT context.

length must be a multiple of 16.

Constructor & Destructor Documentation

◆ ComplexFFT()

rack::dsp::ComplexFFT::ComplexFFT ( size_t length)
inline

◆ ~ComplexFFT()

rack::dsp::ComplexFFT::~ComplexFFT ( )
inline

Member Function Documentation

◆ fftUnordered()

void rack::dsp::ComplexFFT::fftUnordered ( const float * input,
float * output )
inline

Performs the complex FFT.

Input and output must be aligned using the above align*() functions. Input is 2*length elements. Output is 2*length elements.

◆ ifftUnordered()

void rack::dsp::ComplexFFT::ifftUnordered ( const float * input,
float * output )
inline

Performs the inverse complex FFT.

Input is 2*length elements. Output is 2*length elements. Scaling is such that FFT(IFFT(x)) = N*x.

◆ fft()

void rack::dsp::ComplexFFT::fft ( const float * input,
float * output )
inline

◆ ifft()

void rack::dsp::ComplexFFT::ifft ( const float * input,
float * output )
inline

◆ scale()

void rack::dsp::ComplexFFT::scale ( float * x)
inline

Member Data Documentation

◆ setup

PFFFT_Setup* rack::dsp::ComplexFFT::setup

◆ length

int rack::dsp::ComplexFFT::length

The documentation for this struct was generated from the following file: