Monday, December 3, 2007

A few nights ago I captured a video while doing a quick test mix using Mixxx's vinyl control.

Not my best transition ever, but it works. :)

I've been trying to do some tweaking to get the latency down and one of the biggest improvements came from compiling Mixxx with SSE and MMX optimizations. The tricky part with turning on these optimizations is that they'll only work on post-Pentium III CPUs. That's fine for our Windows and OS X builds, but it's a problem for our Ubuntu package because we can't assume any specific CPU architecture. One possible solution for this is to disable SSE/MMX optimizations in the package that lives in the Ubuntu repositories and host a different (SSE/MMX optimized) Ubuntu package on our website.

In the meantime, I still have lots of work to do on fixing up the library. Busy, busy!

6 comments:

if i remember correctly, vlc and mplayer have runtime cpu detection and only enable sse and the like if it's available on the machine they're executed on.but i'm not a dev and don't know how this works, or if this is possible in mixxx.

VLC and mplayer have inline assembly code written to use SSE, which is what they can toggle on/off at runtime. I was actually referring to compiler optimizations using SSE, nothing that fancy... Good thinking though!