Master Sync: Short loops on beatmapped tracks go out of sync

Bug #1449747 reported by Owen Williams
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Medium
Unassigned

Bug Description

If a track has a non-constant beatgrid, and I create a 4-beat loop with master sync on, the loop very quickly goes out of sync with other tracks. This is because the bpm of the beatmapped track is a rolling average.

Possible solutions:
* Sync phase on every loop
* More-aggressive error-control when loops are enabled. (con: could oscillate pretty badly)
* Calibrate the out point of the loop so it's in sync even if the out point is not on the beat.
* Calculate a constant bpm that will keep the loop exactly in sync on the in and out, but only mostly in sync the rest of the time.

My first choice right now is to sync phase on every loop, but I suspect that might cause the playhead to seek backward before the loop, which will either cause the loop to be disabled or some sort of weird backwards jerky thing.

This is a hard problem.

Owen Williams (ywwg)
Changed in mixxx:
milestone: none → 1.12.0
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Please give an example how to reproduce the issue.

Not sure if I got the point exactly right, but here some comments and questions:
* Sync phase on every loop
   -> what does it mean?
* More-aggressive error-control when loops are enabled. (con: could oscillate pretty badly)
  -> that sounds not a good idea
* Calibrate the out point of the loop so it's in sync even if the out point is not on the beat.
 -> this sounds reasonable
* Calculate a constant bpm that will keep the loop exactly in sync on the in and out, but only mostly in sync the rest of the time.
 -> sounds hard

Lets step back and view at both tracks as a constant streams.

Beatlooped track, is a stream with a const bpm, right? At least the distance from loop end and start is const.

If the looped track is the master, then it should be correct to use the average beats/ loop length, for short loops.

If the the other track is the master, with a non const beats, you hit a pending issue here here that the a non const beat master does not work very well without loops as well.

I have not tested it intensive with the latest master, but from my last test, the syncing was too aggressive. I think the algorithm must not sync against the beats in the beatgrid but to a "sync grid" that takes different condition into account
1. conts shifts over the track, (because the drummer gets tired)
2. breaks and short phases with differnt beats
3. Garbage at the track start/end (I lately suffered this issue)

IMHO using a non const track as sync master is a rare use-case. The real issue is that you like to have a synced transition from a non const beat track to an other. Both tracks may start/end with a beatloop (The issue from this bug). This should work like a charm.

We should optimize mainly for that that issue. hopfully the other use-cases will benefit from it.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

I think that has been finally fixed with the new syncing code in 2.3 alpha

Changed in mixxx:
status: Confirmed → Fix Released
status: Fix Released → Fix Committed
milestone: 2.0.0 → 2.3.0
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/7991

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.