Wednesday, February 07, 2007

Foobar DJ Custom Settings

Foobar DJ

I trust you've been reading at the Theatre of Noise as I have explored the features of the free audio player foobar2000. My introductory article covered its features; a follow-up revealed my customisations, optimised for live DJing. Here I'll share my settings.

Modifying foobar is a complex business, as a glance at the exhaustive threads at hydrogenaudio reveals. One of the problems is that the documentation on how to hack foobar, or even install someone else's design, is lacking. Here I'll put it all together in a step-by-step guide.

In order to install my foobar mod, do the following:
  1. Install foobar
  2. Install third-party components
  3. Install graphics libraries
  4. Install background texture
  5. Install typefaces
  6. Tweak display properties
  7. Install configuration file

1. Install Foobar

Grab foobar2000 version 0.9.3 and install it on your system. Open the application folder in Windows Explorer, as you'll be adding quite a few files here.

2. Install Third-Party Components

For each of the following components download the archive, extract the DLL file, and place it in the components subfolder of your foobar install.

These components enhance our interface:
  • Columns UI to give us a more flexible basic interface.
  • Tabbed panel stack which pretty well does what it says. In my design the tabs are hidden, but are there all the same.
  • Track Info Panel Mod to provide a flat panel for current track info.
  • foo_cwb_hooks for the ability to see the next track in the playlist.
  • foo_trackpos adds the context menu "place after current playing".

These DSP components provide useful DJ functionality:
  • Skip Silence does just that. I find the default settings work well to trim excess empty space from the end of a file, but you may wish to experiment.
  • Crossfader allows you to set a period of mixed audio between sequential tracks. I prefer a setting of between 3 and 5 seconds.

3. Install Graphics Libraries

In order for PNG graphics to work, you'll need the libpng and zlib libraries, as specified in the docs for Columns UI. These do not go in the components sub-folder, but rather in your main foobar application folder.

4. Install Background Texture

This mod uses a single PNG image that you need to put in a subfolder of your foobar2000 installation named "pix".

5. Install Typefaces

The nice grungy display font is Shortcut, a free typeface by Eduardo Recife. Download this file from Misprinted Type and install it.

Do likewise with Boring Sans Bold by Manfred Klein. This is used for the majority of the text. You may be interested to know that this face was made last year, when the designer was 76! Check out the hundreds of free typefaces on his site.

6. Tweak Display Properties

I have used a background colour which is designed to blend in with my Windows XP visual style. You need to make a couple of tweaks to ensure yours does too. Basically, we want to change the "Menu" and "3D Objects" settings to have a colour of (224, 226, 235). Unfortunately, the steps to do this are among the most convoluted on the planet, so I have outlined them in a separate article at the theatre of noise.

The alternative solution, if you want to keep your own settings, is to go through every part of my foobar interface and change my background colours to match the one you have in your Display Properties. Of course my background image will not blend in properly, but that is a lesser issue.

7. Install Configuration File

First, launch foobar and go to Preferences. Find "General - Other - Enable User Profile Support". Uncheck this so that there is only one profile for all users on the computer. This means that your configuration file foobar2000.cfg will reside in your foobar application folder. Exit foobar.

Backup your foobar2000.cfg to something safe, in case of catastrophe. Download my cfg and copy it to your foobar application folder.

Now, restart foobar and marvel at the wonderous interface!

To get the most out of Foobar DJ, be sure to read all about my customisations.

Some Final Notes

Foobar geeks may wonder why I did not use the popular Single Column Playlist UI component, since this would have allowed further UI decoration. This is because it requires you to use Alt + Click to move a track within a playlist. I don't want any two-handed exercises when DJing.


When developing I continuously referred to the various syntax documents. For ease of reference I have collected these together in one place:
If you feel like adding further components, this list is handy, as it allows you to filter by foobar version.

There you go! Hope you like it.

In an upcoming article I'll discuss some of the shortcomings of foobar. Maybe you'll be able to help?
Tuesday, February 06, 2007

Accent On Sheep

Woops! Somehow the accented characters in the mandatory Monty Python reference which gives this site its name (see sidebar) went missing. I've now fixed this using the correct character entities. I am not sure how this ever worked, or what went wrong. Oh well.

For those waiting for further Monty Python quotes, I refer you to the complete sketches.

There, that should keep you occupied for the next few hours!
Tuesday, February 06, 2007

Changing Display Settings In Windows XP

In an upcoming article I needed to explain how to change the look of Windows XP. Unfortunately the steps to do this are among the most convoluted on the planet, though anyone who has been through the ritual a couple of times will know the drill. So I thought it best to create a separate article for the purpose. Read on, brave interface tweakers!

As an example, say we want to change two background colours, in order to make the window interface match some custom content we have designed. In particular, we want the "Menu" and "3D Objects" colours to each have an RGB value of (224, 226, 235). (By an astounding coincidence, this is precisely what I wish to do in the foobar article that references this one.)

Start by right-clicking on your desktop and selecting "Properties" from the context menu. This opens the Display Properties dialogue. Click the Appearance tab to get something that looks like this:

Appearance Tab

Now, click the Advanced button to open a second window. Note all the little windows against the red background. These are not "real" windows, but instead an example interface that shows the effects of our editing. In this demo area, click on the background of the menu bar, just to the right of the text that says "Selected". You will get this:

Advanced Dialogue

You can also do this by choosing "Menu" from the Item picklist, but it's easier to click on the example interface.

Colour PaletteNow, click on the "Color 1" block to get a dropdown palette. It's not terribly informative. Looking at blobs of colour does not help us know which we might want.

So instead, choose "Other" to reveal the famed Windows colour picker.

Colour Picker

Finally we are in a position to poke in our desired RGB values. Once you have done so, click "Add to Custom Colours" so that it shows up in the palette to the lower left. Careful examination will reveal that instead of white, this block now contains a light steel blue. Highlight this colour so the screen looks exactly as above. Then click "Ok" to return to the Advanced Appearance dialogue.

Now, do the same thing for the other interface element. This time, click the fake Ok button or choose "3D Objects" from the Item pulldown. The screen will look like this:

Advanced Dialogue

Go through the colour picker steps again, as before. When done, click "Ok" to close the Advanced Appearance dialogue. You will now find yourself back with a single dialogue. Now, the "Apply" button is active. Click it to see your changes. When happy click one final "Ok".

Geez! Could they make that any more annoying? Here's an interface I really hope they've improved in Windows Vista.
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.
Saturday, February 03, 2007

Best Audio Player Ever -- Foobar Tips

foobar screenshot
Forget flashy interfaces and mammoth applications. If you want the best audio media player for Windows XP, get foobar2000. Its base functionality is impressive, but one can further enhance this through plugin components. I don't think there's a file format this won't play, nor a device it won't support. Here I'll look at some of my favourite components and configuration tweaks.

Installing components is as easy as throwing the DLL file into the components folder of the foobar install. For example, I utilise the ASIO support so I can get low latency streaming out of my Fireface 400 while maintaining compatibility with other playback software.

Want to play MIDI, game files, MODs and other fun stuff? Well, have no fear, kode54 has you sorted.

Direct CD burning works so long as you have Nero installed. But here's a hint for those of you who want to save money: install the Nero demo. Even once this expires, burning from foobar will still work, since the required library files are still present.

Just about everything in your foobar universe can be configured to your taste from the File menu under Properties.

For example, in "File Types" you can select the file extensions you wish to associate with foobar. I suggest you do this immediately to ease integration. But please note that as originally configured, double-clicking a media file from Explorer will open foobar at the last used playlist, overwriting this with the file you clicked on. I doubt this is the behaviour you want.

To fix, look under "General" preferences, in the "Commandline" area. Check "Always send to playlist" and choose "Default" or some other preferred name. Clicking a media file will now open it in that playlist. Alternatively, open foobar as an application to have it default to playback at the last position. A handy combination!

Out of the box there's another annoying lapse in interface. The spacebar does not start/stop playback. But it's easy to fix this. In "General - Keyboard Shortcuts" click the "Add New" button. Then, in the "Key" entry field tap the spacebar. In the "Action" area, scroll down the tree to "Playback" and then "Play or pause". Voila!

The default interface is ok, but install Columns UI for a more robust implementation. This gives you a list of your playlists down the left panel, with the contents of each in the right panel. The possible customisation of the display is extensive, though a little involved. You can get help in wiki format. (Do note that some of the screenshots are for an older version of foobar, and the configuration interface has changed quite a lot.) Also useful is the syntax for Titleformat.

A good source for components of all descriptions is this Finnish site. You can browse by type and filter by software version.

I'll write more about foobar soon.