Software Review: Mixxx Open Source DJ Software

Credit is due to CDMusic for introducing me to the Mixxx Open Source DJ Software last week.   Yes, that's three X's in mixxx and I assume it would have been four X's had been registered already like mixx and mix were.  My first impression to CDMusic's post was WOW; free software, no additional (proprietary) hardware and compatible with vinyl control.  That's pretty much all I ever wanted.   I quickly put together a plan to install and test out Mixxx. 

It's key to point out that I remember when Final Scratch hit the buzz-bin in DJ circles.  That was probably about 2000-2001.  Hawtin was the unofficial spokesman for the Final Scratch project and following his performances at the time, the system seemed like it would revolutionize techno (maybe not hip-hop, but definitely techno & house).  Additionally, the draw for me was that Final Scratch was built on Free BSD and utilized a dual-boot install to work around windows.  That was completely exciting as I was already dual booting Red Hat (pre-Fedora).  I was convinced that the open systems were heading in the right direction and I wouldn't have to depend on Win32 or Mac anymore for my audio work.  Of course, I was (even back then) still the FOSS snob I am today and wouldn't think of buying Final Scratch (especially at $500).

Since then everyone else jumped on board.  Native Instruments, Stanton, Serato (in coordination with Rane), M-Audio, etc all created their own version of vinyl control.  They added midi controllers, effects and the whole nine to create the digital dj.  The down side in my opinion, is that they moved away from open systems and duplicated their efforts confining their customers to Win32 or Mac OSX.  And again, key to point out, I stayed away.  I scoffed at the non-free solutions and I wouldn't adopt.  So I kept buying vinyl.

Fast Forward to my new fascination with Mixxx.  I read through the features of the software and the hardware compatibility notes making sure that my inventory at home would work for Mixxx.   Fedora, nope.  I could only get Ubuntu, Mac OSX and Windows.  Of course, I could get the source so that should work.  More on that later.  M-Audio Delta 44, check.  I verified in the MIxxx wiki that vinyl control would work with one sound card using multiple ins/outs.  Yes, but with the caveat that it was only supported on v1.6.  Ok, so that was fine as long as my plan to compile form source would work.  Turntables, check.  Analog Mixer, check.  Cables, nope.  I had to mish-mash some connectors, couplers and cables to get what I needed.  Vinyl Control Records, nope.  No problem though, the Mixxx wiki explained that I could grab any of the popular vinyl control records available on the market.  Plug and Play.

So what's the total price so far?  2xSerato Scratch Vinyl Control Records, $8.99.  1x15' 1/4" to RCA Stereo Cable, $24.99.  1x12' RCA to RCA Stereo Cable, $12.99.  4xRCA Female to Female Couplers, $2.00.  2x1/4" Female to RCA Male Adapters, $2.50.  Without adding it up, it's still quite affordable at a glance.

So I connected all the cables and setup my Fedora Core 8 workstation to accept the new audio config (Intel Core 2 Duo 2.2 GHz, 2GB 800MHz RAM).  Simply put, I checked the alsa settings and made sure that the Delta 44 was ready for action.  I checked atrpms to make sure Mixxx wasn't already compiled and available in RPM format.  It wasn't.  Then I checked Planet CCRMA to make there wasn't an RPM available there either.  It was available, but after installing I realized that v1.5 wasn't up to par with v1.6 (which I admittedly installed on Win32 to get a glimpse of the application).  Specifically, I couldn't use all 4 I/O ports on a single sound card to control Mixxx.  Moving on to obtain source and compile.

I have compiled my share of software so I wasn't too worried about Mixxx.  I would rather use a yum repo, but compiling does work.  It's just a bit inconvenient.  The Mixxx developers provided a useful README that spelled out all the dependencies and described the install process well enough to complete.  I grabbed the *-devel packages and 'scons'.  Ten minutes later, Mixxx was compiled and installed.  Upon startup of the software, I had to manually copy the skins directory to /usr/local/mixxx/skins, but it seemed that was the only detail that the install missed.  Mixxx launched just fine.  Version 1.6 was worth the extra effort.

Configuration probably took longer than the compilation and install.  I was fiddling with all the options to make sure I knew what each config setting was affecting.  There were some glitches with options not 'sticking' as I applied the settings and moved between the config screens.  Not too big of a deal, but workable and usually expected with early versions of FOSS.  My main gripe was that the interface options wouldn't stay put.  The knobs and sliders on the main interface reset to defaults everytime the software started.  Gain, balance, faders and volumes should stay put across restarts of the software (in my opinion).

So the big question is, "Does it work"?  It sort of worked.  I'll give some detail, so I am clear about what I was trying to achieve.  I don't have a mixer-type midi controller and I wasn't about to use a keyboard to control the Mixxx interface.  Using a mouse to control the crossfader and channel levels while mixing records was going to be challenge too.  So my solution was to create permanent passthrough for the software.  Channel #1 in Mixxx would have the crossfader "all the way" to the left and would use the "Main Output".  This would translate to the left channel on my hardware mixer.  Channel #2 in Mixxx would only be heard through the "Headphone Ouptut" and would translate to the right channel on my hardware mixer.  My logic proved successful in theory.  I wanted to keep as much native mixing operation as possible, because you can't beat a hardware mixer.  So at this point I'm ready to mix.  I have direct output to my mixer from each channel.  I can use cueing on the mixer to hear both channels and my only software interface is to pull new tracks on the vinyl emulation channels.  Vinyl emulation seemed to work.  I can pull-back, pitchbend and needle drop on the Serato Vinyl.  Good.

It's just not the same.  I couldn't quite tell the software exactly what I wanted.  The vinyl emulation seemed to work at first, but as I moved from track to track, the needle drop cueing quickly disappeared.  For some reason, Mixxx wasn't translating the Serato vinyl to the time point of the digital files.  I tried switching between "scratch, absolute and relative" modes in the vinyl control options, but nothing helped.  The waveform displays eventually stopped working as the software ran longer over time.  That wasn't too big a problem because I still had audio, but losing visual confirmation of your channels quickly kills the software's experience.  The "latency" setting is critical to operation of the vinyl control system.  At it's default setting, 65ms, cueing was very blurry.  Meaning that I could move the vinyl but it's actual cue point was not crisp and way too general to cue properly.  A latency setting of 15ms helped tremendously while cueing, but brought the usual click/skip behavior with it.  Cycling the app seemed to fix alot of these problems, but obviously it wasn't realistic to cylce the app while mixing.

There are definitely some things I could try to help the situation, but at this point I wasn't convinced by the overall experience.  I'm sure a realtime kernel from Planet CCRMA would help.  A dedicated, 'clean' workstation would probably also help, though my test setup is pretty clean and in good operating state.  It may also be worth a demo on Mac OSX or windows to check on OS compatibility problems.

I still like the idea.  On the flip side, I am not convinced that the vinyl control system, be it Mixxx or one of the other proprietary systems, is a total sham.  There's been so many reviews of 'production stability' in the DJ booth, that I'm convinced I have to keep trying.  I may have to dig deep and go closed for the full exposure.  In the meantime though, I'll stick to my expensive, full-sounding vinyl.  Let me know when v2.0 comes out.

Update: The Sour Taste Of Humble Pie

Thanks for the write up!

Thanks for the taking the plunge and giving an honest review. I have been following the progress of Mixxx via their RSS feed and I think its a project with a lot of promise. It might not be there yet but give it some more time and I think it will definitely be worth a second glance. Utilizing *nux as a platform gives Mixxx some core advantages that I think most "digital" DJs will find extremely attractive. Stability is the first that comes to mind, anyone who has had a software meltdown mid-set can certainly attest to this. Latency seems to be on the tip of most critic's tongue's when talking software based mixing, a lean and optimized OS will go far in eliminating and tracking down this shortcoming. Lastly, it will force all the software vendors to get better (and cheaper, we can hope) in the long run. I have been using Serato Scratch Live for a little over a year now and while it's a great piece of software I definitely would like to see more competition. Hopefully in a year or two Mixxx will mature enough to become a real alternative and challenge the mixing software plutocrats.


Sounds like xwax might be what you're looking for.

Tried Xwax?

Hey there. Based on your description of how you want to use your DJ app (hardware-centric,) it sounds like xwax would be a better fit for you. Have you tried it? It's basically just no-frills vinyl control on up to 3 virtual decks. Since that's all it does, latencies are alot better. Check it out at "D.J. Pegasus"

Is xwax the answer?

Thanks for the comments everyone.  I'll have to try xwax standalone and see how that holds up.  Mixxx is definitely up there on the cool scale and I will most likely build a dual-boot solution to support and test mixxx fully and REALLY run it through its paces.  If I recall correctly, xwax was built along with my the mixxx build process, so it's probably already waiting for me.

You'll need to build xwax

You'll need to build xwax from the xwax site. Mixxx uses one of the core portions of the xwax code, but not the whole thing.

xwax has a much simpler build process so that shouldn't be too difficult at all, or there is one already built on the xwax download page.

Mixxx Open Source DJ Software

im glad somebody is developing an open source for this. may you prosper on this one.piz

Yea, That's awsome that

Yea, That's awsome that there is open source stuff available for DJ's and quality stuff. Now, with enough searching and talking with people, you can find alot of cool free stuff of the net!

Virtual Dj

I personally use virtual DJ and I think its killer, I've used the analog gear for years but I actually prefer this.

Virtual Dj

I too use virtual DJ. I am very happy with the way it works. Other people in the field that I know of seem to agree with this.

Have you checked the new NS7

Have you checked the new NS7 by Numark. It comes with Serato Itch. This thing is sick!

the NS7

Yeah that NS7 IS real nice. I love that Serato Itch man

Wow thanks for the great

Wow thanks for the great review mate. It is the first normal review open source DJ software I have ever seen in the internet. It is nice that it is compatible with Windows, because I prefer commercial OS. I will download MIXXX and see what useful things it can do. Thanks one more time for the great article. I will be looking forward to other great posts from you.

Simple DJ solutions for the digital age rather than software+PC

Thanks for the review. I tried the software as well, it's nice although I had a few sound drops but I didn't really care about being in a "clean OS situation".

But anyway I can't still think of software solutions + PC as a long-term solution for general (most) DJ use such as the one that prevailed for ~30 years in the 20th century. I hope that the digital dj setup will move toward simpler and more integrated solutions.

Why do we need software and powerful PC (or iPod/Ipad) on stage if we just need to play files with a decent player ?
Especially when standard mixers already offer FX.

Most decks (CD or media players) are simply lacking a proper screen and interface to navigate and select files: selecting a track from a 8GB music compilation spread in 15 folders from USB stick or HD is not practical at all on a 10x2 characters display.

Sticking to deck-only solutions to keep it short, only the latest Pioneer CDJ have a better screen than average (especially CDJ2000 and to lesser extent the CDJ900) but they are far too expensive and not available in all venues. Competitors such as Denon DNS3700, DN-HS5500, Stanton CMP.800, Numark NDX and Cortex HDTT 500 all have a crap screen and/or interface while developing partnerships with NI and Serato.

So far I remain conservative using vinyls and CD-A, marginally creating mp3-CD selections as well, waiting for an integrated solution, dreaming of being a DJ hardware engineer to realize this little dream... :-)

This software product is well

This software product is well known only in some very specific circles and I think it is high time for it to gain a world popularity by developing mobile app for it.