On Sat, 2008-02-16 at 20:30 -0800, Tom Jennings wrote:
> On Sun, 17 Feb 2008, Robin Sheat wrote:
> 
> > On Sunday 17 February 2008 15:21:59 Tom Jennings wrote:
> > > It's quite repeatable, if I hit CUE... CUE... CUE... once per
> > > second or so, there's an audio pause/gap and full waveform
> > > rewrite every time.
> 
> 
> > See, I see that sometimes, but 90% of the time it doesn't happen. I haven't
> > determined why it only does someties.
> 
> In my case, I am quite certain it's when the jog/cue reposition
> requires a waveform rectangle full redraw. Sometimes it's able
> to shift the image and draw one end of the rectangle, but if
> it's a big enough time jump it clears and redraws.
> 
> Could it be simply that the code should start the player at
> the new position before the waveform redraw is begun? I would
> assume that'd be the case already...
> 


Like I said, none of us have ever had any luck figuring out the waveform
view code, so your theory is as good of a guess as I could conjure. 

I also want to mention that I always thought the waveform view behaved
slightly different after I rewrote the audio core. I just tested Mixxx
1.5.2 and it appears that the waveform view redraws differently in some
cases, and I never get this "missed cue" problem. It's either a quirk in
the new sound core (don't ask me why the audio code is coupled to the
waveform code, because I didn't design the crappy class structure of the
waveform), or a quirk introduced in the QT4 move.

In 1.6.0, occasionally I'll get this situation when I'm seeking where it
starts rendering the wave from the wrong position - It won't "propagate
outwards" from the centre, it'll go left-to-right instead.

To me, both this "left-to-right waveform drawing" and the "missed cue"
problem smell like race condition caused by unsafe threading. In both
cases, the "seek position" or something related to that isn't being
updated properly every once and a while because it's being clobbered by
another thread's unsafe access to that variable.

Again, this is all theory, but it wouldn't be the first time that
unmutexed multithreaded access only started causing problems after the
jump to QT4. (ControlObject thread issues, etc etc.)

Thanks,
Albert

> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Mixxx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to