Monday, February 05, 2007

Customised Foobar DJ

playlist screen
Sometimes I need a quick and easy application to lay out a set of music, without messing about with multichannel sound cards, cue mixes, and all that real DJ stuff. A laptop, a stack of MP3s and a simple software audio player is all it takes. Here's how I have configured foobar2000 to the purpose. I recommend you read my previous article for a quick overview of this great free programme.

First, my specifications. Assuming I have a single stereo output I cannot cue up and mix tracks in the usual DJ fashion. Instead I select a pool of music ahead of time, ensuring I am familiar with it and can sequence tracks blind. I need to be able to select tracks quickly and assemble them into playlists. As much as possible I want to do this without recourse to fiddly mousing. The interface needs to give me lots of info on the current state of things, and let me see important details from a couple of meters away.

It would be nice to be able to automatically equalise volume across the mix. Crossfades are another good candidate for automation. And, oh yeah, if it looks cool, all the better. People might be watching.

playlist screenHere's a walkthrough of the resulting interface. Click on the picture for a larger annotated image.

Let's start with the obvious. You can select playlists in the lower left panel and get a listing of the tracks for each in the right. Using the context menu (right mouse click) songs can easily be assembled into existing or new playlists. These can be loaded from disk in the usual variety of fashions (including click'n'drag) kown to foobar users.

The top panel presents the current track and the next track in the playlist -- very handy for those times when it is not visible in the bottom half of the screen.

To the right is the time remaining and total time for the song that's playing, plus the total time for the current playlist. If you choose to delete songs from the playlist as they complete, this number will let you know how far ahead you've programmed. Relax! You've got lots of time to grab that drink!

There are a few further niceties designed for ease of use.

The built-in volume control does not show the current output setting, unless you adjust it. So I've added a readout beside the fader.

Below this is the Replay Gain amount for the current track (assuming there is any gain information available). Replay Gain is a method of normalizing the perceived loudness of a set of audio files. First they must be scanned and the required information embedded in the tags. Then, this feature must be turned on in Preferences. Replay Gain can be used on a Track or Album basis; the readout assumes the former, since this is a better fit for a mix scenario.

The seekbar shows progress through the track, and allows you to manually skip around. This is handy for those times when we get a moment to cue up, or for the sound check. Unfortunately we cannot use some of those snazzy custom graphics progress bars other designers favour, since such beasties are display-only. I don't want to sacrifice features for appearance.

The spectrum analyser confirms we have output.

I use the regular playback buttons, though I've removed a couple. I was going to replace them with bigger targets for the mouse, but decided instead that keyboard shortcuts were the way to go.

Here are some standard features: Tab moves between the playlist and track panels. You can page up and down in these. Ctrl+P brings up the Preferences dialogue. The number pad plus and minus keys control the volume. If you don't have these available (laptop keyboard), you can use the regular minus and equals keys.

If you right click on a track name you get a context menu that I have customised. The busy array of choices have been simplified and presented in the most useful fashion.

On top of these shortcuts I've made some custom mappings, as follows:

spacebar = Play / Pause
M = Mute
R = Replay Gain on
T = Replay Gain off
F = Crossfader on
G = Crossfader off
P = Track Properties
C = Playback follows cursor (toggle)

Most of these are self-explanatory. The cross-fader is an automatic tool that overlaps sequential tracks by a set amount. I use this in combination with a "skip silence" component to allow automatic blending of one track into the next.

(Unfortunately there is no visual confirmation of whether the Replay Gain or Crossfader settings are on or off. If anyone knows if it's possible to do so, I'd love to hear about it.)

A feature that deserves full discussion is the mysterious "Playback follows cursor" setting. If this is "on", then whatever song is clicked and selected in the playlist will be the next one cued up. This will be obvious from a glance at the top panel.

Sometimes that is useful, but other times one wants to be able to click around multiple playlists looking for tracks, without worrying about messing up the current queue. In those cases, turn "Playback follows cursor" off. I've added a handy keyboard shortcut for this purpose, plus an indicator of the toggled status dead center at the top of the screen.

A further note. When toggled "off", the indication of which is the next track up may not always update correctly. One way to make sure it does is to add tracks to the current playlist using the context menu "Place After Current Playing".

playback screen

In terms of eye candy I've saved the best until last. Tap the period key and you switch to a simplified interface perfect for running when you are not busy mixing. As a bonus it hides all of the most obvious ways a passer-by can screw up your music!

Despite the (small) limitations I'm pretty hot on this new design. I'll share the innards in an article on diagrammes modernes. That's where I keep my more technical geeky postings. Go there to download my settings.

As always, if you appreciate this work, please donate through the Paypal logo in my sidebar.



robin said...

My settings are now available in a step-by-step guide. Go get 'em!

robin said...

I've added another keyboard shortcut: S = Stop after current

meaghers said...

I was trying to follow your directions only to be thwarted on the last step when foobar2000.cfg was not available on your server! blast! I will never know what the result would be.

robin said...

Sorry about that. I have amalgamated servers and forgot to redo this link. The configuration file is here. Thank you for pointing out the error!

Post a Comment