Mercurial > hg > qm-dsp
comparison dsp/tonal/TonalEstimator.cpp @ 482:cbe668c7d724
Untabify, indent, tidy
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Fri, 31 May 2019 11:02:28 +0100 |
parents | d5014ab8b0e5 |
children | 7992d0923626 |
comparison
equal
deleted
inserted
replaced
481:de5f557a270f | 482:cbe668c7d724 |
---|---|
22 #define PI (3.14159265358979232846) | 22 #define PI (3.14159265358979232846) |
23 #endif | 23 #endif |
24 | 24 |
25 TonalEstimator::TonalEstimator() | 25 TonalEstimator::TonalEstimator() |
26 { | 26 { |
27 m_Basis.resize(6); | 27 m_Basis.resize(6); |
28 | 28 |
29 int i = 0; | 29 int i = 0; |
30 | 30 |
31 | 31 |
32 // circle of fifths | 32 // circle of fifths |
33 m_Basis[i].resize(12); | 33 m_Basis[i].resize(12); |
34 for (int iP = 0; iP < 12; iP++) | 34 for (int iP = 0; iP < 12; iP++) { |
35 { | 35 m_Basis[i][iP] = std::sin( (7.0 / 6.0) * iP * PI); |
36 m_Basis[i][iP] = std::sin( (7.0 / 6.0) * iP * PI); | 36 } |
37 } | 37 |
38 | 38 i++; |
39 i++; | |
40 | 39 |
41 m_Basis[i].resize(12); | 40 m_Basis[i].resize(12); |
42 for (int iP = 0; iP < 12; iP++) | 41 for (int iP = 0; iP < 12; iP++) { |
43 { | 42 m_Basis[i][iP] = std::cos( (7.0 / 6.0) * iP * PI); |
44 m_Basis[i][iP] = std::cos( (7.0 / 6.0) * iP * PI); | 43 } |
45 } | 44 |
46 | 45 i++; |
47 i++; | 46 |
48 | 47 |
49 | 48 // circle of major thirds |
50 // circle of major thirds | 49 m_Basis[i].resize(12); |
51 m_Basis[i].resize(12); | 50 for (int iP = 0; iP < 12; iP++) { |
52 for (int iP = 0; iP < 12; iP++) | 51 m_Basis[i][iP] = 0.6 * std::sin( (2.0 / 3.0) * iP * PI); |
53 { | 52 } |
54 m_Basis[i][iP] = 0.6 * std::sin( (2.0 / 3.0) * iP * PI); | 53 |
55 } | 54 i++; |
56 | |
57 i++; | |
58 | 55 |
59 m_Basis[i].resize(12); | 56 m_Basis[i].resize(12); |
60 for (int iP = 0; iP < 12; iP++) | 57 for (int iP = 0; iP < 12; iP++) { |
61 { | 58 m_Basis[i][iP] = 0.6 * std::cos( (2.0 / 3.0) * iP * PI); |
62 m_Basis[i][iP] = 0.6 * std::cos( (2.0 / 3.0) * iP * PI); | 59 } |
63 } | |
64 | 60 |
65 i++; | 61 i++; |
66 | 62 |
67 | 63 |
68 // circle of minor thirds | 64 // circle of minor thirds |
69 m_Basis[i].resize(12); | 65 m_Basis[i].resize(12); |
70 for (int iP = 0; iP < 12; iP++) | 66 for (int iP = 0; iP < 12; iP++) { |
71 { | 67 m_Basis[i][iP] = 1.1 * std::sin( (3.0 / 2.0) * iP * PI); |
72 m_Basis[i][iP] = 1.1 * std::sin( (3.0 / 2.0) * iP * PI); | 68 } |
73 } | 69 |
74 | 70 i++; |
75 i++; | |
76 | 71 |
77 m_Basis[i].resize(12); | 72 m_Basis[i].resize(12); |
78 for (int iP = 0; iP < 12; iP++) | 73 for (int iP = 0; iP < 12; iP++) { |
79 { | 74 m_Basis[i][iP] = 1.1 * std::cos( (3.0 / 2.0) * iP * PI); |
80 m_Basis[i][iP] = 1.1 * std::cos( (3.0 / 2.0) * iP * PI); | 75 } |
81 } | |
82 | 76 |
83 } | 77 } |
84 | 78 |
85 TonalEstimator::~TonalEstimator() | 79 TonalEstimator::~TonalEstimator() |
86 { | 80 { |
87 } | 81 } |
88 | 82 |
89 TCSVector TonalEstimator::transform2TCS(const ChromaVector& rVector) | 83 TCSVector TonalEstimator::transform2TCS(const ChromaVector& rVector) |
90 { | 84 { |
91 TCSVector vaRetVal; | 85 TCSVector vaRetVal; |
92 vaRetVal.resize(6, 0.0); | 86 vaRetVal.resize(6, 0.0); |
93 | 87 |
94 for (int i = 0; i < 6; i++) | 88 for (int i = 0; i < 6; i++) { |
95 { | 89 for (int iP = 0; iP < 12; iP++) { |
96 for (int iP = 0; iP < 12; iP++) | 90 vaRetVal[i] += m_Basis[i][iP] * rVector[iP]; |
97 { | 91 } |
98 vaRetVal[i] += m_Basis[i][iP] * rVector[iP]; | 92 } |
99 } | 93 |
100 } | 94 return vaRetVal; |
101 | |
102 return vaRetVal; | |
103 } | 95 } |