LMMS
Loading...
Searching...
No Matches
juce_FFT.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28namespace dsp
29{
30
45{
46public:
47 //==============================================================================
51 FFT (int order);
52
55
57 FFT& operator= (FFT&&) noexcept;
58
60 ~FFT();
61
62 //==============================================================================
66 void perform (const Complex<float>* input, Complex<float>* output, bool inverse) const noexcept;
67
87 void performRealOnlyForwardTransform (float* inputOutputData,
88 bool onlyCalculateNonNegativeFrequencies = false) const noexcept;
89
97 void performRealOnlyInverseTransform (float* inputOutputData) const noexcept;
98
107 void performFrequencyOnlyForwardTransform (float* inputOutputData,
108 bool onlyCalculateNonNegativeFrequencies = false) const noexcept;
109
111 int getSize() const noexcept { return size; }
112
113 //==============================================================================
114 #ifndef DOXYGEN
115 /* internal */
116 struct Instance;
117 template <typename> struct EngineImpl;
118 #endif
119
120private:
121 //==============================================================================
122 struct Engine;
123
124 std::unique_ptr<Instance> engine;
125 int size;
126
127 //==============================================================================
129};
130
131} // namespace dsp
132} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition Engine.h:28
int size
Definition juce_FFT.h:125
void performFrequencyOnlyForwardTransform(float *inputOutputData, bool onlyCalculateNonNegativeFrequencies=false) const noexcept
Definition juce_FFT.cpp:984
void performRealOnlyInverseTransform(float *inputOutputData) const noexcept
Definition juce_FFT.cpp:978
std::unique_ptr< Instance > engine
Definition juce_FFT.h:124
FFT(int order)
Definition juce_FFT.cpp:954
int getSize() const noexcept
Definition juce_FFT.h:111
void performRealOnlyForwardTransform(float *inputOutputData, bool onlyCalculateNonNegativeFrequencies=false) const noexcept
Definition juce_FFT.cpp:972
void perform(const Complex< float > *input, Complex< float > *output, bool inverse) const noexcept
Definition juce_FFT.cpp:966
FFT(FFT &&) noexcept
static void FFT(int sizebits, EEL_F *data, int dir)
Definition eel_fft.h:217
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition juce_AudioBlock.h:29
std::complex< Type > Complex
Definition juce_dsp.h:194
Definition carla_juce.cpp:31
#define false
Definition ordinals.h:83
#define const
Definition zconf.h:137