Clearing hotcue while previewing it causes play button to get stuck.

Bug #790849 reported by Kiefer Waight
14
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
1.9
Fix Released
Medium
RJ Skerry-Ryan

Bug Description

When holding a hot cue from paused, the track begins to play until released. If you hold down a hot cue with the left mouse button, then press the right mouse button simultaneously, the play button will stay on the "on" position . There is no way to exit play the button just bounces back to the on position. Sampler decks do the same.

- Upon further analysis I was able to exit play by pressing the cue button or creating a new hot cue

I am using Windows 7 32-bit with the latest branch compiled 5-31-2011

Related branches

Revision history for this message
Phillip Whelan (pwhelan) wrote :

I've pretty much nailed down this bug. It happens when a Hotcue is activated (the track was previously paused) and then you hit the play button. Judging from the code this might have been done more as a *feature* than it being an actual bug. For reference, this is the actual offending code, from src/engine/cuecontrol.cpp[649]:

void CueControl::cuePlay(double v) {
    QMutexLocker lock(&m_mutex);

    if (m_bPreviewing && !v) {
    // we're previewing? Then stop previewing and go into normal play mode.
        m_pPlayButton->set(1.0);
        m_bPreviewing = false;
    }

    if (m_bPreviewingHotcue && !v) {
        m_pPlayButton->set(1.0);
        m_bHotcueCancel = true;
    }

    lock.unlock();
}

Where it checks for m_bPreviewingHotcue is where it gets hung up.

Revision history for this message
Phillip Whelan (pwhelan) wrote :

Looking through the logs apparently this was a *feature*. This fixes the long standing issue of getting the track to resume when previewing using cue and then pressing the play button.

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

Another logic race condition in the engine...

tags: added: hotcue race-condition
Changed in mixxx:
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

This isn't related to the hotcue cancel feature. It's a race condition between the hotcue_active and hotcue_clear controls. The hotcue_activate call previews the hotcue, and before it is released, hotcue_clear detaches the Cue from the hotcue. Once hotcue_activate gets released, the logic that would normally stop the player and seek it back to where it started is not triggered because the hotcue is cleared of its Cue.

I have a patch that I need to test, but I think it should take care of this corner case.

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

The fix works for me.

summary: - Play Button gets stuck in "on" position
+ Clearing hotcue while previewing it causes play button to get stuck.
Changed in mixxx:
status: Confirmed → Fix Committed
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Stefan Nürnberger (kabelfrickler) wrote :

This happened to me yesterday on my branch based on trunk revno: 3292 (Sat 2012-08-11).
I was playing around with my American Audio VMS2 hotcues. I still have to verify whether this is a bug in mixxx code or just an error in my controller script. There are a lot of buttons involved in reproducing this.
Most annoying: even reloading the track will resume to 'play' mode instantaneously. There seems to be no easy way to return to normal behaviour. I guess simply pressing 'pause' should in any case pause the track. Instead it also resumes to 'play' mode. Pressing 'play' will start the track from the beginning, ignoring all cue-points.

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

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.