using closest beat for quantized looping breaks beatmatching

Bug #905106 reported by Owen Williams
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Medium
RJ Skerry-Ryan
1.10
Fix Released
Medium
RJ Skerry-Ryan

Bug Description

re: revision 2984:

 "Make quantized beatloops start on the closest beat instead of the previous beat."

I was in the middle of a mix and pressed a hotkey to create an 8-bar loop. Because the closest beat was the next beat, Mixxx created a loop starting at the next beat. The playposition was therefore outside of the loop, so Mixxx resynced the position to be inside the loop, causing a break in sync.

I'm not sure if the previous behavior was more correct, or if we have to add a check to see if we are currently playing at the time the loop gets created. I think this might be a case where using the previous beat was the right thing to do. That, or somehow has to let the playposition reach the looping boundaries before enforcing them.

Related branches

Owen Williams (ywwg)
description: updated
Revision history for this message
RJ Skerry-Ryan (rryan) wrote : Re: [Bug 905106] [NEW] using closest beat for quantized looping breaks beatmatching

I just ran into the same problem when doing some mixing tonight. Not only
does it break sync but it also causes the deck to jump within the loop
which to the audience is a glitch.

On Thu, Dec 15, 2011 at 11:48 PM, Owen Williams <email address hidden> wrote:

> Public bug reported:
>
> re: revision 2984:
>
> "Make quantized beatloops start on the closest beat instead of the
> previous beat."
>
> I was in the middle of a mix and pressed a hotkey to create an 8-bar
> loop. Because the closest beat was the next beat, Mixxx created a loop
> starting at the next beat. The playposition was therefore outside of
> the loop, so Mixxx resynced the position to be inside the loop, causing
> a break in sync.
>
> I'm not sure if the previous behavior was more correct, or if we have to
> add a check to see if we are currently playing at the time the loop gets
> created. I think this might be a case where using the previous beat was
> the right thing to do. That, or somehow has to let the playposition
> reach the looping boundaries before enforcing them.
>
> ** Affects: mixxx
> Importance: Undecided
> Status: New
>
> ** Description changed:
>
> re: revision 2984:
>
> - Make quantized beatloops start on the closest beat instead of the
> - previous beat.
> + "Make quantized beatloops start on the closest beat instead of the
> + previous beat."
>
> -
> - I was in the middle of a mix and pressed a hotkey to create an 8-bar
> loop. Because the closest beat was the next beat, Mixxx created a loop
> starting at the next beat. The playposition was therefore outside of the
> loop, so Mixxx resynced the position to be inside the loop, causing a break
> in sync.
> + I was in the middle of a mix and pressed a hotkey to create an 8-bar
> + loop. Because the closest beat was the next beat, Mixxx created a loop
> + starting at the next beat. The playposition was therefore outside of
> + the loop, so Mixxx resynced the position to be inside the loop, causing
> + a break in sync.
>
> I'm not sure if the previous behavior was more correct, or if we have to
> add a check to see if we are currently playing at the time the loop gets
> created. I think this might be a case where using the previous beat was
> the right thing to do. That, or somehow has to let the playposition
> reach the looping boundaries before enforcing them.
>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/905106
>
> Title:
> using closest beat for quantized looping breaks beatmatching
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/905106/+subscriptions
>

RJ Skerry-Ryan (rryan)
Changed in mixxx:
milestone: none → 1.10.0
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

This is what I was talking about in my comment on bug #881905: "The only thing I would want to change is to have pre-sized loops start at the closest beat instead of the previous one, but currently doing that causes the deck to jump to the start of the loop, breaking the rhythm. To properly do that, we would need to prevent that initial jump."

That's why I didn't commit that particular change. Unless we can easily prevent that initial jump, I'm in favor of rolling back the change in r2984 of the 1.10 branch.

Changed in mixxx:
milestone: 1.10.0 → none
status: Confirmed → New
RJ Skerry-Ryan (rryan)
Changed in mixxx:
assignee: nobody → RJ Ryan (rryan)
status: New → Confirmed
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

For the record, "somehow has to let the playposition reach the looping boundaries before enforcing them" is the correct way to fix this bug for good. (The previous behavior would start on the beat before the one you actually want.)

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

The closest-beat behavior causes this out of sync issue on all loops (not just beatloops). I dug in a little bit and it looks like there is a difference in the logic used in LoopingControl and the RAMAN. The RAMAN has logic that prevents seeking if the deck is going forward and before the loop-in or going in reverse and after the loop-out. The LoopingControl did not have this same logic. Fixing LoopIngControl to have the same logic as the RAMAN prevented the seeking-while-outside-the-loop issue that causes this desync / glitch.

I committed r2998 which fixes the bug while keeping the closest-beat behavior.

Changed in mixxx:
status: Confirmed → Fix Committed
Revision history for this message
Phillip Whelan (pwhelan) wrote :

I knew there was a reason I had done it the way I did initially. Also,msince most of the time when I mix I am improvising. Iusually decide to add a beatloop after hearing the beginning of the section I want to loop. Adding the beatloop from before the dsired section would require intimate memorization of the current song, in my opinion.

Can anyone think of a good way to handle both useses?

Revision history for this message
RJ Skerry-Ryan (rryan) wrote : Re: [Bug 905106] Re: using closest beat for quantized looping breaks beatmatching

As proposed in Bug #881905 a preference option for before/after/closest
might be the way to satisfy everyone.

On Fri, Dec 16, 2011 at 5:02 PM, Phillip Whelan
<email address hidden>wrote:

> I knew there was a reason I had done it the way I did initially.
> Also,msince most of the time when I mix I am improvising. Iusually
> decide to add a beatloop after hearing the beginning of the section I
> want to loop. Adding the beatloop from before the dsired section would
> require intimate memorization of the current song, in my opinion.
>
> Can anyone think of a good way to handle both useses?
>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/905106
>
> Title:
> using closest beat for quantized looping breaks beatmatching
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/905106/+subscriptions
>

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/6182

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.