diff chromamethods.cpp @ 80:026a5c0ee2c2 matthiasm-plugin

bins per semitone can now be chosen in chromamethods.h
author Matthias Mauch <mail@matthiasmauch.net>
date Thu, 11 Nov 2010 15:11:05 +0900
parents ba930176df5b
children e5c16976513d
line wrap: on
line diff
--- a/chromamethods.cpp	Thu Nov 11 10:29:35 2010 +0900
+++ b/chromamethods.cpp	Thu Nov 11 15:11:05 2010 +0900
@@ -105,7 +105,7 @@
 
 bool logFreqMatrix(int fs, int blocksize, float *outmatrix) {
 	
-    int binspersemitone = 3; // this must be 3
+    int binspersemitone = nBPS; 
     int minoctave = 0; // this must be 0
     int maxoctave = 7; // this must be 7
     int oversampling = 80;
@@ -128,14 +128,14 @@
     int maxMIDI = 21 + maxoctave * 12; // this includes one additional semitone!
     vector<float> cq_f;
     float oob = 1.0/binspersemitone; // one over binspersemitone
-    cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI-69))); // 0.083333 is approx 1/12
-    cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI+oob-69)));
-    for (int i = minMIDI + 1; i < maxMIDI; ++i) {
-        for (int k = -1; k < 2; ++k)	 {
+    // cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI-69))); // 0.083333 is approx 1/12
+    // cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI+oob-69)));
+    for (int i = minMIDI; i < maxMIDI; ++i) {
+        for (int k = 0; k < binspersemitone; ++k)	 {
             cq_f.push_back(440 * pow(2.0,0.083333333333 * (i+oob*k-69)));
         }
     }
-    cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI-oob-69)));
+    // cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI-oob-69)));
     cq_f.push_back(440 * pow(2.0,0.083333 * (maxMIDI-69)));
 
     int nFFT = fft_f.size();
@@ -171,7 +171,7 @@
 }
 
 void dictionaryMatrix(float* dm, float s_param) {
-    int binspersemitone = 3; // this must be 3
+    int binspersemitone = nBPS;
     int minoctave = 0; // this must be 0
     int maxoctave = 7; // this must be 7
     // float s_param = 0.7;
@@ -181,14 +181,14 @@
     int maxMIDI = 21 + maxoctave * 12; // this includes one additional semitone!
     vector<float> cq_f;
     float oob = 1.0/binspersemitone; // one over binspersemitone
-    cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI-69))); // 0.083333 is approx 1/12
-    cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI+oob-69)));
-    for (int i = minMIDI + 1; i < maxMIDI; ++i) {
-        for (int k = -1; k < 2; ++k)	 {
+    // cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI-69))); // 0.083333 is approx 1/12
+    // cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI+oob-69)));
+    for (int i = minMIDI; i < maxMIDI; ++i) {
+        for (int k = 0; k < binspersemitone; ++k)	 {
             cq_f.push_back(440 * pow(2.0,0.083333333333 * (i+oob*k-69)));
         }
     }
-    cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI-oob-69)));
+    // cq_f.push_back(440 * pow(2.0,0.083333 * (minMIDI-oob-69)));
     cq_f.push_back(440 * pow(2.0,0.083333 * (maxMIDI-69)));
 
     float curr_f;