Mercurial > hg > nnls-chroma
comparison chromamethods.h @ 27:690bd9148467 matthiasm-plugin
* Split out some common code into chromamethods.cpp from NNLSChroma.cpp
(the latter is destined to become the chroma plugin only, eventually)
author | Chris Cannam |
---|---|
date | Thu, 21 Oct 2010 16:34:58 +0100 |
parents | |
children | cf8898a0174c |
comparison
equal
deleted
inserted
replaced
26:906d3705536d | 27:690bd9148467 |
---|---|
1 | |
2 #ifndef _CHROMA_METHODS_H_ | |
3 #define _CHROMA_METHODS_H_ | |
4 | |
5 #include <vector> | |
6 #include <string> | |
7 | |
8 const int nNote = 256; | |
9 | |
10 extern std::vector<float> SpecialConvolution(std::vector<float> convolvee, std::vector<float> kernel); | |
11 extern void dictionaryMatrix(float* dm); | |
12 extern std::vector<std::string> chordDictionary(std::vector<float> *mchorddict); | |
13 extern bool logFreqMatrix(int fs, int blocksize, float *outmatrix); | |
14 | |
15 static const char* notenames[24] = { | |
16 "A (bass)","Bb (bass)","B (bass)","C (bass)","C# (bass)","D (bass)","Eb (bass)","E (bass)","F (bass)","F# (bass)","G (bass)","Ab (bass)", | |
17 "A","Bb","B","C","C#","D","Eb","E","F","F#","G","Ab"}; | |
18 | |
19 static const char* bassnames[12][12] ={ | |
20 {"A","","B","C","C#","D","","E","","F#","G","G#"}, | |
21 {"Bb","","C","Db","D","Eb","","F","","G","Ab","A"}, | |
22 {"B","","C#","D","D#","E","","F#","","G#","A","A#"}, | |
23 {"C","","D","Eb","E","F","","G","","A","Bb","B"}, | |
24 {"C#","","D#","E","E#","F#","","G#","","A#","B","B#"}, | |
25 {"D","","E","F","F#","G","","A","","B","C","C#"}, | |
26 {"Eb","","F","Gb","G","Ab","","Bb","","C","Db","D"}, | |
27 {"E","","F#","G","G#","A","","B","","C#","D","D#"}, | |
28 {"F","","G","Ab","A","Bb","","C","","D","Eb","E"}, | |
29 {"F#","","G#","A","A#","B","","C#","","D#","E","E#"}, | |
30 {"G","","A","Bb","B","C","","D","","E","F","F#"}, | |
31 {"Ab","","Bb","Cb","C","Db","","Eb","","F","Gb","G"} | |
32 }; | |
33 | |
34 static const float hammingwind[19] = {0.0082, 0.0110, 0.0191, 0.0316, 0.0470, 0.0633, 0.0786, 0.0911, 0.0992, 0.1020, 0.0992, 0.0911, 0.0786, 0.0633, 0.0470, 0.0316, 0.0191, 0.0110, 0.0082}; | |
35 static const float basswindow[] = {0.001769, 0.015848, 0.043608, 0.084265, 0.136670, 0.199341, 0.270509, 0.348162, 0.430105, 0.514023, 0.597545, 0.678311, 0.754038, 0.822586, 0.882019, 0.930656, 0.967124, 0.990393, 0.999803, 0.995091, 0.976388, 0.944223, 0.899505, 0.843498, 0.777785, 0.704222, 0.624888, 0.542025, 0.457975, 0.375112, 0.295778, 0.222215, 0.156502, 0.100495, 0.055777, 0.023612, 0.004909, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000}; | |
36 static const float treblewindow[] = {0.000350, 0.003144, 0.008717, 0.017037, 0.028058, 0.041719, 0.057942, 0.076638, 0.097701, 0.121014, 0.146447, 0.173856, 0.203090, 0.233984, 0.266366, 0.300054, 0.334860, 0.370590, 0.407044, 0.444018, 0.481304, 0.518696, 0.555982, 0.592956, 0.629410, 0.665140, 0.699946, 0.733634, 0.766016, 0.796910, 0.826144, 0.853553, 0.878986, 0.902299, 0.923362, 0.942058, 0.958281, 0.971942, 0.982963, 0.991283, 0.996856, 0.999650, 0.999650, 0.996856, 0.991283, 0.982963, 0.971942, 0.958281, 0.942058, 0.923362, 0.902299, 0.878986, 0.853553, 0.826144, 0.796910, 0.766016, 0.733634, 0.699946, 0.665140, 0.629410, 0.592956, 0.555982, 0.518696, 0.481304, 0.444018, 0.407044, 0.370590, 0.334860, 0.300054, 0.266366, 0.233984, 0.203090, 0.173856, 0.146447, 0.121014, 0.097701, 0.076638, 0.057942, 0.041719, 0.028058, 0.017037, 0.008717, 0.003144, 0.000350}; | |
37 | |
38 static const float sinvalue = 0.866025404; | |
39 static const float cosvalue = -0.5; | |
40 | |
41 #include "nnls.h" | |
42 | |
43 #endif | |
44 |