comparison TempogramPlugin.cpp @ 52:eff9dc53de62

* Fixed bug with s parameter (y axis bin labels of cyclic tempogram)
author Carl Bussey <c.bussey@se10.qmul.ac.uk>
date Tue, 30 Sep 2014 16:37:36 +0100
parents c7cc649dc9b6
children b373b9da2de0
comparison
equal deleted inserted replaced
51:c7cc649dc9b6 52:eff9dc53de62
367 d1.sampleType = OutputDescriptor::FixedSampleRate; 367 d1.sampleType = OutputDescriptor::FixedSampleRate;
368 d_sampleRate = tempogramInputSampleRate/m_tempogramHopSize; 368 d_sampleRate = tempogramInputSampleRate/m_tempogramHopSize;
369 d1.sampleRate = d_sampleRate > 0.0 && !isnan(d_sampleRate) ? d_sampleRate : 0; 369 d1.sampleRate = d_sampleRate > 0.0 && !isnan(d_sampleRate) ? d_sampleRate : 0;
370 vector< vector <unsigned int> > logBins = calculateTempogramNearestNeighbourLogBins(); 370 vector< vector <unsigned int> > logBins = calculateTempogramNearestNeighbourLogBins();
371 if (!logBins.empty()){ 371 if (!logBins.empty()){
372 float scale = pow(2,floor(60/logBins[0][0])); 372 float scale = pow(2,ceil(log2(60/binToBPM(logBins[0][0]))));
373 373 for(int i = 0; i < m_cyclicTempogramOctaveDivider; i++){
374 cerr << m_cyclicTempogramOctaveDivider << endl; 374 float s = scale*binToBPM(logBins[0][i])/m_cyclicTempogramReferenceBPM;
375 for(int i = 0; i < m_cyclicTempogramNumberOfOctaves; i++){
376 float s = fmod(binToBPM(logBins[0][i]), m_cyclicTempogramReferenceBPM)*scale;
377 d1.binNames.push_back(floatToString(s)); 375 d1.binNames.push_back(floatToString(s));
378 cerr << i << endl;
379 //cerr << m_cyclicTempogramOctaveDivider << " " << s << endl; 376 //cerr << m_cyclicTempogramOctaveDivider << " " << s << endl;
380 } 377 }
381 } 378 }
382 d1.hasDuration = false; 379 d1.hasDuration = false;
383 list.push_back(d1); 380 list.push_back(d1);