Wednesday, December 17, 2008

Looking for a Community Coordinator

Are you a creative Mixxx enthusiast?
Would you like volunteer with the project, but don't know how to code?
If so, we might have found the role for you - We are officially looking for a Mixxx Community Coordinator.



As the Mixxx community grows, we're finding that we're spending more and more time on administrative tasks and less time writing code. We've got cool ideas for stuff to do with our community, but we don't have time to do them and keep pushing development forwards at the same time. A community coordinator will help fill a growing niche in our development team and will be a great benefit to the project.

Our community coordinator will have many responsibilities, including moderating the forums, writing blog and news posts, and will also hold the cherished title of Mixxx Chocolatier*. We're looking for a dynamic, enthusiastic individual with a passion for DJing (and excellent English language skills) to fill this position. Any experience with forums and HTML is a plus.

If you think you'd be a good candidate and you'd like to be our community coordinator, please contact Adam or Albert and tell us a bit about yourself. Due to the importance of the responsibilities involved, we'll be following up with interviews for potential candidates.

As Mixxx continues to grow, more opportunities for more volunteers to help out without coding will continue to arise. We've seen tremendous growth since our 1.6.0 release, and there's no signs of slowing down. Getting involved with an open source project also looks good on your resumé or CV, and it can help demonstrate the diversity and flexibility of your background. 2009 will be a great year for Mixxx, and we're looking forward to hearing from interested volunteers!

* More on the chocolatier front will come as we fill this position.

Wednesday, December 3, 2008

Rewriting the Library

This developer commentary explains the trials and tribulations of Mixxx's library code, and what the Mixxx developers are doing to improve it.

In the (long) development cycle between Mixxx 1.5.0 and 1.6.0, several changes were made to the library. Some of the more visible changes were the addition of our search box and "Browse" mode, which allows you to play songs off your hard drive without importing them into the library. There was also significant work done on playlist handling and management.


Mixxx 1.5.0, with our old-school library



Mixxx 1.6.1, with the new library


One not-so-apparent difference is that the underlying code was changed to use the Model-View-Controller (MVC) paradigm, which is easy to do with Qt 4 (... or so we thought).

As it turns out, many of the library problems that have been discovered since 1.6.0 are tied to the fact that we botched our use of MVC. Even if you grasp the MVC concepts at a high level, when you get deep into coding it, the separation between "models", "views", and the organization of GUI code can become mucky. Basically, we made some design mistakes, and the only way to correct them and allow us to continue improving the library is to go back and rewrite it from scratch. Some of the library-related bugs in our tracker are going to be very tough to fix because of the current poor design (#194415, #202594, #257769, #258955, #275198, etc!). Rewriting the library code will prevent many of these bugs from reappearing, and should also prevent us from being in a quagmire like this again in the future. Of course, this all depends on us having learned from our mistakes, and I hope that we have. :)



Mixxx with the even newer library! (work-in-progress)


Back in October at the GSoC Mentor Summit, I started hacking our library to use an integrated SQLite database to store track metadata, instead of storing them in a flat XML file on disk. I quickly discovered that there were two separate problems - The first being how the library was stored inside Mixxx at runtime, and the other being how it was stored on disk (XML).

At runtime, we were using a gigantic skip-list to store the metadata of every single track in the library. If you had a library with 100,000 songs, we were keeping the metadata (eg. ID3 tag info) for every song in memory. As you might guess, this was probably something the original Mixxx developers didn't think very hard about, because it doesn't scale well to large libraries. This brings us to the second problem.

When Mixxx starts up or is shut down, it read/writes all of this track metadata to an XML file (mixxxtrack.xml). Again, this simply doesn't scale well for large libraries because it takes a very long time to write metadata for a library of 100,000 songs (and is another example of where the original Mixxx developers didn't think hard enough).

When I started hacking SQLite integration into Mixxx, I started replacing the XML file loading/saving stuff. I quickly realized that I was going to need to fix the skip-list problem too, and then the lightbulb went on - Switching to SQLite solves both of these problems. Rather than storing metadata for all the tracks in memory at runtime, we could simply query the database to retrieve what we need. With that thought, I started deleting as much of the old library code as possible - It was a complete write-off.

I wanted to start from scratch to prevent myself from falling into the trap of the poor design of the old library. I coded many of the changes to the library that were made in 1.6.0, and it took a long time for me to finally give up and realize it was never going to be salvageable. I find this amusing because history is repeating itself - I made major changes to the soundcard I/O code inside Mixxx several times before I gave up and rewrote it all from scratch (which enabled things like vinyl control and multiple soundcard support to happen). For me, this is the fuel that keeps me coding. I know that cool things will be possible if I rewrite the library the Right Way (TM).

There is still a very long way to go before the new library code is complete, but I already have a few new features that people have been requesting, like the ability to move the columns in the library around (which saves automatically too!). Starting and shutting down Mixxx is faster, and I'm hoping that searching will be faster as well. The rewrite has also improved other areas of Mixxx's code - Some pieces of the old library were tied to seemingly unrelated parts of Mixxx, and fortunately I've been able to separate them, which solves many of the code organization problems that the old library had.

Some of the (big) things that need to be added still are playlist support, browse mode, and some sort of intelligent library scanning. The last item is being worked on by a new contributor, and we've been playing around with some cool ideas that we're both hoping will improve the library scanning/rescanning situation greatly. (That topic probably deserves a blog article on it's own.) :) In any event, the new library code won't be ready for at least another release or two.

Anyways, the main focus is to reimplement all the library functionality that was there before, but while I'm hacking the library, I want to hear what cool new features you (Mixxx users) want. If you want to share a neat idea, please leave a comment!

Monday, November 24, 2008

Effects Progress

Since the 1.6.1 release, we've been hard at work integrating several new features that have been in the works for a while.

In our last user survey, many people told us that Mixxx needed some effects besides the flanger. In response to your feedback, we had Pawel Bartkiewicz work on LADSPA integration through Google Summer of Code in 2007. LADSPA is a terribly misleading acronym for "Linux Audio Developers Simple Plugin API". As it turns out, LADSPA isn't just for Linux - it's a cross-platform effects plugin framework, and that made it the natural choice for us. Pawel did great work last Summer, but it came in middle of our 1.6.0 development cycle and in order to properly integrate his work into Mixxx, several other tasks needed to be completed first.

One of these more noticeable tasks has been to create a new tabbed view, where both the library and effects pane can be managed.

With the new reverb and "DJFlanger" effects, you can add some interesting flavour to your mixes.

The screenshot above shows the effects panel inside the new tabbed view. It also shows several of the effects that we're going to bundle, on the left. The tabbed view will also give us a compact place to expand Mixxx's user interface in the future.

If you look at the screenshot closely, you can spot some rough edges that we're trying to fix before our next major release. The main tasks that remain are bug fixing, polishing, and updating our distribution stuff (installers, packaging scripts, etc.).

For Windows and OS X users hoping for VST support, we think it should be possible via Audacity's awesome VST enabler. The VST enabler should allow us to load VST plugins, but to my knowledge, nobody's tested it yet. The reason we can't build native VST support directly into Mixxx is because of Steinberg's restrictive license on their VST software development kit.

That's all for now! We're going to keep hacking away at LADSPA and the rest of the new features we're working on, and hopefully we'll have something out the door before the end of the year.

Wednesday, November 12, 2008

Mixxx @ GSoC Mentor Summit

Three of the Mixxx development team recently attended the Google Summer of Code Mentor Summit. For those of you who don't know, GSoC is a programme where Google funds students to spend their Summers working on open source software.


GSoC 2008 Mentors from Mixxx - Adam, Albert, and Garth

We got to meet a lot of developers from other open source audio packages which was, very interesting. It was also a good opportunity for Garth, Albert and myself to sit down and do some hacking on Mixxx together. One thing to come out of this already has been some serious work on rewriting the library code to use SQLite, which should make Mixxx scale to large music libraries much more smoothly.


Developers from CLAM, VLC, Audacity, and Mixxx!

Overall we had a great weekend at Google and we got to have some good discussion relating to Summer of Code 2008. Mixxx developers also ran sessions on "Monetizing your Open Source Project (without being evil)" and "What open source can learn from commercial software development", both of which were well received.

We'd also like to thank everyone at Google who worked on Summer of Code for making it happen.

Saturday, September 27, 2008

Mixxx 1.6.1 Released!

Hot off the heels of our last release comes Mixxx 1.6.1, bringing a handful of new features and bug fixes.



Some of the more important changes are:
  • The waveform view now zooms instead of speeding up when the pitch is adjusted. This allows the beat ticks to align when songs are beatmatched, and was a feature request we heard many times after the 1.6.0 release.
  • FLAC support for Windows users! (Another much requested feature, and you can thank Michael Pujos for his hard work on this.)
  • Fixed a problem where the waveform view went unresponsive (thanks to Mark Glines for the patch)
  • Properly read artist and title names from FLAC files (another one from Mark)
  • Fixed drag-and-drop on Windows with the "Simple" display mode.
  • Fixed a Hercules RMX problem with its MIDI mapping.
  • Fix for songs with short artist names.
We've also had some mild success with M4A/AAC support, but it's still going to be a while before that feature makes it into a release unfortunately. We're also still working on our OS X 10.4 (Intel) package still, but we do have an unsupported OS X 10.5 package for PPC available for download here.

Wednesday, September 24, 2008

Updated MixMan DM2 Driver for OS X


Joe Mattiello has updated his MixMan DM2 driver for Mac OS X. From his release announcement:


This version adds Mixxx support, which should mimic the Linux ALSA (Jan's) driver. This means it should be a drop in replacement with the same .xml config file already packaged. Note, this is different then the version for the DM2 under windows, which is a completely different setup.

This version also includes a more extendable Generic MIDI mode which supports 4 banks completely and a PD patch to get you started on custom setups.

Sites / DL's / Source :
http://code.google.com/p/dm2usbmididriver/
http://www.joemattiello.com/dm2/

The driver is also open source now, which the code available here.

Monday, September 1, 2008

PPC Support Problems for Mixxx 1.6.0

We've got some bad news about the Mac PPC version of 1.6.0. Due to a "communication error", I thought we had someone building a PPC release and it turns out that person was actually doing something completely different. Unfortunately, I also promised erroneously to some people on the forums that it would be ready very soon.

So the situation is this, it seems that building a PPC release is beyond our available resources currently, as few of our current developers have access to such hardware. As such, we are urgently seeking someone to fill the role of PPC packager for Mixxx, this person will need access to a PPC Mac, some expertise in building software on it and some spare time. We will support this person to the best of our ability and they will be recognised as an official member of the development team on our website. We may also be able to pay in Mixxx branded t-shirts or mousemats. :)

If anyone is interested in this, please contact us using any of the usual methods.

So again, apologies to all those PPC Mac users out there who were misled, this was an honest mistake and we feel quite bad. Hopefully we will have a PPC release for you soon.

Sorry,

Adam

Update: We've had several volunteers come forward, and we're working with them to get a PPC build working. How long this will take depends on how much time the volunteers have, so I don't a package very soon, but at least the gears are turning now. :) Thanks for your help!

Wednesday, August 6, 2008

Mixxx 1.6.0 Released!

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



Mixxx 1.6.0 represents over a year's worth of hard work from our growing development team. The development of 1.6.0 was been driven by continuous feedback from our users, the bulk of which began in May 2007 with our popular user survey. Since then, we've taken the features that people wanted the most and focused every effort on developing them. Needless to say, 1.6.0 is light-years ahead of 1.5.0, and our community's continued appreciation for Mixxx has served as a strong motivator for us throughout its development.

We've also relaunched our website with a fresh coat of paint. Clicking the thumbnail above will take you to the new site.

Mixxx 1.6.0 is now available on our downloads page.

We'd like to thank both Hercules and Echo Audio for supporting Mixxx's development. Hercules' MK2 and RMX controllers are excellent, and Echo makes fantastic professional-grade soundcards (and we mean it).

If you'd like to come hang out with some of the Mixxx developers and fellow users, we're having a meetup at the Linuxcaffe in Toronto on Friday, August 8th from 7 PM to 11 ish. Come check it out!

Before getting to the changelog, I'd like to mention one thing - A big change we've made is that Mixxx 1.6.0 is built on the Qt 4 platform instead of Qt 3. Porting Mixxx to Qt 4 took a massive effort from many developers, and was important to modernize Mixxx's look and feel, as well as ensure that Mixxx's codebase doesn't become obsolete. We've made many technical improvements inside Mixxx in order to allow the project to grow well into the future. Mixxx is now a much more mature open source project than it was a year ago, and there's no signs of us slowing down.

Since Mixxx 1.5.0 was released (March 4th, 2007), the following changes have been made:
  • New MIDI mappings for Tascam US-428, M-Audio X-Session Pro, Evolution X-Session, FaderFox DJ2, and the M-Audio Torq Xponent, Vestax VCI-100, Akai MPD24, Behringer BCD3000 (including LEDs), Numark Total Control
  • Many Hercules MK2 improvements
  • Support for the Hercules DJ Console RMX
  • Support for the Hercules DJ Console Mac Edition
  • Slick sliding VU meter peaks - Screenshots don't do this justice (download it and check it out).
  • Added the new Natt skin, from Natt from the forums.
  • Completely rewritten waveform view by Russell Ryan through Google Summer of Code. This will provide better performance for some users.
  • Some very under-the-hood improvements that should fix the odd crash-at-startup and improve performance.
  • Fixed keyboard cue keys to use whatever cue behaviour is selected in the preferences.
  • MP3 parsing fixes for files with cover art (fixes blips at the start of some songs)
  • OGG parsing improvements, fixes some library scanning problems
  • Fixed OGG playback on Intel OS X machines
  • Completed drag-and-drop support in the library. You can now import tracks to the library by drag-and-dropping a track from outside Mixxx onto the library view. You can also reorder tracks in a playlist or the library.
  • Option to disable the BPM detection.
  • Added BPM reading from MP3/OGG files which have it embedded in them (ID3), one of several enhancements by Martin Sakmar
  • Various accuracy improvements to the BPM detection
  • Improvements to the vinyl emulation and pitch-independent time stretch sound quality
  • Wave recording support
  • Vinyl control with support for Serato, Traktor, and FinalScratch vinyl, as well as Serato CD.
  • Added support for multiple inputs on a single soundcard for vinyl control
  • Build flags are now cached automatically
  • Improved flanger effect, thanks to Enry
  • Configurable cue behaviour, which now defaults to CDJ-style cueing. (Thanks to Tom Care)
  • Enabled realtime priority with ALSA, improves performance with Linux RT kernels.
  • FLAC support for Linux and OS X users (much requested)
  • Tons and tons of bug fixes.
  • Fixed crashes due to vinyl emulation mode
  • Improved compatibility with JACK (some users were experiencing choppiness)
  • Players should now only pull from the play queue if in NEXT mode
  • Search functionality:
    o Search box now selects all text when clicked (easier to make a new search now)
    o When the search box is cleared, the library view will scroll back to it's previous position.
    o Search now properly filters directories out
  • Library stuff:
    o Double-clicking on a song now sends the song to the first stopped player.
    o Right-click menu cleaned up, much nicer now
    o Library directory rescans on startup when it's been modified (*doesn't work when subdirectories are modified yet)
    o Library view now shows directories first
    o Columns in the library view are proportioned intelligently now
    o Renamed the "Playlist" menu to "Library"
    o Added "Rescan Library" menu item.
    o Can select multiple songs (hold shift) and send them to the play queue or a playlist
  • Playlist support:
    o Can create, import, delete, and rename playlists
    o Added "Playlists" to library drop-down box
    + Can right-click to send a playlist to the play queue.
  • Fixed some bugs in the track properties dialog, and set default values
  • Fixed a soundcard channel selection bug when the second device had more channels than the first.
  • Added BPM Schemes (need to make some presets still)
  • Minor speed optimization
  • OS X/Leopard package for Intel users!
  • A few build system (dependency checking) fixes
  • MIDI LED control on Linux
  • A few MIDI tweaks here and there
  • Right-clicking on a knob/slider no longer moves with your mouse (it just centers the value)
  • Using your mouse's scroll wheel now changes the values of sliders and knobs (this is cool for laptop users with the little scroll bar at the side of their trackpads)
  • DirectSound is now the default API on Windows
  • ALSA Sequencer MIDI support courtesy of Cedric Gestes
  • A couple of MIDI bug fixes (knobs now center properly, thanks to Sacha Berger)
  • Added support for 14-bit MIDI pitch wheel controllers (thanks to Adam Sugerman)
  • Hercules support on Linux improved (jog wheels work again)
  • Big stability improvements
  • Multiple soundcards can now be used for output (master/headphones), in case you don't have a soundcard with 4 outputs on it.
  • Adam's wicked colour scheme support for skins
  • Can now change skins without restarting Mixxx (more hard work from Adam)
  • Channel VU meters are now pre-fader
  • VU meters are now much more smooth
  • Added clipping indicators (courtesy of John Sully)
  • Higher quality EQs and other sound quality improvements (also from John Sully)
  • Adjustable EQ shelves
  • New MIDI mapping format now in XML, supports controlling LEDs
  • Better Hercules support on Windows and Linux
  • New BPM detection algorithm (Micah Lee/GSoC 2007)
  • New media library (Nathan Prado/GSoC 2007)
  • LADSPA effects support (not yet enabled - Pawel Bartkiewicz/GSoC 2007)
  • BPM Tap tempo
  • Ported to Qt 4
  • Moved build system to SCONS
  • Redesigned preferences dialogs
  • Rewritten audio core (Albert)
  • Vinyl control support for Serato, Traktor Scratch, and FinalScratch (FS needs work, but the others are good)
  • Software preamp for vinyl control (can use turntables without a preamp)
  • Track info editor (double-click in library)
  • New library browse mode (CTAF)
  • Starts in fullscreen mode if launched with the -f flag.
  • Several MP3 decoder performance and stability improvements (John Sully)
  • Support for merengue
  • Reorganized "File" menu
  • NEXT mode now works as expected (plays the next track in the table)
  • Lots of little OS X improvements
  • Improved consistency of fullscreen mode
  • Customizable constant power crossfader curve
  • Slow fade and fast cut crossfader curves
  • Play queue, for creating an on-the-fly playlist
  • Revamped playlist interface, editing
  • Reasonably intelligent library rescanning
Once again, Mixxx 1.6.0 can be downloaded for free from our downloads page.

Saturday, August 2, 2008

Mixxx Meetup – Friday, August 8th 2008 7pm @ Linux Caffe Toronto

Mixxxers, all your hard work is about to pay off, we're about to release our first major update in more then a year and that means it's party time.

Join us at the Linux Caffe in Toronto as we meet, eat, and scratch out some beats to celebrate the newest release of the world's best free DJ software: Mixxx 1.6.0!

Date: Friday August 8th 2008 - 7pm till they kick us out (~11pm)

Location[map]: Linux Caffe is at 326 Harbord Street, Toronto, ON, M6G 3A4 (a block south of Cristie Subway Station)

Friday, July 25, 2008

Mixxx 1.6.0 Release Code-a-thon

It's hard to believe it's been over a year since the release of Mixxx 1.5.0, our last stable release. However, we're pleased to say that we're now nearly ready to bring 1.6.0 out of beta.

As part of the final push to get the release done, we're planning a whole day coding/fixing/testing session next Tuesday (the 29th). Most of the development team will be on our IRC channel (#mixxx on irc.freenode.net) and everyone is invited to come and join us. Whether you want to help write code, help test the release as it comes together, dj up some tunes for the development team or simply come and watch, everyone is welcome and there will be plenty to do, even for non-technical people. Things should start around 10am in Europe and run through to the evening in the Americas.

Look forward to seeing you there,

Adam

Tuesday, July 22, 2008

Indamixx Handheld Available


Trinity Audio Group's Indamixx portable studio is now available. From the press release:

Los Angeles, CA (PRWEB) July 21, 2008 -- Trinity Audio Group Inc. announces today Indamixx, a full featured Linux hand held studio providing a mobile recording environment, allowing users to record, edit, mix, DJ and publish songs or sound files from the field or on the go. Ideal for Producers, Remixers, and DJs. Finally, you can take your studio with you! Pre-loaded software, easy updating and no driver hassles, makes Indamixx an instant audio creation companion.

The device comes preloaded with Mixxx for touchscreen mixing goodness. For more information, check out the press release or their official site.

Thursday, July 17, 2008

Mixxx 1.6.0 Beta 4 Released!

The Mixxx development team is proud to announce the fourth beta of Mixxx 1.6.0, the premiere open source DJ software. (Download!)

Our last two months of development have been spent polishing 1.6.0 and fixing as many remaining bugs as we could find. We've tackled numerous performance issues and fixed many bugs people have reported.

Mixxx 1.6.0 has been in development for almost a year now, and earlier this month we decided to start wrapping up development. Beta 4 will be our last beta release, and we're hoping to release 1.6.0 final within the next couple of weeks. The 1.6.0 release will also mark a change in our development process, so that we can both improve the quality of new features and ensure more frequent releases. I'd like to write more on this after the 1.6.0 release to help give Mixxx fans some insight into how our development process works.

Back to Beta 4 in the meantime though - Here's our list of improvements since Beta 3:
  • Completely rewritten waveform view by Russell Ryan through Google Summer of Code. This will provide better performance for some users.
  • Slick sliding VU meter peaks - Screenshots don't do this justice (download it and check it out).
  • Added the new Natt skin, from Natt from the forums.
  • Fixed some play queue bugs.
  • Some very under-the-hood improvements that should fix the odd crash-at-startup and improve performance.
  • Fixed keyboard cue keys to use whatever cue behaviour is selected in the preferences.
  • MP3 parsing fixes for files with cover art (fixes blips at the start of some songs)
  • OGG parsing improvements, fixes some library scanning problems
  • Fixed OGG playback on Intel OS X machines
  • Completed drag-and-drop support in the library. You can now import tracks to the library by drag-and-dropping a track from outside Mixxx onto the library view. You can also reorder tracks in a playlist or the library.
  • Added support for the Vestax VCI-100
  • Hercules MK2 improvements
  • Disabling the BPM detection works as advertised now.
  • Improved vinyl control behaviour near the start of the vinyl.
As with our previous betas, please report any bugs you find.

We plan to have the 1.6.0 final out within the next few weeks, as mentioned earlier. In the meantime, stay tuned and download Mixxx 1.6.0 Beta 4 to tide you over!

Saturday, June 21, 2008

Progress towards 1.6.0

These last few weeks of development have been pretty exciting. We've been tackling the bugs we've marked as "release critical", which means we're getting closer to the 1.6.0 final release.

There's been improvements to the library as well as many other bug fixes made, and our Google Summer of Code students have all started writing code for their projects. The sooner we get 1.6.0 released, the better our chances will be of getting a second stable release out this summer, which might include some of the features being worked on by our students right now.


In the meantime, we need your help to track down these last few bugs. In particular, we need help with the following bugs:
  • WinXP reports error on initial library scan - If you had an MP3 that was causing Mixxx's library scanner to crash, please test the new Mixxx version posted in one of the comments on this bug report and let us know if you still have the problem.
  • Program fails to open (WinXP) - If Mixxx just wasn't opening for you, please try the new SVN release posted in this link as well.
If you can, please help us by trying to reproduce these bugs. Depending on how this last round of bug fixing goes, we'll either release Beta 4 or a release candidate, and then hopefully the 1.6.0 final shortly thereafter. We're also going to be working on an overhaul of the Mixxx site, which should spice it up quite a bit. Stay tuned!

Tuesday, May 27, 2008

Mixxx 1.6.0 Beta 3 Released!



The Mixxx development team is proud to announce the release of Mixxx 1.6.0 Beta 3 (download)!

It's been 3 months since our last beta release, and in that time we've been busy fixing tons of bugs and sneaking in the occasional new feature. We put major effort into solving a few stability issues people encountered with our last beta, as well as fixing many other quirks. We'd like to thank all of our users who've been reporting bugs in our bug tracker, as your reports have saved us a great deal of time.

Anyways, on with the juicy changelog since Beta 2:
  • Added BPM reading from MP3/OGG files which have it embedded in them (ID3), one of several enhancements by Martin Sakmar
  • Various accuracy improvements to the BPM detection
  • Added preliminary support for multiple inputs with vinyl control (consecutive channel pairs only - eg. 1/2 and 3/4)
  • Support for the Hercules DJ Console RMX
  • Hercules DJ Console MK2 bug fixes
  • Support for the Hercules DJ Console Mac Edition
  • Support for the Behringer BCD3000, including LEDs
  • Support for the Akai MPD24
  • Improvements to the vinyl emulation and pitch-independent time stretch sound quality
  • LADSPA effects support is rapidly improving, but is not compiled in by default yet (scons ladspa=1)
  • Finished adding recording support
  • Performance improvements while using vinyl control
  • Support for 96000 Hz samplerates with Serato vinyls
  • Build flags are now cached automatically
  • Improved flanger effect, thanks to Enry
  • Configurable cue behaviour, which now defaults to CDJ-style cueing. (Thanks to Tom Care)
  • Enabled realtime priority with ALSA, improves performance with Linux RT kernels.
  • FLAC support for Linux and OS X users (much requested)
  • Tons and tons of bug fixes.
Mixxx 1.6.0 Beta 3 is available on our downloads page.

The development of multiple-input soundcard support (with vinyl control) was made possible by Echo Digital Audio. Echo makes very nice professional soundcards, and their AudioFire line of cards are excellent FireWire solutions for DJs on-the-road and in the studio. I've been using one of their cards for development, and they work very well on Windows and OS X. Support for AudioFire cards on Linux is improving rapidly through the FFADO project as well.

We've also bundled some free tracks from Ugress and Carlo Carosi with this release. These tunes will give DJs something to mix right out-of-the-box, and we think you'll like them.

For our next release, we're going to shift focus towards polishing the remaining rough edges and fixing the remaining critical bugs we find. Whether our next release will be a fourth beta or the 1.6.0 final release remains to be decided, as it depends mainly on how many critical bugs we find and how much time we have to fix them. If you want to help us fix bugs, please join us on IRC (#mixxx on Freenode) and we'd be glad to help you get started hacking Mixxx.

Monday, April 28, 2008

Scratching with Mixxx 1.6.0



This latest video of Mixxx 1.6.0 in action demonstrates what scratching sounds like with vinyl control. In the video, I'm scratching with a Serato record on my Stanton T.80 turntable, and using my M-Audio X-Session Pro MIDI controller as a virtual mixer. I changed Mixxx's crossfader curve setting in the preferences to "fast cut", which is what you'd set the curve control on a real mixer to when you're scratching.

The turntable is plugged directly into my laptop using the turntable's line-out and my laptop's onboard soundcard.

I recently did some work on our "vinyl emulation" code that mimics the way the pitch changes when you're using a turntable. I managed to improve the sound quality enough that scratching with Mixxx + vinyl control sounds convincingly similar to scratching with real vinyl. These improvements will be included with our next beta release.

Monday, April 21, 2008

Google Summer of Code 2008 Projects

Today, Google announced the students that have been accepted into the Summer of Code 2008 program. We received many good applications from students who were competing for one of four slots with Mixxx. Due to the volume of high quality applications, we had to make some tough decisions, but after more than a week of deliberation, we are excited to introduce our Google Summer of Code students for 2008:
  • Tom Care - Implementing an improved MIDI control system
  • Russel Ryan - Creating a new Waveform View
  • Zach Elko - Crash Recovery
  • Wesley Stessens - Internet Broadcasting

Tom Care's project aims to improve our MIDI support by, among other features, creating a MIDI learning feature that will allow new MIDI mappings to be constructed easily from within Mixxx.

Russell Ryan's project involves rewriting our waveform view in a more modular way and adding support for extra visuals such as better beat marks and timbre information.

Zach Elko will explore a graceful crash recovery mechanism for Mixxx in order to minimize any potential disruption during a performance. Zach is also going to explore some preventative measures to improve our testing, such as constructing a stress-testing robot that will allow us to find bugs faster.

Finally, Wesley Stessens will improve Mixxx's internet broadcasting code by writing an improved broadcasting engine, including an internal MP3 encoder.

Together, these projects are going to make for an exciting summer and have the potential to improve our users' experiences with Mixxx. In the meantime, we're continuing to press onwards to 1.6.0 beta3 and the final 1.6.0 release. We've been fixing bugs day and night since the last beta release, and we'll post an update when we're nearing the next one. Stay tuned!

Tuesday, March 18, 2008

Mixxx in Google Summer of Code 2008!



Google has just announced the participating mentoring organizations for Google Summer of Code 2008, and Mixxx has been accepted for our second consecutive year!

The Google Summer of Code program allows students to receive a $4500 USD stipend for writing code for an open source software project over the summer. Students can apply by writing applications to the mentoring organizations (like us) via the GSoC 2008 web app. For more information about how GSoC works, please see the program FAQ.

Last summer, Mixxx had three students working on various projects. Micah Lee improved our BPM detection algorithm by replacing it with a better one and refactoring a lot of code. Pawel Bartkiewicz worked on adding LADSPA support to Mixxx, and Nathan Prado spearheaded our library improvements. While not quite every detail was finished, all three projects were a success on the whole and Mixxx is much better thanks for these students' participation through Google Summer of Code.

This year, we've got a new list of ideas up on our wiki, and we're looking forward to seeing what other projects potential students can come up with. This is going to be an interesting summer for Mixxx, as the pace of development usually picks up in the summer and our community is really starting to grow. So if you're a student who wants to get involved with Mixxx, go ahead and apply!

Wednesday, March 12, 2008

Mixxx at Cheap as Chips 2008

Mixxx was spotted last Sunday at the Cheap as Chips music festival in Christchurch, New Zealand. DJ Kid 90 dropped "a set of lush kiwi tunes to 10,000ish people", and was looking quite slick with his MacBook.







Kid 90 hosts an independent New Zealand electronica show on RDU, one of NZ's student radio stations. The show runs from 5 - 7pm Saturdays (NZ time), and he says he tends to play "Downbeat, Breaks and D'n'B with a little Psy thrown in for good measure".

Check out more pictures on our wiki page for the event and visit Kid 90's MySpace page.

Sunday, March 9, 2008

Mixxx 1.6.0 Beta2 for Tiger


Mixxx 1.6.0 Beta2 for OS X Tiger (Intel) has just been released! After we released our Leopard package, most of the feedback we heard from Mac users was "make it work on Tiger". With this new package, Tiger users can now play around with our latest beta release too.

If you're still running Tiger, you can pick up Mixxx 1.6.0 Beta2 on our downloads page.

Tuesday, February 26, 2008

More Mixxx Videos

There's been some cool new Mixxx videos posted on YouTube this month. First up is Trinity's Indamixx handheld again, this time demonstrating a beatmix on the device:


For more information on the device, check out the official site.

Next up is a video from one of our developers, Jan Jockush, demonstrating all the hard work he put into the Mixman DM2 on Linux:



Looks like it's working pretty well!

Friday, February 15, 2008

Minor Website Revamp





If anyone reads our developer's mailing list, you might know I'm not a huge fan of SourceForge. We've been planning for months to move away from it, and today we've taken a big step in that direction. Our website is now located at: www.mixxx.org

We've also started using our new logo, created by Paul Bloch of OpenArtist. He's quite talented, and is working on a more thorough overhaul of the Mixxx website to be launched sometime in the upcoming months.

Among the new changes to the website are our new forums, and our new (and faster) Mixxx Wiki. We're looking forward to helping the community grow on the new forums.

Lastly, we're going to be using our Launchpad page's bug tracker from now on. It's much easier to use, and isn't cluttered with 10 megabytes worth of flash ads like the old one. :)

Enjoy!

Saturday, February 9, 2008

Mixxx 1.6.0 Beta2 Released!


We're proud to announce that the second beta of Mixxx 1.6.0 has been released!

Among the changes since 1.6.0 beta1:
  • Fixed crashes due to vinyl emulation mode
  • Improved compatibility with JACK (some users were experiencing choppiness)
  • Players should now only pull from the play queue if in NEXT mode
  • Search functionality:
    • Search box now selects all text when clicked (easier to make a new search now)
    • When the search box is cleared, the library view will scroll back to it's previous position.
    • Search now properly filters directories out
  • Library stuff:
    • Double-clicking on a song now sends the song to the first stopped player.
    • Right-click menu cleaned up, much nicer now
    • Library directory rescans on startup when it's been modified (*doesn't work when subdirectories are modified yet)
    • Library view now shows directories first
    • Columns in the library view are proportioned intelligently now
    • Renamed the "Playlist" menu to "Library"
    • Added "Rescan Library" menu item.
    • Can select multiple songs (hold shift) and send them to the play queue or a playlist
  • Playlist support:
    • Can create, import, delete, and rename playlists
    • Added "Playlists" to library drop-down box
      • Can right-click to send a playlist to the play queue.
  • Fixed some bugs in the track properties dialog, and set default values
  • Fixed a soundcard channel selection bug when the second device had more channels than the first.
  • Added BPM Schemes (need to make some presets still)
  • Minor speed optimization
  • OS X/Leopard package for Intel users!
  • A few build system (dependency checking) fixes
  • MIDI LED control on Linux
  • A few MIDI tweaks here and there
  • Right-clicking on a knob/slider no longer moves with your mouse (it just centers the value)
  • Using your mouse's scroll wheel now changes the values of sliders and knobs (this is cool for laptop users with the little scroll bar at the side of their trackpads)
  • DirectSound is now the default API on Windows
  • Cleaned up the vinyl control preferences
We've also been working tirelessly on some other big features that haven't made it into a release yet:
We're having some trouble sorting out this JACK/Ubuntu bug. A huge number of people can't get JACK to appear in our Sound API selection box on Ubuntu, and this is due to Ubuntu's PortAudio package not being able to find the JACK package when it's being built (I think). I've been unable to fix this, but someone from Ubuntu Studio told me that they'd have this fixed for Hardy. However, if someone wants to take a crack at fixing it (because I think there's still a good chance it'll be broken in Hardy if someone doesn't fix it very soon), the details of the problem are available here.

Once again, you can pick up Mixxx 1.6.0 beta 2 on our downloads page, and be sure to report any bugs you find in our bug tracker. Your feedback from beta 1 helped us identify the big issues people were having, and helped us make this release even better - thank you!

Friday, February 1, 2008

Feature Preview: Shoutcast Broadcasting

One of our newer contributors, Wesley Stessens, has been hard at work on Shoutcast/Icecast broadcasting support for Mixxx.


It turns out Shoutcast support was a little bit more complicated than we had been expecting, but Wesley's done a great job of tackling all the problems that have come up. Wesley also wrote a modular Ogg Vorbis encoder for the Shoutcast code, which we hope to reuse in our recording code in the future.

As a sub-project, adding Shoutcast support to Mixxx has been interesting because it's one of the nice modular projects we listed as a "Weekend Project" on our Wiki. When Wesley came along and said he was interested in coding Shoutcast support, I had already sketched out what work needed to be done and was able to help him get started writing code for Mixxx right away. If anyone's interested in adding a particular feature to Mixxx, come join our IRC channel (#mixxx on chat.freenode.net) and talk to one of us developers. We'd be more than happy to help you get started writing code.

People who want to use Mixxx for live broadcasting will appreciate not having to use crazy routing through JACK in order to broadcast now. For example, our friends over at Radio Olympus have been looking for new live broadcasting software, and we hope Mixxx will soon be a candidate to replace their existing software. Be sure to check out their newly relaunched online radio station, broadcasting live from the UK.

Depending on how much work we can get done this weekend, Shoutcast support may or may not make it into 1.6.0 Beta2. However, Shoutcasting should make it into the final 1.6.0 release. (There's at least one more surprise coming for Beta2 though...)

Thursday, January 31, 2008

Mixxx at CES 2008

Earlier this month, Ron Stewart from the Trinity Audio Group was showcasing their upcoming Indamixx Portable Studio at Intel's CES 2008 booth.



If the app running on this handheld looks vaguely familiar, that's because it's Mixxx!

Mixxx is part of the bundled software on the handheld, along with other popular apps like Hydrogen and Ardour. Looks like a neat device, and could be useful for digital DJs on the move. For more information, check out the official site.

Progress since Beta 1


Since the release of Mixxx 1.6.0 beta1, we've been busy busy busy getting new features and bug fixes ready for beta2. The library has undergone substantial work including new playlist support, improvements to the file scanning, and several bug fixes that were causing stability issues in beta1.

Recently, Micah Lee (one of our Google Summer of Code students), began working on our BPM code again. Among his latest additions is support for "BPM schemes", which allows you to save preset BPM ranges to improve the accuracy of the BPM detection when launched from the track editor dialog.


"BPM Schemes" is one of the new features slipped into Mixxx 1.6.0 Beta2

Also, OS X users can expect a Leopard/Intel package for Beta2. Big thanks to all the testers who've helped me test the package.

Lastly, we expect the 1.6.0 beta2 release sometime in the next two weeks. There's still a few extra features we're going to try to slip in to the next release, so stay tuned!

Tuesday, January 15, 2008

Hercules DJ Control MP3 in Linux


Robin, one of our newer developers, has been working hard on improving our support for the Hercules DJ Control MP3 in Linux. I did some work on this myself last year, but unfortunately certain things were broken at the kernel-level and I wasn't able to get the LEDs working. After many attempts by several people, Robin managed to make a kernel patch to solve the remaining issues.

"Yuck, a kernel patch!", you say? As Robin writes:

This is all very hacky, but hopefully it won’t be in the future. I’m going to see if I can get that patch put in the kernel proper, which will solve the most annoying part of the problem. It would also be good to get Mixxx supporting both legacy mode and the newer one at the same time.

However, we’ve heard from Hercules, and they say that some time in the first part of this year, they’re going to try to get some Linux drivers out. Hopefully they’re open source, and turn the Herc devices into MIDI devices, which would make life a whole lot easier for support.

It looks like there's light at the end of the tunnel for Hercules users. Read more on Robin's blog.

Note: I should add that the Hercules MK2 and the Hercules MP3 Control are both supported very well on Windows.

Saturday, January 5, 2008

MixxxScript - A Sneaky Feature Preview

Although we're technically in the beta part of the release cycle, we've still been spending some time on features for future releases. I've been working on adding a macro/scripting style environment to Mixxx which would allow users to extend Mixxx without the work of recompiling. Here's a screenshot of the very basic test GUI in action:


The script interpreting is done using the new QtScript ECMAScript interpreter built in to Qt 4.3 and the example you can see typed in above implements a basic auto-crossfader.

The potential here is fairly unlimited. API documentation and so on will follow soon so that people using Mixxx from SVN will be able to have a play.