Mixxx Tutorial

In this post, I will attempt to give you an idea how I use Mixxx. This isn’t a detailed manual of all usage cases, but a howto or tutorial explaining how I use the program. Please post comments!

What is Mixxx?

Mixxx is an open source digital DJ’ing program developed by Tue Haste Anderson and those who submit patches. It allows an inspired individual to mix tunes together just like a DJ does with a pair of real turntables. It provides support for a headphone cue1 to allow the DJ to preview and beatmatch the incoming track before it is mixed in. Mixxx also has the ability to apply an LFO filter to a track, with more filters forthcoming. Mixxx can interface with OSS, Alsa, or Jack to output the audio. It can play OGG, MP3, and WAV files, and it can do your homework2.

Getting Started with Mixxx

Headphone Cue is Broke in v1.4.2
With version 1.4.2, if you have the headphone switch on for a channel, it will not output itself to the mix when the crossfader says it should. This is nasty and makes the preview mostly useless, so use CVS if you want this feature and the stable is still 1.4.2. BUT I should also mention here that CVS has some pretty nasty bugs right now, so be warned.

When using mixxx, I highly recommend that you use the Jack Audio Connection Kit in realtime priority mode. This should minimize (hopefully to 0) the amount of glitches in the audio playback. It will also allow you to wire the outputs easily however you like using qjackctl. I also like to use TimeMachine to record what comes out of Mixxx through Jack.

Qjackctl makes working with Jack easy
Qjackctl makes working with Jack easy

If your sound card is a Sound Blaster Live! or another card with two outputs, you’re probably already using them for front and rear speakers. What I’ve done is used a 1=>2 minijack splitter to split the front speakers’ output into two outputs—one for my front, and one for my rear. So, I’ve lost my true 4.1 sound, but I don’t play games that demand it (nor do I even have the rear speakers set up properly in the rear). The rear output from your sound card is now freed for your headphones.

Another important thing to consider when trying to get the headphone cue to work is that the ALSA kernel driver (that is being used not by Mixxx, but by Jack in this case) does not support the ability for an application to properly distinguish the front and rear outputs. I believe Linux 2.6.12 has this fix merged in, but I’m not 100% sure as I’m still using the alsa drivers built from the package rather than from the kernel. See this thread for more information about this issue.


Mixxx busy at work
Mixxx busy at work

So, you have everything set up properly, and you’re ready to get mixing. A wise DJ once boiled the art down to the following bullet points:

  1. Most songs have a major change every 16 measures.
  2. Beatmatching is important.
  3. Practice makes perfect.

Here’s how I beatmatch: While playing track A, toggle on the headphone cue for track B. Find a spot in B where the beat flow is easy to pick out, that is, the measures are dead easy to feel as you line them up with A. Stop B just before beat 1 of the next measure. Right before beat 1 of A, unpause B so they are aligned. You now are hearing B in your headphones while A continues to play on the master out. This is where you must make a judgement as to whether the previewing track (B) is faster or slower than the currently playing one (A), and adjust the rate sliders appropriately. You will then either need to grip the waveform and nudge it (difficult!3) or use the rate sliders back in sync. Another option is to stop B at beat 1, and repeat the process.

With some practice, you will find that you can make the adjustments quickly, and even be fairly accurate as to how much to tweak. If you find yourself making large adjustments, remember that you can adjust the rate of A as well, but not too much! This is the song everyone’s listening to, so a large adjustment may be noticable.

Using the mouse on the sliders affords you very little in the way of accuracy. This is okay for finding the right ballpark, but once you’re mixing the track in, the best way to make rate adjustments is with the keyboard. F1/F2 are down/up 0.1% for Channel A, and F5/F6 operate for channel B. Holding shift in combination with these keys gets you an even finer 0.01% control over the rate, but I rarely use this feature.

Anyway, that’s the technical stuff. To actually make it work, you need some idea of the flow of your songs to know how and when to fade where. One good method is to beatmatch the songs, then roll B back to the start, hit play when A begins the next measure after a good transition (16 bar rule), and mix at your leisure.

Using an External Mixer or MIDI Device

If you have a real DJ mixer, it is possible to use it with Mixxx. Slide the crossfader all the way to the left (channel A) and enable the headphone preview for channel B. By doing this, you have a perfect workaround to route each channel out separate outputs of your soundcard which can then be routed to your real hardware mixer.

Mixxx also supports midi devices such as the FaderMaster and Mixman DM2, although I haven’t tried it with either. I’m curious about how the Mixman DM2 works with mixxx (like what you can control and how) so if you have any experience, please drop a comment. It should also be noted that by using a program like Pd to capture the signals coming through the midi bus, one can write their own config file to bind the controls of just about any midi device to any of the Mixxx controls.

Set Up a Private Internet Radio Station

I’ve just recently began to experiment with this. By properly configuring Icecast2 and Darkice, you can stream your live performance out to whoever will listen. Darkice captures and encodes the audio, and passes it to Icecast2 which actually streams it out to the clients. Once configured, simply launch Icecast, launch Darkice, and connect the Darkice inputs to the Mixxx (master) outputs in qjackctl.

If you’re interested to see my config files, here is my icecast.xml and my darkice.cfg.


I hope you’ve found this tutorial to be useful. Surely I haven’t covered everything there is to cover regarding Mixxx, but hopefully somebody learned something. Please give me some feedback so I may perhaps adapt this further and add additional info.




  1. This feature is broken in 1.4.2, but works fine in CVS.
  2. That is, provided you have to produce a studio mix for the assignment.
  3. I’ve asked Tue to do something about it, but it seems that dragging the mouse on the waveform is very sensitive, so your click/drag/release must be very quick. This is almost never a good idea when the song you’re nudging is playing to your audience as it will produce a rather unappealing sound.
Thursday, August 11th, 2005 Software

11 Comments to Mixxx Tutorial

  1. Cool tutorial Thread: I linked it at OpenJay.org!

    Some more: there is another way to stream. Using Peercast (//www.peercast.org). Differences are: Icecast is bandwidth expensive while Peercast is a p2p software, so you can reach a good number of users with a cheap line! Peercast supports video too!


  2. J_Zar on August 11th, 2005
  3. Good tutorial, altho, I’m a newbie and I saw no mention of the benefits or misues of the sync button. I take it from the lack of use in the tutorial it isn’t the best for syncing up every 16 measures, guess this has to be done by ear. Also (since I am a noob), what did you mean when you said LFO filter?
    Thanks, iLLf8d

  4. iLLf8d on August 11th, 2005
  5. I used to use the sync button at the beginning when I was just getting started with Mixxx and I didn’t have the proper headhpone preview set up yet. It will work … occasionally. I found that only very similar beats actually will line up by the beat notches, and that most of the time it doesn’t work worth a damn.

    The LFO (Low Frequency Oscillator) filter adds a flangy sound to the track. Experiment with those filter knobs in the center and turn on the filter switch for a track to apply the effect.

  6. Thread on August 11th, 2005
  7. auto sync is kind of a bad habit some DJ’s gain in their first experience, and i guess a good dj must be able, even without BPM counter, to know when a music is "syncable" with other and how to do it. of course this is a lot easier with turntables :-D

    i’m wishing a lot for d-scratch to come to mixxx!

  8. ppires on August 11th, 2005
  9. I need help with running mix on ret hat 9.0. I get an error that says it cant find libmad.so.0 library. I have no clu what this means. help me out plz.


  10. MstrDnb on August 11th, 2005
  11. That means that you tried to install a package on your system with different versions of the dependencies than the person who originally compiled it. That’s what sucks about trying to use packages when everybody builds them on different linuxes… The solution is to just build cvs yourself.

  12. Thread on August 11th, 2005
  13. Another free p2p streaming solution is streamerp2p ( <a href=’//www.streamerp2p.com’>www.streamerp2p.com</a> ). Support for mp3, ogg and nsv streams at the moment. The last linux version is outdated but streamerp2p runs stable using wine.

  14. d-tracks on August 11th, 2005
  15. dear mixxx user, i know its a little late since you posted this ages ago but im interested in experimenting with music on my computer/ i have a macintosh laptop do i still have to follow a similar process with the qtjackctl or is it different because its a mac? im not an expert or anything on computers but i do like to explore stuff … anyhow if you can get back to me that would rock.


  16. irisa on August 11th, 2005
  17. Hi, i’m trying to broadcast live audio from my server with Shoutcast, however I cannot load it onto my website, any assistance appreciated.

  18. irfaccount@yahoo.co.uk on August 11th, 2005
  19. […] — no frilly features, just a straight-forward, easy-to-use interface. (I even wrote a tutorial for it back then.) In the early days, though, and for years that followed, Mixxx had some nasty […]

  20. DJ Thread? | Threadbox.net on February 23rd, 2011
  21. […] [3] //www.threadbox.net/2005/08/11/mixxx-tutorial/ […]

  22. Mixagem de áudio com Software Livre – Conhecendo o Mixxx « Fernando Guedes on October 26th, 2011

Latest Tweets


My History