Audacity
3.2.0
libraries
lib-time-and-pitch
StaffPad
FourierTransform_pffft.h
Go to the documentation of this file.
1
// FFT wrapper for the PFFFT library. It is possible to use different wrappers for
2
// other FFT libraries or platforms, as long as the CSS complex data format is used.
3
4
#pragma once
5
6
#include <stdint.h>
7
8
#include "
SamplesFloat.h
"
9
10
struct
PFFFT_Setup;
11
12
namespace
staffpad::audio
{
13
14
class
FourierTransform
15
{
16
public
:
17
FourierTransform
(int32_t newBlockSize);
18
~FourierTransform
();
19
20
int
getSize
()
const
{
return
static_cast<
int
>
(
_blockSize
); }
21
22
void
forwardReal
(
const
SamplesReal
& t,
SamplesComplex
& c);
23
void
inverseReal
(
const
SamplesComplex
& c,
SamplesReal
& t);
24
25
private
:
26
PFFFT_Setup*
realFftSpec
=
nullptr
;
27
PFFFT_Setup*
complexFftSpec
=
nullptr
;
28
float
*
_pffft_scratch
=
nullptr
;
29
30
const
int32_t
_blockSize
;
31
int32_t
_order
= 0;
32
};
33
34
}
// namespace staffpad::audio
SamplesFloat.h
staffpad::SamplesFloat< float >
staffpad::audio::FourierTransform
Definition:
FourierTransform_pffft.h:15
staffpad::audio::FourierTransform::realFftSpec
PFFFT_Setup * realFftSpec
Definition:
FourierTransform_pffft.h:26
staffpad::audio::FourierTransform::forwardReal
void forwardReal(const SamplesReal &t, SamplesComplex &c)
Definition:
FourierTransform_pffft.cpp:28
staffpad::audio::FourierTransform::FourierTransform
FourierTransform(int32_t newBlockSize)
Definition:
FourierTransform_pffft.cpp:7
staffpad::audio::FourierTransform::_blockSize
const int32_t _blockSize
Definition:
FourierTransform_pffft.h:30
staffpad::audio::FourierTransform::~FourierTransform
~FourierTransform()
Definition:
FourierTransform_pffft.cpp:14
staffpad::audio::FourierTransform::_order
int32_t _order
Definition:
FourierTransform_pffft.h:31
staffpad::audio::FourierTransform::complexFftSpec
PFFFT_Setup * complexFftSpec
Definition:
FourierTransform_pffft.h:27
staffpad::audio::FourierTransform::_pffft_scratch
float * _pffft_scratch
Definition:
FourierTransform_pffft.h:28
staffpad::audio::FourierTransform::inverseReal
void inverseReal(const SamplesComplex &c, SamplesReal &t)
Definition:
FourierTransform_pffft.cpp:46
staffpad::audio::FourierTransform::getSize
int getSize() const
Definition:
FourierTransform_pffft.h:20
staffpad::audio
Definition:
FormantShifter.h:21
Generated by
1.9.3