Friday, December 10, 2010

Beyond Mixxx 1.8

Mixxx 1.8 was a big step ahead, bringing new features like hot cues, looping, and a brand new library, but as we speak, many other new features are being developed behind the scenes. These new features are still in the lab, so to speak, but some of them are maturing rapidly and will likely make it into a Mixxx release. Some of them are even stable enough for the brave to start testing. Although, I wouldn't use any of them in a live performance yet... or would I?

Some of these features include:
  • Samplers
  • Support for More than Two Decks:
  • External Mixer Mode
  • Beat Detection
  • Vinyl Control Rewrite

Here's a brief overview of some of these new features:

External Mixer Mode (1.9)

Bill Good recently developed this feature through the Google Summer of Code program. With External Mixer Mode, Mixxx will be able to output the audio from each deck through a separate audio channel. This is a heavily requested feature, and is especially handy for vinyl control users. Our internal audio routing code was significantly overhauled during this project, and as a result, we'll be able to add microphone input to Mixxx in the future with relative ease.

Bill has also been helping improve support for FLAC files in Mixxx.

Support for Multiple Decks (1.10)

Since the first release of Mixxx, we've been stuck with only two channels for mixing. Fortunately, we've been rescued by RJ Ryan, who has put in some long hours refactoring anything and everything he can get his hands on so that we can support more channels. Thanks to his efforts, our development version of Mixxx can support any number of decks internally. We're still working on modifying our user interface to support more decks, but it looks like we may rely on 4-deck variants of our skins in the short term.

Sampler (1.10)

Built upon our support for multiple decks, a prototype sampler was developed by Ryan Baker through Google Summer of Code this year. These small miniature decks allow you to play audio samples. For example, you will be able to add sirens, air horns and vocal samples into your mixes. This feature still requires more work on the user interface and some under-the-hood polish, but there's been great progress made so far.

Beat Detection (?)

This feature will use the open source audio library aubio to detect beats. This will allow us to do many things (in theory), including:
  • Beat Smashing effects, a la Aphex Twin.
  • Quantized Hotcues: your hotcues could sync up to the beat.
  • Quantized Loops: automatically create precise loops with X beats.
  • More precise Auto-Sync.
The main difference between BPM detection, which is what we have now, and beat detection is that each individual beat will be detected and marked and not just guessed from the BPM. Coupled with a good grid editor and other groovy features this could make Mixxx a truly killer program for mixing and mashing songs, especially those with variable tempos.


As you can see, future versions of Mixxx have the potential to be pretty exciting! You can help support development of Mixxx by donating to our build server fund or by getting involved directly. Thanks for your support!

Click here to lend your support to: Mixxx 1.9 Build Server Fundraiser and make a donation at !

This article was written by Mixxx developer Philip "Madjester" Whelan.


  1. It is confusing to see there is no due date for proper beat detection :-(
    The whole point of having sampler and more decks is to be able to play with beat-accurate timing, isn`t?

    Looping alignment in Mixxx is pretty much unusable at the current and way behind the competition.

  2. Any news on the auto bpm matching for auto dj?

  3. @Lead,

    The beat detection feature described above is kind of experimental, and would identify each individual beat in a song. This goes above and beyond current commercial offerings that use 'Beat Grids'. It would allow us to provide accurate beat-syncing on songs that shift tempos, for example.

    Beat detection is different from what you are describing. I think most of what you're describing is beat quantization (making samples, loops, and hotcues 'snap' to beats when you play them) and for looping that is mostly a function of aligning loop lengths to correctly be multiples of certain beats.

    I think we're hoping to get the lion share of this done for 1.10 and 1.11. As you can see, we're doing things incrementally. It's better to get features out the door into the hands of DJs so that we get good feedback instead of trying to implement every feature known to man.

    Rome wasn't built in a day. ;) Previously, Mixxx releases only came once a year (at least). We've changed that. Now we release on a 3-month schedule. That way, features that are ready go public faster, and features that aren't done are only delayed in 3-month increments. Watch this space!

  4. First of all thank you for all your effort, I really apreciate it, you are the best!!

    I wanted to ask you if you could include a simple feature that VDJ has, and some people has told me they miss it in mix. It is the main beat detection, that in VDJ is marked specially. So, for example, if a song has a tempo of 4 beats, the first one is the strong beat and it would be nice that MIXXX could detect it and mark it.

    With this tip, it is easier to make mixes.

    Thank you again for you effort ;)

  5. A decent beat mapper would indeed give you killer functionality. I use Ableton because beat mapping (warping) tunes is so quick and easy, but I'd rather use some software that is a bit more DJ orientated. Traktor does not do this well at the moment, imho, mainly because the waveform view is far too small and fiddly. Mixx could be the perfect middle ground.

  6. We want video mixing :D

  7. I've had an idea for a feature for a while and all the buzz about the "key lock" button in the skins is making me wonder if it's already being (or been) implemented. The idea is as follows. Mixxx has two ways to match beats: time stretch which does not affect pitch and the more traditional slowing down and speeding up of a track, which alters its pitch. My idea is that you could pick a pitch/key and a tempo for the track. Mixxx would speed up / slow down the track to the desired pitch, and then use time stretch to slow down or speed up the track to the desired tempo. The use case is if you have two tracks with a lot of melodic content that you want to mix together, but they're in different keys. You could match both their keys and their tempo. Is this possible and/or already being worked on?

  8. A feature I would like with muti-deck support would be the ability to run multiple formats of time code at once. I could have the mix going on my cdjs running cd time code, while scratching samples on a pair of turntables with time code vinyl.
    it would be awesome to have a shift deck feature so you could mix four virtual decks using two controllers or time coded decks .

  9. deck shifting is implementable in javascript

  10. Just let me say thank you for that cool software. :-) Keep on working...