Move beatgrid to the current alignment of tracks

Bug #1180052 reported by Nick Tran
24
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Wishlist
kramer

Bug Description

I reckon this use case must be very common:

1. You play a track on the first deck.

2. You want to beat-mix in another track, so you load a new track to the second deck and hit "Sync".

3. When you play the track you hear the famous "double-kick-glitch" - the beat grid of the new track are off with just a tiny bit.

4. You correct this by "Nudge" (temporary higher/lower pitch) until it sounds good.

5. You have now corrected the beat grid of the new track, but how can we save this updated beat-grid?

==> We need a new way of updating the beat grid of the second track: A button that offsets the beatgrid with an amount that equals the current difference between the two beatgrids. That way, we can just nudge the tracks until it sounds good, hit adjust, and we are done.

Have I missed any simple way of doing this? Otherwise I reckon this must be a *very* common use case?

RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: New → Confirmed
importance: Undecided → Wishlist
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Hi Nick,

Thank you for the good point!
I can confirm the issue.

We have already the adjust beatgrid button "|||".
Maybe we could add a right click for that "sync beatgrid"

But how to find out which of both tracks is some ms off.
This could easily become a never ending story if you have some tracks adjusted to an early beatgrid and some to a late beatgrid.
Who will be the master?

I wander if this is the analyzers fault or the fault of our Sync feature?
Maybe your idea is only a workaround for a bug? How are the competitors Sync results?
Or does it depend on Bug #1017260?

Kind regards,

Daniel

Revision history for this message
Nick Tran (n321203) wrote :

Hi there!

A few thoughts:

- I agree, a right-click on the "|||" (adjust beatgrid button) would be a good way of implementing this.

- I would suggest that if the user right-click on "|||" on the second deck, the beatgrid for the second track ("beatgrid 2") should be adjusted with an amount that is equal to the difference between a beat on beatgrid 2 and the closest beat on beatgrid 1 (i.e, it could be offset both positive and negative). That way, it's up to the DJ to select which track is off by a few ms.

- I don't think it's the analyzers fault – or I should say – I think there will be a need for this feature no matter how good the analyzers are. For example, some tracks have a very distinct kick drum (which the analyzers will pick up easily) but others have more of a "thhummp" – and in these cases the DJ might wanna try to nudge the "thump" forward and backward to hear what sounds best (there is no "objective perfect match" in this case). And when the DJ is happy with the alignment - with should let him/her adjust the beatgrid accordingly.

- I can't seem to reproduce Bug 1017260 here so I'm guessing it is not related to that bug.

Revision history for this message
Owen Williams (ywwg) wrote :

So the idea is, if you right-click "align beatgrid," instead of syncing the beatgrid to the current playposition, sync the beatgrid so the nearest beat lines up with the other track's nearest beat? Maybe I can take some code from the Sync button to do this.

Revision history for this message
Nick Tran (n321203) wrote :

Yes, exactly.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Would be a nice addition to 1.12. Any takers?

tags: added: easy
removed: wishlist
tags: added: beatgrid
Revision history for this message
Owen Williams (ywwg) wrote :

This is not quite so simple -- which track is "correct"? The playing track or the new track? You could end up with a situation where the beatgrid gets more and more misaligned as each new track corrects for the cumulative error of all the previous tracks.

That said, this would be easy to implement with master sync, because the beat alignment is well-communicated.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

We could bail on that question and leave it up to the user. If they right-clicked the deck 1 "|||" button then make the minimum adjustment necessary to the deck 1 beatgrid so that the current beat distance matches the master beat distance.

This is also kind of a way for the user to "save" their "user tweaking sync" adjustment to the beatgrid.

Revision history for this message
Owen Williams (ywwg) wrote :

Maybe this doesn't even need to be a right-click event. If master sync is on, and ||| is pushed, it's pretty clear what the user wants. In fact maybe we could do that even if master sync isn't on?

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I would say if the deck is playing and you hit "|||" then you probably don't want the beatgrid aligned to the current position so that might make sense. If the deck is stopped I think it's less clear. I still somewhat prefer a left/right click split because you don't have to think as much about what a given button does under what conditions.

Revision history for this message
Owen Williams (ywwg) wrote :

If the deck is stopped I think it's assumed that the grid will align to the current playhead position. Personally I think that's an intuitive difference, but I'm not everybody in aggregate :)

RJ Skerry-Ryan (rryan)
tags: added: sync
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I think this would be nice to get done in 1.12.0. It should be a minor, low-risk change to add a right-click handler.

Revision history for this message
Balazs Racz (balazs-racz) wrote :

Hi,

Please excuse me if i use wrong terminology, i'm not an experienced DJ. I have run into this problem and I have a patch that might solve it.

However, I don't exactly understand the original solution proposed. Maybe I don't understand what "nudge" is. The original reporter said that they would want to change the pitch slightly compared to what the sync button did. However, that would make the two track run at a different bpm, so even if that would temporary sync the kicks, there would now be a drift, so they would go out of sync again.

The solution I implemented is a pair of new actions:
- beats_translate_plus
- beats_translate_minus
that act on a given deck and move the beatgrid forward and backward slightly. You can put it on any pair of buttons, an encoder input, or the jogwheel (I use it with a modifier button from javascript).

The workflow to fix a double-kick is as follows:
- you play the second track on the headphone, hit sync, realize the double-kick
- you look at the waveforms and decide which track's beat marks are off the music
- for the appropriate deck you switch the jogwheel into beat-adjust-mode, then move the beatgrid until you see on the screen that it is in the correct position.
- hit sync on the second deck again (this could be automated from javascript)
- problem should be fixed
- adjusted beatgrid will be saved by mixxx automatically so next reload of the track will have the corrected beatgrid

The important thing to note is that since the new operation does not impact playback, only the beatgrid, it is safe to apply it to the currently audible track (aka deck 1) as well, not only to the inaudible deck.

Is this a plausible fix, or am I misunderstanding something? If you think it is valuable, I can submit the patch.

thanks,
Balazs

kramer (default-kramer)
Changed in mixxx:
assignee: nobody → kramer (default-kramer)
Revision history for this message
Sergey Ukolov (zezic) wrote :

If we talk about unifed grid align for all tracks and worry about personal user offsets we can use super-short tick metronome to tweak grid with maximum accuracy. Just add some button in master section than enables metronome ticking with master tempo.

RJ Skerry-Ryan (rryan)
Changed in mixxx:
milestone: none → 1.12.0
status: Confirmed → Fix Committed
RJ Skerry-Ryan (rryan)
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/7033

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.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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