comparison TempogramPlugin.cpp @ 46:eafb3a7f80fb

Fix bin overrun in bpmToBin (proximate cause of bug #1054)
author Chris Cannam
date Mon, 29 Sep 2014 16:19:12 +0100
parents e6a43500629b
children cb79f27f0748
comparison
equal deleted inserted replaced
45:e6a43500629b 46:eafb3a7f80fb
575 float w = (float)bpm/60; 575 float w = (float)bpm/60;
576 float sampleRate = m_inputSampleRate/m_inputStepSize; 576 float sampleRate = m_inputSampleRate/m_inputStepSize;
577 int bin = floor((float)m_tempogramFftLength*w/sampleRate + 0.5); 577 int bin = floor((float)m_tempogramFftLength*w/sampleRate + 0.5);
578 578
579 if(bin < 0) bin = 0; 579 if(bin < 0) bin = 0;
580 else if(bin > m_tempogramFftLength/2.0f) bin = m_tempogramFftLength; 580 else if(bin > m_tempogramFftLength/2.0f) bin = m_tempogramFftLength/2.0f;
581 581
582 return bin; 582 return bin;
583 } 583 }
584 584
585 float TempogramPlugin::binToBPM(const int &bin) const 585 float TempogramPlugin::binToBPM(const int &bin) const