Quantise doesn't work when tempos differ
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
Medium
|
Daniel Schürmann |
Bug Description
First noticed this with tracks of tempo of double/half each other, which is effectively the same speed with double beats on one deck channel.
So when playing these two tracks of exactly half/double tempo I notice that trigger Play or HotCue with Quantise Enabled the beats were not lined up as they should be.
Further investigation, purposely using tracks of differing tempo, which shouldn't matter as the triggered beat should always line up with the nearest beat to when playback of that position is triggered, and I think I've managed to get a little more info which may help. Hopefully you can understand this but it seems that difference in BPM is being taken into account to align the beats when it shouldn't have anything to do with it.
Why I think this:
Load a track in A with lower BPM than in B (10% or more and you can start noticing it fairly easy.)
If A is playing triggering HotCues on B (triggering faster track to slower track) and if triggered late they play late, triggered early they play early.
If B is playing and you trigger A then you get the exact reverse (trigger early and it plays late etc.)
Both of these seem to get more pronounced as the difference in the BPM between the two tracks increases.
So it seems to me there may be some funny code which uses the difference in BPM between the two decks in this function although it should be entirely BPM independent. Even if this is not the cause there is definitely something wrong here!
Tested and observed in 2.1.0 & 2.1.1 & #1715
Always using Ubuntu Studio 18.04
description: | updated |
Changed in mixxx: | |
milestone: | none → 2.3.0 |
status: | Confirmed → Fix Committed |
Changed in mixxx: | |
status: | Fix Committed → Fix Released |
We have special code for handling half/double sync situations, but I think it may have been a bad idea and a mis-feature. I would be supportive of removing that special casing.