CLAM-Development
1.4.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
Processing
Analysis
Tonal
TonalAnalysis.hxx
Go to the documentation of this file.
1
2
#ifndef TonalAnalysis_hxx
3
#define TonalAnalysis_hxx
4
5
#include "
DataTypes.hxx
"
6
#include "
DiscontinuousSegmentation.hxx
"
7
#include "
OutPort.hxx
"
8
#include "
AudioInPort.hxx
"
9
#include "
Processing.hxx
"
10
#include "
Audio.hxx
"
11
#include "
ProcessingConfig.hxx
"
12
#include <string>
13
14
namespace
Simac {
class
ChordExtractor; }
15
16
namespace
CLAM
17
{
18
19
class
TonalAnalysisConfig
:
public
ProcessingConfig
20
{
21
public
:
22
DYNAMIC_TYPE_USING_INTERFACE
(
TonalAnalysisConfig
, 5,
ProcessingConfig
);
23
DYN_ATTRIBUTE
(0,
public
,
double
, FilterInertia);
24
DYN_ATTRIBUTE
(1,
public
,
bool
, TunningEnabled);
25
DYN_ATTRIBUTE
(2,
public
,
bool
, PeakWindowingEnabled);
26
DYN_ATTRIBUTE
(3,
public
,
double
, HopRatio);
27
DYN_ATTRIBUTE
(4,
public
,
unsigned
, SegmentationMethod);
28
protected
:
29
void
DefaultInit
(
void
);
30
};
31
32
class
TonalAnalysis
:
public
Processing
33
{
34
private
:
35
36
TonalAnalysisConfig
_config;
37
AudioInPort
_input;
38
OutPort<std::vector<CLAM::TData>
> _pcp;
39
OutPort<std::vector<CLAM::TData>
> _chordCorrelation;
40
OutPort<DiscontinuousSegmentation>
_segmentation;
41
OutPort<std::vector<std::pair<CLAM::TData, CLAM::TData>
> > _chromaPeaks;
42
OutPort<std::pair<CLAM::TData, CLAM::TData>
> _tunning;
43
44
public
:
45
TonalAnalysis
(
const
TonalAnalysisConfig
& config =
TonalAnalysisConfig
() );
46
47
bool
Do
();
48
virtual
~TonalAnalysis
();
49
const
char
*
GetClassName
()
const
{
return
"TonalAnalysis"
;}
50
51
inline
const
ProcessingConfig
&
GetConfig
()
const
{
return
_config;}
52
bool
ConcreteConfigure
(
const
ProcessingConfig
& c);
53
bool
ConcreteStart
();
54
bool
ConcreteStop
();
55
private
:
56
Simac::ChordExtractor
* _implementation;
57
std::vector<float> _floatBuffer;
58
CLAM::TData
_currentTime;
59
60
};
61
62
}
//namespace CLAM
63
64
#endif
65
66
67
Generated by
1.8.1