Disable keylock when scratching with scratch2_enable.

Bug #1174578 reported by RJ Skerry-Ryan
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Low
Unassigned
1.11
Won't Fix
Low
Unassigned
2.0
Fix Released
Low
Owen Williams

Bug Description

We disable keylock for VC scratching and mouse scratching so we ought to do it for controller scratching as well.

Some controller scripts (i.e. the Mixtrack Pro preset) already do this in script.

Related branches

RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: New → Confirmed
importance: Undecided → Low
tags: added: keylock scratching
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

If we want to do it across the board, why not just have the scratch2_enable CO do it when it's set to 1?

Revision history for this message
RJ Skerry-Ryan (rryan) wrote : Re: [Bug 1174578] Re: Disable keylock when scratching with scratch2_enable.

Mouse scratching and vinyl control scratching don't use
scratch2_enable. If you look at RateController::calculateRate, the
scratching bool pointer argument is what EngineBuffer looks at to
decide whether to disable keylock temporarily. The patch for this is a
1-liner -- the question is whether we should do it.

On Tue, Apr 30, 2013 at 1:56 AM, Sean M. Pappalardo
<email address hidden> wrote:
> If we want to do it across the board, why not just have the
> scratch2_enable CO do it when it's set to 1?
>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/1174578
>
> Title:
> Disable keylock when scratching with scratch2_enable.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/1174578/+subscriptions

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

I don't see why not. It doesn't make much sense to scratch with key lock on (unless someone thinks that's a cool effect,) so I'd say just go ahead.

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

I vote yes, we should do this for controllers. The code is already in there and there is no world where scratching while pitch-locked makes sense.

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

I was worried about a controller getting stuck in scratch mode but Sean pointed out that if a controller gets stuck in scratch mode then it will most likely just stop so the preset and user have bigger problems in that case. :)

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

Seems to work fine for me. The only improvement I'd make is to re-enable key lock during the ramp-up after releasing scratching because right now there's an abrupt change.

Changed in mixxx:
status: Fix Committed → In Progress
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Oh, one other use-case: moving-platter controllers that necessarily keep scratch2_enable on all the time (so the deck can accurately track the platter.) We need to provide a way for those controller scripts to make an exception to this auto-disable policy. (Currently that's just the SCS.1d and Numark NS7/V7.)

I wonder if we should move the keylock-disable action to the controllerEngine::scratchEnable so we can add a parameter for keylockDisable?

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

I rolled lp:mixxx r3855 -- Sean pointed out some issues that have convinced me this is not worth messing with right before a release with no beta testing :).

Changed in mixxx:
milestone: 1.11.0 → 1.11.1
Changed in mixxx:
milestone: 1.11.1 → none
Revision history for this message
Thomsen (thomsen) wrote :

My initial description of this bug was this:

Using Mixtrack Pro, Ubuntu 13.04 x64.
Scratch and Keylock on the controller is on.
Touching the plate to "pause" playback or scratching and releasing it again causes stuttering for ½-1 second. The stutter is accompanied by a lot of:

Debug [Engine]: 0x1bf29f0 No read ahead log entries to read from. Case not currently handled.

It only happens when KeyLock is on. The problem is not seen when scratching with the mouse.

The changes in r3855 made the stuttering go away.

With that rolled back, is there any way we can modify the controller script to mimic what happens in the engine?

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

Releasing this bug to someone else.

Changed in mixxx:
assignee: RJ Ryan (rryan) → nobody
importance: Low → Wishlist
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Any thoughts on this for 1.12.0? This is likely quite annoying for controller users.

Changed in mixxx:
status: In Progress → Triaged
importance: Wishlist → Low
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

(not sure why I marked this Wishlist)

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

I think this is what we do already. Enginebuffer checks for is_scratching and disables keylock if is_scratching is true. and ratecontrol checks scratch2_enable when determining whether to set is_scratching. So I'll mark it fixed. If this is actively broken for someone we can reopen.

Changed in mixxx:
status: Triaged → Fix Committed
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

RateControl doesn't set is_scratching for scratch2_enable, just for VC and scratch-controller (mouse scratching).

See the patch I posted above -- it makes exactly that change (scratch2_enable triggers is_scratching true).

Changed in mixxx:
status: Fix Committed → Triaged
Revision history for this message
Thomsen (thomsen) wrote :

This bug was reported by Ryan after a discussion on IRC. The issue that I experienced (see comment #10) seems to be fixed in trunk!

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

So for the moving-platter controllers, how do we know if they are scratching or not? For vinyl I had to write a class that looked at the rates coming out and makes an educated guess: a certain amount of time with the rate not changing = not scratching. Do we have to write this for controllers?

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

I believe this was finally fixed by Owen in this PR:
https://github.com/mixxxdj/mixxx/pull/200

Right Owen?

Changed in mixxx:
status: Triaged → 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/7008

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.