CLAM-Development
1.4.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
Processing
Analysis
FFT_ooura.hxx
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2001-2004 MUSIC TECHNOLOGY GROUP (MTG)
3
* UNIVERSITAT POMPEU FABRA
4
*
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
*
20
*/
21
22
23
#ifndef _FFT_ooura_
24
#define _FFT_ooura_
25
26
#include "
FFT_base.hxx
"
27
#include "
DataTypes.hxx
"
28
#include "
SpecTypeFlags.hxx
"
29
#include "
ErrDynamicType.hxx
"
30
31
namespace
CLAM {
32
33
struct
FFTConfig;
34
class
Spectrum;
35
class
Audio;
36
class
ProcessingConfig;
37
class
IFFT_ooura;
38
44
class
FFT_ooura
:
public
FFT_base
45
{
46
48
int
*ip;
49
TData
*w;
50
51
bool
FFTConfigure();
52
55
bool
ConcreteConfigure(
const
ProcessingConfig
&);
56
57
// Memory Management (for work areas and stuff)
58
59
void
ReleaseMemory();
60
61
void
SetupMemory();
62
63
// Output conversions
64
65
void
ToComplex(
Spectrum
&out);
66
void
ToOther(
Spectrum
&out);
67
68
public
:
69
// FFTOOURA original functions, modified to accept
70
// TData instead of double
71
static
void
rdft
(
int
n,
int
isgn,
TData
*a,
int
*ip,
TData
*w);
72
static
void
makewt
(
int
nw,
int
*ip,
TData
*w);
73
static
void
makect
(
int
nc,
int
*ip,
TData
*c);
74
static
void
bitrv2
(
int
n,
int
*ip,
TData
*a);
75
static
void
cftfsub
(
int
n,
TData
*a,
TData
*w);
76
static
void
cftbsub
(
int
n,
TData
*a,
TData
*w);
77
static
void
rftfsub
(
int
n,
TData
*a,
int
nc,
TData
*c);
78
static
void
rftbsub
(
int
n,
TData
*a,
int
nc,
TData
*c);
79
static
void
cft1st
(
int
n,
TData
*a,
TData
*w);
80
static
void
cftmdl
(
int
n,
int
l,
TData
*a,
TData
*w);
81
82
83
84
FFT_ooura
();
85
86
FFT_ooura
(
const
FFTConfig
&c)
throw
(
ErrDynamicType
);
87
88
~FFT_ooura
();
89
90
const
char
*
GetClassName
()
const
{
return
"FFT_ooura"
;}
91
92
// Execution methods
93
94
bool
Do
();
95
96
bool
Do
(
const
Audio
& in,
Spectrum
&out);
97
98
99
bool
MayDisableExecution
()
const
{
return
true
;}
100
101
};
102
103
};
//namespace CLAM
104
105
#endif // _FFT_numrec_
106
Generated by
1.8.1