rapid cueing does not restart properly
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Confirmed
|
Low
|
Unassigned | ||
1.8 |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
When I repeatedly press cue quickly to play a drum sample, sometimes it plays from the start of the cue point, other times it starts further into the sample, cutting off the first drum beat.
Repainting the waveform display occurs every time I release the cue button and if I wait for the waveform to completely redraw, it always starts the cue cleanly.
When rapid cueing like this, there also seems to be a good chance that the play position does not revert back to the cue point as the cue button is released. As a result, the next press of the cue button moves the cue point to wherever it was left.
The problem is not related to mouse double-clicks handling as it also glitches under midi note control.
To reproduce the behavior:
1) Set a cue point just before a drum beat
2) press the cue button rapidly (say 2-4Hz)
Response from Albert Santoni:
I _think_ the problem is the fact that EngineBufferCue
ControlObjects (or in this context, ControlObjectTh
gets called from the GUI thread) when setting the playback position.
Instead, it talks directly to EngineBuffer, and I can see those changes
cue changes not happening or something.
I've also noticed it is highly dependent on your latency. If you hit cue
twice very quickly with a low latency (say 16 ms), you won't get the
problem. (So it's also possible that trying to cue twice in less time
than the latency just won't work, which makes a bit of sense to me.)
Anyways, I tried fixing it by setting up the ControlObjects properly in
EngineBufferCue, but I ran into some problems. The functions in
EngineBuffer that were previously used to get the playback position get
the position in some units I don't understand. I tried to do the
conversion, but no luck. I don't have time right now to figure out the
units though. I tried an alternative approach as well, but apparently
the waveform view reads the cue position in those funky units and
converts it.
Changed in mixxx: | |
importance: | Undecided → Low |
status: | New → Confirmed |
I have observed this behaviour in Mixxx 1.8 r2368.
Pressing CUE very quickly, often moves the CUE point further. This has been tested on Windows 7 with Audio 4 DJ at 5ms latency.
Tobias