Sorry this doesn’t help OP, but it is related to what @djdminer mentioned.
I looked into the off by one bpm misdetections a bit, by playing with it and watching what engine prime does in it’s sqlite dbs to see what’s going on when it comes to these specific misdetections.
tl;dr analyze your tracks twice to fix these.
I don’t have access to prime’s code, but the problem appears to primarily hit tracks with a bpm like say 122.995
. I can accurately find (at least many) tracks that are problematic with a sql query like this in m.db
:
select * from Track where bpmAnalyzed LIKE "%.99%"
When your track is analyzed the first time since (any) import (including library updates), if the BPM ends is, say, 122.995 then engine will effectively remove the decimals to 122 and copy that incorrect value into another db field (one way this can happen is by coercing a float into an int, better to not use an int though imo) that it appears to take into consideration when reanalyzing them.
Analyze them once to get the off by one bpm. Re-analyze them and the bpm will fix itself.
I have to re-analyze my tracks twice now every time I import from traktor, which I only do to sync cue points from mixed in key because I’m lazy. Doing this overwrites at least some changes I’ve made locally in engine, without warning me. ugh.
I don’t foresee this getting better in the near term, so I started writing a barebones importer from traktor to engine prime that only imports new tracks and adds cue points if none exist. It kind of works, but I want my time back as I shouldn’t have to do this.
Anyway, this bpm detection problem is such an annoying and obvious bug, I’d be extremely surprised if Denon didn’t catch this before release.
I plan on looking into updating the column myself during import to the rounded number, will report back if it works.
I’d love to have access to denon employees to ask very technical questions to help speed me along, hint hint @DenonDJ