> Hi Tobisas, > > thanks for all the help! > > About BeatMatrix::getBpm() : > Actually it is true that one should need the full lenght of the song to > compute correct bpm. Anyway, this is not the case for tempo and beat tracker > from QM. If you use them, the first beat coincides (more or less) with the > first nonzero samples, while the last one is always at the end. > I did some test and found in any case that temptracker:0 calculated bpm (got > from BeatMatrix->getBpm() ) is more or less the same from legacy mixxx bpm > detection from soundtouch. Your findings are more or less right. But this would not be an improvement to Mixxx's BPM detection. Using the faulty BeatMatrix->getBpm() along with QM plugin, Mixxx's BPM detection is often wrong up to +-3 BPM in may case. I have counted the beats manually and all my values coincide with Traktor (+-0.2 BPM) Although QM does not need the full length of a song, it's impressive to see that the average of all local BPMs seems to yield the correct BPM for 95% of my songs. With a correct BPM, I would be able to burn "emergency CDs" for DJing with correct BPM values on it. This might be quite useful for persons who are lazy in beat matching but also for beginners. An incorrect BPM of +-3 is too large and error-prone when it comes to harmonic mixing (assuming key lock off). > I know that this is not a proof, but at least it is a suggestion :) > > About average of all local BPMs vs BeatMatrix::getBpm() : > In this case, I think their values coincides. "I have discovered a truly > marvelous proof of this, which this margin is too narrow to contain" (cit. P. > de Fermat) :p I'm not sure what you mean by the citation. But I think, the average is good way to go for at least one reasons: If I count the beats manually, I measure the time to count one or two bars (4 or 8 beats). It is very likely that there are some very small local BPM variations during the measure. The manual computation of the BPM (240.0/