CLAM-Development  1.4.0
TonalAnalysis.hxx
Go to the documentation of this file.
1 
2 #ifndef TonalAnalysis_hxx
3 #define TonalAnalysis_hxx
4 
5 #include "DataTypes.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 
20 {
21 public:
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;
39  OutPort<std::vector<CLAM::TData> > _chordCorrelation;
43 
44 public:
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