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.


  1. That is great! I like Mixxx very much, because it`s a really good software;) There`s no better software for GNU/Linux than Mixxx. Greetings from Czech republic.

  2. Does this release also contain the Hercules MIDI mapping that you mentioned in February?

  3. stopsatgreen: Yes, this release also contains all the Hercules MIDI mappings from February's 1.6.1+Herc release.

    If you have a Hercules controller and can test it, please let us know if it works by updating the testing matrix on the wiki!


  4. please make another version that can record your mixes

  5. DJ Baldo: Mixxx has been able to record your mixes since 1.6.0, and this release is able to as well.

  6. Hello, i'm going to buy an Xponent, would be glad to test and script ;)

  7. Hello there, first thanks for this great and adaptable software and i wood like to give a sugestion because i dont know how to code, i wood like to see the CRISTALITY plugin that is avaible for xmms adapted to mixxx, because in linux we do not have srs wow or other great dsp effect to improve mp3 sound quality, and i think this plugin helps allot.

  8. I seem to be losing sound quality and vinyl control responsiveness with this much that i cannot slip cue

  9. Hey guys! thanks for working so hard!
    But we really need "looping tools" ! Not sure that your midi/nuclear/scripting environment is more important than loops.
    We don't want to code, we want to play music :)



  10. Fantastic work.

    Can I cheekily encourage you to have another look at integrating lib_rubberband as the time / pitch stretch algorithm? It just sounds so damn good, even at extreme settings - much better than anything else I've ever heard! I think it'd make Mixxx sound "just right"


  11. sdefzone: Our decision to work on MIDI scripting was almost entirely based on the fact that we simply wouldn't be able to support new MIDI controllers in the future otherwise. It was getting exponentially more difficult to add support for controllers, and we've now future-proofed our code to make it relatively easy for us to add support for new controllers in the future. This is for the good of our users, who want to use MIDI controllers, and for the good of the Mixxx as a project, who could have become obsolete quickly in the face of fancy new controllers. It just had to be done.

    That said, you'll be happy to hear the new library and looping have been targeted as our top priorities for Mixxx 1.8. :)

    Thanks for your comments!

  12. Beta1 is awsome.
    Works incredibly well.
    Feels like serato, even better.
    Thankyou so much.

  13. Hi, I think your program is really interesting, but I stopped using it after discovering that it would not show song info if song file doesn't have ID# tags. I see it as a real shortcoming...

    Are you planning to enable file name display if ID# info is not available?

  14. Anonymous: I think we currently try to parse the artist and song title by looking at the filename if there's no ID3 tag, but this only works for "artist - title.mp3" style filenames.

    I don't think is this currently a priority so I wouldn't hold my breath for it, but it wouldn't be hard to hack in, so I'd invite you to take a crack at it. Little tasks like this are a great way to get started coding Mixxx if you know C++...


  15. Unfortunately the best what I could offer is xhtml and css :)

    P.S. Usually I use 01 - Artist - Song Name.mp3 naming pattern...

  16. That's OK. :)

    Sometimes people pop into our IRC channel and look for little tasks to do, so next time that happens I'll try to point someone towards this and see if anyone's interested in looking at it.

    Thanks again!

  17. Hello,
    is it possible to show a value if a slider is moved?

  18. Hi Anonymous,
    If you have development-related questions, your best chance at getting an answer it to direct them to our developers' mailing list. See:


  19. I just discovered Mixxx and found it really great but most of my MP3 are not tagged and appear as blank lines in the library view and in the play queue. This makes Mixxx unusable for me. I would be really thankfull if you could simply make that filenames are displayed when ID3 tags are not available. Many thanks to the development team for their great work.