Hi everyone,
I've been looking at things that force my Ubuntu linux install of Mixx to miss
buffer updates (audio glitches). I have a low latency kernel installed with the
usual low latency linux tweaks, and a uca202 audio interface, but see glitches
even when running with large buffer sizes.
I had some success by using htop (a basic linux performance monitor) to monitor
cpu intensive applications, and boosting the 'niceness' of non-mixx
applications. Making metacity, x11 and other graphics-related apps nicer helps,
but it turns out the biggest glitches actually come from mixx itself.
I haven't studied the code yet, but it appears to launch a fairly large number
of threads which compete equally for cpu time. I've found that if I make the
main mixx thread nicer (effectively decreasing it's scheduling priority and
making it more likely to be pre-emptied), and identify and do the same to the
threads that seem to do analysis work when you first load a track, the vast
majority of glitches go away. I'm guessing the kernel is then doing a better
job at pre-empting these threads, allowing the time critical ones to run
promptly.
So, is mixx doing anything to hint about which of its threads are high/low
priority? Could it be setting the niceness of each thread (at least on linux)
based on context somehow?
If this sounds sensible, and someone can give me a few pointers to get started,
I'd be happy to consider making a patch.
Cheers,
Sam
p.s. great work btw!
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org
Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel