annotate NoveltyCurve.h @ 10:17a260410116
Change NULL to 0 throughout
| author |
Chris Cannam |
| date |
Tue, 12 Aug 2014 16:20:14 +0100 |
| parents |
be59b4a73f49 |
| children |
09fb76606b2b |
| rev |
line source |
|
c@5
|
1 //
|
|
c@5
|
2 // NoveltyCurve.h
|
|
c@5
|
3 // Tempogram
|
|
c@5
|
4 //
|
|
c@5
|
5 // Created by Carl Bussey on 10/07/2014.
|
|
c@5
|
6 // Copyright (c) 2014 Carl Bussey. All rights reserved.
|
|
c@5
|
7 //
|
|
c@5
|
8
|
|
c@5
|
9 #ifndef __Tempogram__NoveltyCurve__
|
|
c@5
|
10 #define __Tempogram__NoveltyCurve__
|
|
c@5
|
11
|
|
c@5
|
12 #include <iostream>
|
|
c@7
|
13 #include <cmath>
|
|
c@7
|
14 #include <vector>
|
|
c@7
|
15 #include <iostream>
|
|
c@7
|
16 #include "FIRFilter.h"
|
|
c@7
|
17 #include "WindowFunction.h"
|
|
c@7
|
18 #include <cassert>
|
|
c@5
|
19
|
|
c@5
|
20 class NoveltyCurve{
|
|
c@5
|
21 float m_samplingFrequency;
|
|
c@7
|
22 int m_fftLength;
|
|
c@5
|
23 int m_blockSize;
|
|
c@5
|
24 int m_numberOfBlocks;
|
|
c@5
|
25 int m_compressionConstant;
|
|
c@5
|
26 int m_numberOfBands;
|
|
c@5
|
27 int * m_bandBoundaries;
|
|
c@5
|
28 int m_hannLength;
|
|
c@7
|
29 float * m_bandSum;
|
|
c@5
|
30
|
|
c@5
|
31 void initialise();
|
|
c@5
|
32 void cleanup();
|
|
c@7
|
33 float calculateMax(std::vector< std::vector<float> > &spectrogram);
|
|
c@7
|
34 void subtractLocalAverage(std::vector<float> &noveltyCurve);
|
|
c@7
|
35 void smoothedDifferentiator(std::vector< std::vector<float> > &spectrogram, int smoothLength);
|
|
c@7
|
36 void halfWaveRectify(std::vector< std::vector<float> > &spectrogram);
|
|
c@5
|
37
|
|
c@5
|
38 public:
|
|
c@7
|
39 std::vector<float> data;
|
|
c@5
|
40
|
|
c@7
|
41 NoveltyCurve(float samplingFrequency, int fftLength, int numberOfBlocks, int compressionConstant);
|
|
c@5
|
42 ~NoveltyCurve();
|
|
c@7
|
43 std::vector<float> spectrogramToNoveltyCurve(std::vector< std::vector<float> > &spectrogram);
|
|
c@5
|
44 };
|
|
c@5
|
45
|
|
c@5
|
46 #endif /* defined(__Tempogram__NoveltyCurve__) */
|