Hi guys,

I spent a lot of time over the last few weeks thinking about the play
queue and how I was going to reimplement it for 1.8. I was having
trouble figuring out exactly behaviour we wanted it to have, so I went
back to the two use cases I've found in practice from the old play
queue.

The old play queue was supposed to be modeled after Rhythmbox's play
queue, where the "next" track would be loaded from the play queue.
Simple, right? Well, it's a little confusing because A) we have two
players to deal with so "next" is hard to define and B) having a mode
where a single player just loads and plays the next track from the
play queue is only be useful for just regular playback like you'd use
Rhythmbox or Winamp for. If you wanted to do that, you'd just use
Winamp. :)

The way I found I ended up using the old play queue in practice was
primarily as a temporary bin to throw tracks I was going to play
during a set, but also as a Winamp-style playlist (usually while
testing stuff, not while DJing). As Sean pointed out to me, we now
have crates, so I could just make a crate called "Tonight's Set" and
use that as my temporary bin. However, I still wanted a way to play a
bunch of tracks continuously, and for many users this would be
important in case they get called away momentarily while DJing. In
other words, the two use cases for the play queue are A) a crate and
B) for bathroom breaks.

With that in mind, I decided to turn the play queue into something
called "Auto DJ", which is now in the features_sqlite branch. Auto DJ
contains a playlist that you can add tracks to (just like any other),
and when you enable Auto DJ mode, Mixxx will load the first track and
start playing it. When the song is within 5% of the end, Mixxx will
remove that track from the top of the playlist and load the next track
into the other player. It will begin playing that track and will
automatically crossfade until the end of the initial song. It sounds
more complicated than it is - Just load some tracks in, push the
button, and go cook supper.

I think this is way more useful than our old play queue, and ends up
tackling a few feature requests. This is essentially a smart ping pong
mode, so we no longer need to worry about that, and I think this also
fulfills the requests for automatic crossfading.

This also gives us a base to improve upon in the future. We'll be able
to do things like sync the tempos and phase of the tracks, and maybe
even offer a mode where we intelligently fill the queue with songs.
There's probably some cool GSoC projects in here... :)

Anyways, just wanted to give some background as to where this Auto DJ
thing came from.

Enjoy,
Albert

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to