SamWhited|blog

Mixxx

Notes

I’ve recently been using the Mixxx software for DJs. This page includes some personal notes on my own use cases, what’s good, what’s bad, etc. It is not really made for general consumption, but is thrown up here anyways. It will be a bit rambling and/or ranty at times, most likely.

Let’s get my overall impressions of the software out of the way up front: it’s absolutely great and I recommend it over the commercial alternatives for DJs of all stripes (except maybe Radio DJs, it’s not really for automatically scheduling radio programs, but people seem to love it for that use case anyways, but maybe that’s because it’s the closest thing that’s free?). This is one of the very few Open Source pieces of software that I can say is just good, and not just “yah, it’s not as good as commercial stuff, but for moral and ideological reasons I choose to make some sacrifices to use it”. No, Mixxx is actually just good, full stop.

My Use Case

My use case for Mixxx is two fold. The first is for DJing for social dances (Lindy Hop and Blues). This case is simple enough that I know DJs who just use two media players tied to different outputs (headphones and mains) and call that good enough: you preview tracks and build a potential playlist in the headphone software, then when a dance ends you drag the next one that you’ve cued up into the software playing on the mains and call it a day. The requirements for social dance DJing are such that this is perfectly fine, but having headphone cueing and waveform visualization is nice, so Mixxx adds what it can here even though something much less complicated than full DJ software would also be okay. I don’t even really need a controller here unless the dance doesn’t provide a sound board, in which case Mixxx also would let you use a small controller to provide software fade outs, which is a nice benefit.

My second use case is also for a social dance, but for one with slightly more complicated requirements. Contra dancing is traditionally always done with a live band, and the dance itself is more structured than improvisational dances like Lindy. A caller tells the dancers what moves to do in time with the music slightly ahead of the beat. They let the dance run as long as they like while the band plays a tune with a specific structure that fits the choreography of the dance. Bands traditionally switch tunes half way through a dance, and dances last until the caller signals when they should end (normally with 2 or 3 more times remaining through the dance).

There are contras that use recorded music, but they suffer from a few problems:

Mixxx is perfect for this use case! Just like any DJ I can mix several tracks together (though the music does end so that people can find a new partner, this isn’t a full evenings set where music never stops like a club DJ would do), I can loop and play sections of the track over again to make it fit the contra structure (even if the original track didn’t), I can skip over between times through the dance that would break the timing, I can speed up or slow down a recorded tune to make it fit the dance better, and I can even keep a tune going until the caller signals how many more times through they want then mix in a nice ending for them.

Mixxx is absolutely perfect for this, and makes for a much more enjoyable dance than you’d get having the caller play music off their phone. It also means you can dance to the most well-known high-energy contra dance bands whenever you want instead of hiring the same handful of low-energy local bands every week (with apologies to those bands, it’s nice to have live music, but it’s also great to be able to get the big touring bands even if you can’t afford to hire them regularly)!

P.S. I don’t do “techno contra” (contra to pop music and rave lighting, it has nothing to do with actual techno music except that it might sometimes use that too), but Mixxx is good for that as well.

Good Stuff

Bad Stuff

These are personal notes and while they are public, they are not meant to be an angry take-down of the developers or their process (who may have good reasons for doing the things they do that I disagree with). There’s a reason I’m not sending these on the forums.

I’m going to avoid “my favorite feature is missing”, even if it’s a major problem for me. Most of these are with the development process (plus one serious bug and the usual complaints about developers not taking accessibility seriously), but on the other hand, the software overall is very stable and good, so I suppose I shouldn’t critique a process that seems to be resulting in robust well-made software. If you are not a software developer, most of these probably won’t matter all that much and can be safely ignored.

I don’t contribute to the C++ side because I hate C++ and everything about developing with it, so be aware that most of this is me being hypocritical since it’s not like I’m helping (though also most of the complaints are about stuff they turn down anyways, so maybe it’s fine to complain while not doing it myself).

Anyways, this is all starting to sound defensive, so I’ll leave it at that and just get to the list. The point is: if you feel the need to reach out to me to tell me about how right/wrong/whatever this list is: don’t.