Stem mixing in Mixxx? Please add your thoughts...

Hi Mixxxers,

At the Mozilla Festival in London last weekend, I took part in a Hack the DJ workshop, looking at ways to take digital DJ’ing to the next level. One of the ideas proposed was stem mixing, using multichannel files in DJ applications. A proprietary implementation of this idea is Fireplayer (itunes.apple.com/gb/app/fireplay … 91455?mt=8) but this app is built with the intention that users will buy remixable versions of (a very limited number of) well-known songs from an in-app store. I would like to work towards a new open standard for stem mixing, something that is compatible with sharing our mixes on the open web - legally, of course - but could also be used by record labels that sell tracks to DJs.

For example, eight channel Ogg Vorbis files where the first two tracks are a stereo mix of the drums, third and fourth stereo bass, fifth and sixth stereo vocals, and seventh and eighth tracks everything else. This means that you can mute or solo individual stems in the mix, giving you the versatility of four-deck or eight-deck mixing but without the problems of keeping many decks in sync, since the stems within a single file are locked on the same timeline. Also, it makes using the mixer a lot simpler than for many-deck mixing, because you don’t need to keep assigning the crossfader to the various different decks.

Of course this means that the eight channel .ogg file has to be prepared specially for DJ’ing, but this is already possible in Audacity. So we have a file format, and an editor, but what we don’t yet have is full support for stem mixing in open source DJ applications. Sweep supports scratching on eight-channel files, but it doesn’t have a mixer. Mixxx has a mixer, but doesn’t support multichannel Ogg files (yet), as far as I can see.

So, what do you think? Is stem mixing a genuinely useful feature that will allow DJs to be more creative, or will it fail if the best music continues to be available in stereo only? Please add your comments below :slight_smile:

Cheers!

Daniel

1 Like

Hi
I have altered a Mixxx skin to show what we are trying to create. any feedback or suggestions welcome

Finn

This sounds like an awesome idea, especially since mash-ups are all the rage right now.

FLAC also supports up to 8 channels per stream, and I would want to see this format supported as well for its quality, especially since what we’re talking about here is live remixing.

Mixxx uses the official Xiph.org OGG, Vorbis and FLAC libraries to read the files, so it would just be a matter of extending Mixxx itself to be multi-channel aware. The easiest thing to do first would be to allow selection of file channel pair to appear in the deck (since Mixxx’s decks are currently stereo-only) and a first version would require DJs to load additional decks with different channel pairs if they wanted to use more from the same file. Beyond that, Mixxx’s decks themselves would need to be extended to be multi-channel capable to realize what your skin suggests. (A bonus would be the ability to play 5.1/7.1 surround-sound songs.)

So… are you volunteering to implement this or just tossing the idea around? :wink:

I just created a blueprint to track this: blueprints.launchpad.net/mixxx/ … nnel-decks

Hi Sean,

We definitely want to help implement this, we have a six month project to produce something for the Future Everything festival: bbc.co.uk/blogs/researchandd … -the.shtml

I agree that multichannel FLAC would be the ultimate format for remixers, but since an eight channel file is at least 4x the file size of a lossy stereo version, and a FLAC file is around 5x the size of Vorbis, I think we need the choice of a lossy format to keep download times, bandwidth and storage requirements reasonable. Since both Vorbis and FLAC can use the same .ogg container and comment format, this need not be a problem for Mixxx. Remixers could opt to publish both versions, and let the DJs decide which to download.

As for surround mixes, that would imply a lot of additional development work because you would need to preserve all the channels through the mixer, and have multichannel outputs (something which I don’t think any DJ hardware on the market supports, beyond stereo headphone, booth or record outs). What we’re proposing is much simpler - have per-stem controls such as mute and solo in the signal path, but then mix those stems down to two channels before reaching the track fader and crossfader sections of Mixxx’s internal mixer. That way, people will be able to use the stereo DJ interfaces and PA systems that they already have, but gain a lot more creative possibilities in the mix.

Cheers!

Daniel

Oh yeah, I totally understand what you’re wanting. That’s why I’ve split the work into three dependent blueprints (scroll to the bottom of the one I linked above to see the dependency graph of them all.) You’ll only be interested in the first two. I just added the third (surround/multi-channel mixing) incase anyone ever wants to implement that in the future.

I do worry that getting hold of such prepared files will be the biggest challenge, so HOWTOs for creating such files for non-technical users will be needed in the short term.

ZOMG I can ditch ableton’s AND Traktor’s shenanigans foreva. :smiley: OH PLEASE

Hi Sean, there are plenty of .mogg files available on file sharing sites that have been extracted from music games, but because we want to do things legally, we can point people towards creating their own multitrack .ogg files in Audacity, which is very simple. Terry Hancock shows how it’s done for surround formats here:

freesoftwaremagazine.com/col … d_audacity

Haven’t heard anything from you guys recently. How is the project going? Anything we can help you with?

Hi guys,

Since Mixxx already has the sampler decks built-in, why do you need multi-track audio files?

Maybe for your specific hack, adding support for multi-track files could work. However, I feel like to produce the best, most usable product for DJs, you’d be better off taking advantage of the sampler decks we already have for several reasons:

  1. No changes to the engine required. The stuff on the wiki sounds like a huge amount of work that cross-cuts many areas of Mixxx:
    mixxx.org/wiki/doku.php/multi-ch … ile_mixing
  2. Every DAW on the planet already has multi-track rendering to separate WAV files. This is perfect ammo for the sampler decks.
  3. The basic control interface for DJing is always two jog wheels and mixer controls for two channels. You could take advantage of this and write some sampler deck controls that sync them up to the main two decks in Mixxx, or something like that, and then it would feel properly integrated into Mixxx (works with MIDI hardware, vinyl control, etc.)

Just my thoughts… I hope I can point you in a easier direction than the one you seemed to be taking…

Thanks,
Albert

I would love to start seeing multitrack files. That made me think though. Ableton seems to have allot of control over each individual track. I was debating on rather to get a dj controller or an ableton controller. I didn’t really see the point of ableton if you only have stereo tracks and I like the style of turntables.

My dream setup now is to have 2 ableton controllers (or just 2 separate groups of tracks) controlled by a turntables and mixxx. That way you could have 1 deck controlling everything you would normally except have all the control ableton has and not have to launch/stop a million tracks to switch songs unless you want to. Maybe running 2 instances of ableton so you can control the master tempo of each on each one?

My point is I eventually want to have control over everything… Looping, eq, effects, all for individual tracks. So would mixxx be just getting by with this ability or could it compare to ableton?

Maybe its already possible to control ableton with turntables? I don’t really know what I’m talking about, I’m just starting to figure out simple dj programs with my keyboard and mouse and I’m working my way up :} but I wanted to throw my idea out there.

I just found dhj’s article here: digitaldjtips.com/2012/03/ho … y-djs-mix/

Have fun at FutureEverything!

Hey guys, Pegasus tipped me off to this thread and suggested I might post here. I am currently working on a project called http://soundkeep.com. The idea is to make a ‘github for music’. Essentially it would be a place where you could upload a song you created in multi-track form. Then others who like the song or individual tracks within the song could remix (fork) your song and use all or some of it to create a derivative work. All tracks will be released through Creative Commons in the hopes of creative a large body of license free stem tracks. If it is successful we will be able to fill the void of stem tracks. It would be interesting to at some point provide an api for other apps like Mixxx to easily search and include stem tracks into projects. Does this sound intriguing? Any suggestions or feedback on the idea are welcome. You can see a prototype of our idea here dev.soundkeep.com. It is incomplete and partially broken right now, but will give you an idea of what we have in mind. Thanks in advance for any feedback.

Hi Josh,

Thanks for the info on Soundkeep, I’ll watch out for the launch :slight_smile:

Cheers!

Daniel

And support for “Stems” developped by Native Instruments (http://www.stems-music.com/)? :question: ?

Specs is in open source! :bulb: :bulb: (http://www.stems-music.com/stems-is-for-developers/)

BUT, nothing is perfect because it use an MPEG-4 Container (patented; royalties etc…) :unamused:

More info:

There are not many HQ multi tracks in the internet. In most cases those are just DIY covers of original songs. Usually you can grab the good ones from remix contests (play.beatport, indaba music, torrents), etc. But what you can really do with them on the fly, during playing set? Turn off vocals? Now you need not only beat matching, but strict key matching, volume, compression. Any DAW (especially like Ableton or Giada) will be far more convenient for experiments like that and saving results. Don’t need to think about mixxx if it have 4 channels, it have become a mixing\arrangement tool. It is music mixing tool, not karaoke, where you can turn off voice. So I doubt it is useful there. You need control buttons for every multi track in a track… where to put them? Solo, mute, balance. Sounds like making DAW of Mixxx.

UPD
Oh, now I see. It’s a new file format supported by NI. Interesting. Let’s have a look if many labels gonna release stems. Is it DRM free? And mp4 container… I wonder why OGG is not so good?

Damn this really looks good. Hi, if this comes true, it would be really awesome.
Additionally, if possible, ability to assign each stem to individual audio output of soundcard. Peace.

There’s apparently licensing problems for Mixxx when it comes to the NI STEM format. But Audacity seem to have managed it. If it can’t be solved then it’s relativly trivial to convert the MP4.

However FLAC will only do 8 channels (at least that’s the max on Audacity) while, again in Audacity, WAV is a max of 32. As NI MP4 STEM seems to be the established STEM standard and uses 10 channels, 1 for the main track and the other 4 for the STEM parts it seems that FLAC would not be a suitable format for people converting their NI STEM MP4’s to Mixxx. WAV, OGG, AIFF and AC3 all do more than 10 channels.

Here is the current “bug” report: bugs.launchpad.net/mixxx/+bug/1438746

Beatport now selling stems
NI pushes their format and it doesn’t stand still

beatport.com/stems/about

Maybe dear devs would implement this someday somehow )

So Native Instruments ended up contradicting their original statements, or they don’t understand what an open standard is. After taking a long time to release the SDK, they released it and the format specification under a proprietary license. I think it would be possible to do a clean room design, but that’s a lot of work, and probably shouldn’t be done without talking to a lawyer. Refer to the discussion on the Launchpad bug.

This would go well with the multitrack aspect of tracker module music files.

When built with the functionality, mixxx currently renders module files stereo on load, but being able to manipulate each channel separately would open up many possibilities.