Wednesday, December 30, 2009

Mixxx 1.7.2 Released!

The Mixxx team is proud to announce the release of Mixxx 1.7.2!

This bugfix release addresses a number of issues that were discovered in 1.7.1, and is a recommended upgrade for all users.

Some of the changes include:
  • Improved saving of ordered playlists
  • Fixed MIDI support on OS X
  • Optimize latency settings. This should improve compatibility with certain soundcards/APIs.
  • Improved stability and error handling when loading certain songs.

Mixxx 1.7.2 is available for Windows, Mac OS X, and Linux. Download Mixxx and start DJing!

Wednesday, December 23, 2009

Mixxx 1.8 Preview

After many months of planning and development, we're finally approaching a beta release of Mixxx 1.8. Since our last release, several major new features have matured and are almost ready for public testing.
Our main focus for 1.8 has been improving the library, which is a direct result of continued feedback from our users. We're also excited to have been able to address several other major feature requests, and we think 1.8 is a big step in the right direction.


The brand new database-powered library is not only faster, but much more flexible as well. The new library features include:
  • Keep your library organized by sorting your tracks into crates.
  • Need to take a break for a few minutes? Throw some tracks into the Auto DJ playlist and let Mixxx cover you.
  • The new Analyze view lets you peek at your recently added tracks and perform batch BPM detection.
  • A brand new intelligent library scanning algorithm is both quick and accurate at importing new tracks when you launch Mixxx. The library scanner is even smart enough to notice when you've moved tracks around inside your library and preserves any extra metadata you've added in Mixxx like comments and BPMs.
Crates in the new library

Looping and Ramping Pitch Bend

A major rework of our audio engine also brings looping to the next release of Mixxx. Running out of time to find that perfect next track for your mix? Lay down a loop and buy yourself more time. Unlike the competition, Mixxx has no limitations on the length of your loop, so you can be as creative as you want to be.
Additional work on our mixing engine has lead to a new feature we call ramping pitch bend. Ramping pitch bend helps you add extra smoothness to your mixes by making temporary pitch bends accelerate rather than jump suddenly.

MIDI Enhancements

A brand new MIDI backend completes the rewrite of Mixxx's MIDI code, the first part of which was included in 1.7 and enabled innovative new features like our MIDI scripting engine. The hot new addition for 1.8 is integrated multiple MIDI device support.
What do we mean by integrated? Check it out:

AAC and iTunes Support

Mixxx 1.8 can playback DRM-free AAC/M4A files on Windows, Mac OS X, and Linux. On Windows and OS X, Mixxx can also now see your iTunes library and let you play tracks from it without importing them.

In addition to a 1.8 beta, we're also preparing a 1.7.2 bug fix release. This release will fix MIDI on OS X and improve stability for certain hardware configurations.
2009 has been an exciting year for Mixxx, and 2010 is shaping up to be even better. As the year closes, we'd like to thank all of our generous contributors and supporters. We hope you're looking forward to next year as much as we are!

Monday, October 19, 2009

Mixxx 1.7.1 Released!

The Mixxx team is proud to announce the release of Mixxx 1.7.1!

This bugfix release is a recommended upgrade for all users of 1.7.0, and fixes the following issues:
  • Fixed a memory leak causing degraded performance during long sets.
  • The headphone "main" cue now takes master balance into effect.
  • Fixed a rare issue with the Hercules DJ Control MP3 on Windows.
  • Some Stanton SCS.3d bugfixes and improvements to the SCS.1m mapping
We're also still hard at work on our next major release, Mixxx 1.8.0. We've just about wrapped up development of looping and are still hacking away on our overhauled library. Check out the screenshot below for an exclusive preview of our brand new looping controls, and stay tuned for more news about Mixxx 1.8.0!

A sneak peek at the new looping controls featured
in the upcoming 1.8.0 release

Thursday, August 6, 2009

Mixxx 1.7.0 Released!

The Mixxx team is proud to announce the final release of Mixxx 1.7.0!

The result of countless contributions from developers all over the globe, Mixxx 1.7.0 features an overhauled MIDI mapping system with advanced scripting capabilities, improvements to vinyl control, and many other tweaks and optimizations.

Our brand new MIDI scripting engine allows both users and developers to easily add complex behaviour to their MIDI devices. Whether you're looking to get more out of your existing controller or want to take full advantage of cutting edge hardware, our 1.7.0 release won't disappoint you. If you'd like more information on MIDI scripting, please see our documentation.

Mixxx 1.7.0 is now available on our downloads page.

Since Mixxx 1.6.1 was released, the following changes have been made:
  • Improved MIDI device support:
    • MIDI learning wizard
    • MIDI mapping editor
    • Upgraded, faster mapping system
    • MIDI output now fully supported on Windows, OS X, and Linux.
    • QtScript/JavaScript-based MIDI Scripting Environment - Script complex behaviour for your MIDI controller!
    • Added full support for the Stanton SCS.3d and SCS.1m on all platforms.
    • Hercules MK2 and RMX improvements
    • Added Mixman DM2 mappings for Linux and OS X.
  • Vinyl Control:
    • Scratching responsiveness improved, with needle-skip prevention option added.
    • Signal quality indicators added to vinyl control preferences.
    • Improved support for soundcards with multiple stereo inputs
  • Convenience features:
    • The default skin is now widescreen, and fits nicely on netbook sized screens.
    • Stereo master VU meter added.
    • Cue points are now saved in the library for each track, with "auto-recall" cue option added to preferences.
    • Support for more platforms: 64-Bit Windows and a Universal OS X package for 10.4+!
    • Over 100 bug fixes and more!
With the release of 1.7.0, we've also transitioned to a more flexible development process. Because of this increased flexibility, we're already hard at work on Mixxx 1.8.0, which will feature looping and an overhauled library. With the release of 1.7.0, we're now able to spend less time incorporating support for new MIDI controllers, and more time working on the features you want the most.

Mixxx's development has always been driven by constant feedback from our users. Whether you're coming up with cool ideas on our forums or even just reporting bugs, we always appreciate hearing from you. Because your feedback is so valuable, we've launched a user survey to help us figure out where you want Mixxx to go. Taking a few minutes to fill out the survey is a easy way to help out the project and will help guide our future work.

Lastly, we're always looking for new contributors, and we hope our recent move to Launchpad and Bazaar for source code management will add more transparency to our development and encourage more people to get involved. If you're a programmer and want to work with a creative, enthusiastic team, hop on our IRC channel (#mixxx on Freenode) or sign up for our developers' mailing list.

Mixxx 2009 User Survey

Mixxx has always been driven by constant feedback from our community of DJs. Two years ago, you helped steer the development of Mixxx by giving us feedback through a user survey that we created. Consequently, we focused our efforts for the last two releases on the features you asked for the most, and it's time to get another round of feedback to find out how we've done, and where you'd like to see Mixxx go.

So if you have a few minutes, please fill out the Mixxx 2009 User Survey!

We read every response and appreciate your feedback. Filling out the survey is a fast and easy way to make a contribution to Mixxx, and your responses will make a big impact on future releases. Thanks!

Saturday, August 1, 2009

Monday, July 20, 2009

Mixxx 1.7.0 Beta 2 Released!

The Mixxx team is pleased to announce the release of Mixxx 1.7.0 Beta 2! This is primarily a bugfix release that addresses issues from our previous beta.

We also recently discovered a critical issue in an external software library which affects Mixxx users on Ubuntu 9.04. Please see the note at the bottom of this post for more information.

Some of the changes in Mixxx 1.7.0 Beta 2 include:
  • Fixed missing MIDI bytes under heavy load on Linux.
  • Fixed vinyl control input for users with multi-channel input.
  • Fixed vinyl control channel selection bug
  • A slew of SCS.3d improvements and tweaks.
  • Hercules MK2 and RMX improvements
  • Stanton SCS.1m support
  • Internal control engine optimizations
  • Fixed several crash-on-startup scenarios
  • Fixed library rescans not finding new files added in subdirectories
  • Fixed Ubuntu menu shortcut
  • Fixed missing Ubuntu package dependencies
  • Added Universal Package for OS X 10.4+ (Special thanks to Brian Jackson for leading the effort to put this together.)
Mixxx 1.7.0 Beta 2 is available on our downloads page.

Formality aside, this list of changes doesn't do the last few months justice. After our last beta, we received dozens of helpful bug reports. Some of those brought new problems to our attention, while others shed light on old ones. With your valuable feedback, we managed to not only fix your most pressing bugs, but we were also able to track down and fix some other very tricky bugs. The result of your great bug reporting and our team's commitment to fixing bugs is the most stable, polished release of Mixxx to date, and we couldn't have done it without you.

Thank you to everyone who's been testing our beta releases and reporting bugs. You've made a valuable contribution to open source and the whole Mixxx community, and together we're going to continue to make Mixxx the best DJ software we can.

As usual, please report any new bugs or regressions to our bug tracker. If you want to get in touch with other Mixxx DJs, show some love on our forums!

Stay tuned for our final 1.7.0 release!

Important note for Ubuntu 9.04 users:A flaw has been discovered in a library provided by Ubuntu 9.04 that can cause critical hangups in Mixxx. Ubuntu 9.04 users are advised to install the version of PortAudio from Ubuntu 8.10, available as .deb packages here:

Friday, June 19, 2009

Mixxx with the Stanton SCS.3d and SCS.1m

Sean Pappalardo's been busy again, this time working on support for the Stanton SCS.1m and improving our existing support for the SCS.3d. In this first video, Sean explains some of the neat features he's coded like fader-start, real-time feedback using the SCS.1m LED digit displays, and lots of other bells and whistles.

In this second video, Sean demonstrates some of the new features he's implemented since he made his original SCS.3d video, including the new vinyl platter mode and VU meters.

Our improved SCS.3d and SCS.1m support will be available for everyone to play with in our next beta. In the meantime, current hardware owners can still use their controllers with Mixxx 1.7.0 Beta1, but they'll have some extra to look forward to in our next release.

Speaking of which - Since our recent beta, your bug reports have provided us with important feedback that's helped us discover, fix, and prevent several problems. We've now identified a handful of remaining issues that we want to tackle, and once they're fixed, we'll either release another beta or a "release candidate". We've also completed a preliminary round of planning for Mixxx 1.8, but we'll save that for another blog post. Stay tuned!

Thursday, May 7, 2009

Mixxx 1.7.0 Beta1 for Windows x64 Now Available!

The Mixxx team is pleased to announce the availability of a 64-Bit version of Mixxx 1.7.0 Beta1 for Windows.

In a dazzling display of masochism and borderline insanity, Sean Pappalardo has been working hard over the last month or so to get Mixxx to run natively on 64-bit Windows. When asked why, he just mumbled, "full power...full power" over and over again as he rocked in his chair. Sean comes from the Commodore 64 programming days of yore when 64 KB of RAM and a 1 MHz CPU was all you had to work with, so he enjoys taking maximum advantage of the available hardware.

While 64-bit versions of Mixxx have been available on Linux for the past year, this is the first time it's been done on Windows.

Why was there no 64-bit version of Mixxx for Windows? As Sean found out, this was not simply a matter of recompiling Mixxx - all of Mixxx's dependencies had to be rebuilt as x64 binaries as well. This process brought numerous headaches and profanity-littered screams because Microsoft's Visual Studio is not always easy to deal with (especially when you're trying to force the free version to compile x64 binaries which involves a hack .) Fortunately a couple of the libraries that Mixxx depends on (libsndfile, FFTW) already had x64 binaries available for download, and for that we are very grateful. The good news is that, unless we decide they need upgrading, the dependencies don't have to be rebuilt in the future, so the hard part is done for now.

Mixxx is now the first and only known DJ software package that runs natively on 64-bit Windows, and this gives 64-bit Mixxx fans improved performance for free. A native 64-bit build also improves compatibility with ASIO devices on 64-bit Windows.

To take advantage of this, you need three things:
  1. a 64-bit AMD or Intel processor (eg. AMD Athlon 64, AMD Phenom, Intel Core 2)
  2. a 64-bit version of Windows (XP Professional x64, Vista x64, Server 2003 x64, etc.)
  3. A copy of Mixxx x64 for Windows
Install and run as usual, and enjoy! Please let us know if you have any problems or questions.

Thursday, April 23, 2009

Mixxx 1.7.0 Beta1 Released!

The Mixxx development team is proud to announce the first beta of Mixxx 1.7.0. This latest release is the culmination of six months of work by over a dozen contributors, and contains several exciting new features as well as many bug fixes.

Some of the new changes in Mixxx 1.7.0 Beta1 that we'd like to highlight are:
  • Cue points are now saved in the library for each track, with "auto-recall" cue option added to preferences.
  • The default skin is now widescreen, and fits nicely on netbook sized screens.
  • Stereo master VU meter added.
  • MIDI overhaul:
    • MIDI learning wizard
    • MIDI mappings table editor
    • Upgraded, faster mapping system
  • QtScript/JavaScript-based MIDI Scripting Environment - Code up complex behaviour for your MIDI controller without recompiling Mixxx!
  • MIDI output now fully supported on Windows, OS X, and Linux.
  • Added full support for the Stanton SCS.3d on all platforms.
  • Added Mixman DM2 mappings for Linux and OS X.
  • Vinyl Control:
    • Scratching responsiveness improved, with needle-skip prevention option added.
    • Signal quality indicators added to vinyl control preferences.
  • Merged the mixxx and mixxx-data packages for Ubuntu users into a single mixxx package.
  • Fixed about 40 bugs, including:
    • Browse mode no longer disappears in certain situations
    • Skin changing is now much faster
    • Tooltips now work again
    • Fixed rare instabilities caused by certain OGG and MP3 files
    • Minor improvements to the BPM detection
    • Fixed some OpenGL issues
    • Fixed a handful of obscure issues that may have prevented Mixxx from starting up on Windows
    • Play nicer with Ubuntu systems that are running PulseAudio
Aside from these more visible changes, there was significant work done on less visible parts of Mixxx. This includes many improvements to the organization and cleanliness of our source code, as well as a lot of work on features that didn't make it into the final 1.7.0. release. Improving the overall codebase is important for us because it makes it easier for new developers to contribute, and it was these new contributors who helped catalyze the overhaul of our MIDI system.

Back around December, we started toying around with the idea of something we called MIDI scripting. The idea of MIDI scripting is that having a small scripting engine sitting on top of our regular MIDI mappings would allow our users to code complex behaviour for their MIDI controllers using a JavaScript-like language. Soon after this idea hatched, we realized MIDI scripting would make it much easier for us to support new controllers in the future, and this attracted the attention of a handful of our developers.

Because we felt that both the long-term and short-term impact of implementing MIDI scripting would be very beneficial, several of our developers decided to shift their time away from other subprojects that they were working on (like effects, the new library, and looping) in order to complete the MIDI overhaul and scripting engine. When this work was nearing completion, we collectively felt that MIDI scripting support along with the slew of other improvements we made were significant enough to call this release 1.7.0. We're very excited about the possibilities that scripting opens up, and we hope to see our users come up with new, cool uses for it.

We'd also like to thank Stanton for their support during this development cycle, which allowed us to significantly accelerate the development of our MIDI scripting functionality. We're pleased to be the only cross-platform DJ software that fully supports the SCS.3d without the use of any extra software in the middle.

Lastly, if you encounter problems with the beta, please report them in our bug tracker! We hope you enjoy Mixxx 1.7.0 beta1, and we'll be working hard towards a final, stable release. Stay tuned.

  • The overhaul of our MIDI code included many changes to our MIDI mapping file format. Some of our old mappings were converted automatically by a script, but many required additional modifications by hand, which introduces the possibility of us having made errors. Due to the limited availability of hardware and free time within our development team, the MIDI mappings for some controllers have not been tested. If you have a controller that we provide a mapping for, please test it and report your results in our controller testing matrix.
  • MIDI Pitch messages are no longer processed internally and must be mapped to a script function. Fortunately script.pitch can be used very easily from your script.
  • M-Audio Xponent support has likely been broken. Support for it needs to be rewritten using scripting, but none of our developers have this device. (This is a great task for a user who wants to contribute to Mixxx! Come ask someone on IRC in #mixxx on Freenode about it.)
  • Windows: MIDI feedback on all but the first listed controller doesn't work with more than one connected. It's best to disconnect/remove all (real and virtual) devices except the one you're interested in working with.
  • Windows: You may need to tell Windows to send MIDI output to the correct device, especially if you hear random notes instead of see lights on your controller: Start→Settings→Control Panel→Classic View→Sounds and Audio Devices→Audio Tab, set “MIDI Music Playback” at the bottom to the device you're trying to use.
  • The use of multiple MIDI devices simultaneously is not yet supported.
  • For script developers:
    • The SelectNextTrack, SelectPrevTrack and LoadSelected controls do not work in the Browse view. See bug #342120.
    • The SelectNextTrack and SelectPrevTrack controls cause the GUI to freeze for a few seconds when you try to scroll down beyond the current page. See bug #361170.

Thursday, February 19, 2009

Hercules releases GPL Linux MIDI drivers & Mixxx 1.6.1+Herc is released

On Feb 16th, Hercules released GPL Linux MIDI drivers for their DJ Console / DJ Control series of MIDI input controllers ( Mk2, RMX, MP3 Control, DJ Control Steel ).

Mixxx is proud to support Hercules' great contribution by releasing Mixxx 1.6.1+Herc (Linux) and the +Herc MIDI mapping update packs (Windows & OSX). All are available for download now at

Hercules users are encouraged to download these updates and visit the Mixxx Hercules documentation page at

Release Notes


Hercules DJ Console Mk1 users will have to wait until usbquirks is modified in the Linux kernel to remove the quirk for Mk1.

Monday, February 9, 2009

MIDI Scripting and the Stanton SCS.3d (Videos)

One of Mixxx's newer developers, Sean Pappalardo (DJ Pegasus), has been hacking away at MIDI scripting for the past few months so that we can fully support more advanced MIDI controllers. One of the new controllers scripting will allow us to support is Stanton's SCS.3d (aka "DaScratch").

The Stanton SCS.3d replaces conventional knobs, buttons and sliders found on other MIDI controllers with touch-sensitive surfaces laid out in a DJ-friendly format. It's compact, rugged, light-weight, and best of all, reliable, since there are almost no moving parts to break. The large central circular area is where all the magic happens as it can be configured to serve multiple purposes (jog dial/vinyl emulation, three sliders, or 9 buttons) depending on the control needs of the software.

Sean demonstrating the SCS.3d with Mixxx 1.6.2

Mixxx's previous MIDI system only allowed you to map one MIDI control to one property and provided no means of feedback or otherwise sending commands to the device. However, controllers like the SCS.3d are of limited use without being able to illuminate LEDs and toggle various modes, since there would be no physical indicators.

Stanton gets around this by offering a free middleware solution called "DaRouter" which essentially acts as a MIDI translation bridge between your DJ software and the SCS.3d. However, it is difficult to get feedback to the controller from your DJ software, and your ability to customize the device's behaviour is limited. Additionally, this middleware solution is not available for Linux.

Enter Mixxx's new MIDI Scripting Engine.

After scratching our heads for some time, we conjured up and coded a system that allows DJs to link hardware MIDI controls with custom script functions. These scripts are written in QtScript, which is an easy language that's almost identical to JavaScript. Scripts can contain functions that can affect any number of Mixxx controls and also send feedback to a hardware MIDI device, freeing Mixxx from a one-to-one mapping ideology. These user-created scripts can then do anything desired with the MIDI event data such as have a single controller button simultaneously affect two or more Mixxx properties, adjust incoming control values to work better with Mixxx (scratching,) display a complex LED sequence, or even send messages to text displays on the controller.

This approach provides a number of key benefits:
  • Script functions are evaluated at run time and and can access or modify Mixxx's internal properties.
  • QtScript brings all of the advantages of a full scripting language. For example, functions can use variables, allowing a single piece of code to be used for multiple cases and to remember states between invocations (this is how we implement mode and deck switching).
  • Functions can send any MIDI messages they like including SYStem EXclusive messages, needed for advanced controllers like the SCS series for mode changes and text displays.
  • Functions can be connected to Mixxx properties so that when the property changes, the function is called with the new value, allowing automatic controller response.
  • DJs can customize the script functions to suit their particular work flow and desires without compiling anything.
  • Support for complex controllers can be added to Mixxx at any time between releases by anyone since no compilation is needed!
  • No middleware is needed to use advanced controllers like the SCS.3d with Mixxx
  • Our MIDI scripting system is platform-independent, which makes it available to Windows, Mac OS X, and Linux users!

Our new MIDI scripting engine is going to be the biggest new feature in Mixxx 1.6.2, and we're currently polishing it up along with some of our other MIDI code. We hope to have a beta release out within the next month or two for our DJs to play with.

Lastly, we'd like to thank Stanton for their gracious support and cooperation. We think the SCS.3d is going to be a great device for Mixxx users in the future!