Saturday, June 23, 2012

DJ setup

As a computer programmer, I have certain advantages. The most important is that I am often less satisfied with common solutions, knowing I could, with a lot of time and effort, make a better one for my needs. That leads me to the conclusion that someone else already has done that, and the search begin.

With tango music, I often see people use iTunes, which I have never liked. My search for something better quickly took me to a blog post by the tango DJ 'Simba Tango', describing a setup with Foobar 2000. I have mostly used the setup he describes in his blog post, with some customizations to my own desires. I will here show you how I use Foobar 2000 to DJ, but first use the space to thank Simba Tango for sharing his setup: Thank you, Simba Tango!

Two instances of Foobar 2000 as tango my DJ software

To the left I browse my music, and this instance is directed to my computer's internal sound card and my headphones. To the right, I have the playlist currently playing, connected to an external sound card and the PA system in the room. I drag files over from left to right to add them to the playlist.

In the instance playing for the public, I have nothing but the playlist, grouped by orchestra and type (milonga, waltz, tango etc). In addition, I display the singer (if any) and year. This is information I would like to be easily available when I can not remember exactly what I have played earlier in the evening. I would also like to be able to display this information to the dancers, but I have not yet found a solution for this.

The instance playing for the public

The instance I use for browsing my music is divided into three columns. Here I have customized the setup for my needs, and use the Foobar component Columns UI.

The left-most column shows me all the artists I have in my library, with a new row for each type (milonga, waltz, tango etc). At the bottom, I have the cover art of the currently selected song in column number three. This helps me remembering the song, for instance which version of the same song has the best audio fidelity.

List of artists

As column number two, I have pre-made tandas. I also save all my DJ events, so I can go back and see what I actually played.

Pre-made tandas and saved playlists

The tandas are organized in a tree-like structure of folders, and put in playlists. The folders categorize the tandas, and the playlists have a name describing the tanda. See some examples below:

Tandas categorized and with descriptions

As my last column, I have the songs contained in the selection made in one of the other two columns. For example, the picture below shows the songs displayed when I have selected Pedro Laurenz - Tango in the left-most column:

Some of my tangos by Pedro Laurenz

This column is grouped by singer, displaying those without (instrumentals) first. Inside these groups, I have sorted the songs on the year they were recorded. I have also access to my own comments, the album, length and beat per minute (BPM) for the songs. The BPM is not always accurate for my tangos, but for waltzes and milongas I find the beat manually and use that a lot when making tandas.

How this is done is shown below:

Finding the tempo of a song

As a last feature, I show you how I can use the powerful search function of Foobar 2000 when I am making tandas.

The following search gives me slow milongas recorded before 1945, sorted by date:
type IS milonga AND date LESS 1945 AND BPM LESS 95 SORT BY date
I can then pre-listen to the songs, and create tandas on-the-fly. 
Searching for slow milongas

I also use some other Foobar features to control playback volume and the gap between songs, but they are better described by Simba Tango in his excellent blog post. Thank you again, Simba Tango!


  1. Thanks for posting such an interesting Information Anders!
    I am using Foobar2000 too,easily the best player available.
    What kind of external sound card do you use?
    I am usig the Indigo DjX from Echo (a PCI Express Card) but I am not (always)satisfied with the sound quality.
    Greetings from Switzerland,
    Mariano Diaz

  2. Thank you for your comment!

    I use Abrahamsen DAC II, a Norwegian DAC that is surprisingly good priced:

    I am no sound expert, but I have been very satisfied with this. Compared to my computer (Lenovo) sound card, the most notable difference is the absence of background noise. That is, however, not so easy to hear in tango, as there is noise in the recordings...

    I also like that is has big connectors, so I feel very safe during a milonga.

    I would love to learn more about the impact of sound cards to the milonga, but right now my focus is on getting the best CDs, as that is where the biggest difference is, imho.

    Since this post I have also introduced an ASIO plugin, to ensure bit-perfect transfer from Foobar to the DAC (it then avoids the mixer in Windows).

    Kind regards,


  3. Hello Anders,
    I really appreciated the way you have configured your pre-listen UI, I'd love to give a try to it.
    I currently use foobar for DJing along with my RME Babyface as an interface which allows prelistening with no problems (except for a somewhat low output headphone level - at times and depending on your cans).
    I'm wondering if you can post somewhere your Columns UI file for us to give a try. It's not that I'm lazy! I just can't figure out how to fix things the way you did.

    Thanks and cheers from southern Italy

    1. Thanks for your comment!

      Sure! You can find the fcl-file here:

      Let me know if you have any problems with it, I can also zip together my complete foobar install.

    2. Hello Anders, I get back to you for your fcl config files. After a HD crash I lost those files.
      If you have anything better I'd be happy to know about it.!

      Best regards

  4. Hi Anders,

    I'll give a try to your theme file and in case I have any other questions I'll bother you again.... ;-)

  5. Anders,
    I think that if you post your complete install it's going to be better... :-(

    1. Sorry for the late reply! I have now updated the dropbox folder to contain the complete install (you can start Foobar directly from the unzipped folders after you copy them to your machine):

      You will find that all playlists are empty (I deleted them), and that all the music is of course not available (it is on my computer).

      Hope this helps you! :-)

    2. This comment has been removed by the author.

  6. Hi Anders, thanks so much for posting this information! I'm very excited to start working with foobar.

    Right now I'm wondering how you deal with songs with multiple singers? How do they appear/get organized? Ideally I'd like to have a separate tag for the second singer but I'm not sure how to write the scripts to display them properly. Thanks for any advice you can give!

    1. Ah, that have bothered me too. The tag standard for mp3 says something about that:

      Flac files can also use id3, so that might be the way to go.

      I have, however, done it more simple, by using ',' to separate singers. I have no rule for which singer goes first (it is usually decided by, which I import most my tags from). The number of songs with multiple singers are not that great, so it is no problem for me to tend to this manually (Donato starts to annoy me, but still doable).

      To have separate fields, you would need at least three (again, Donato). Look here for how to display the content of a field only if it has anything in it:

      If you provide a clear description of what you want, I might be able to make a script for you if you get stuck! :-)


  7. Andres write: " Flac files can also use id3, so that might be the way to go."

    ID3's disallowance of multiple artist frames is not suffered by FLAC's preferred metadata format (Vorbis comments), so anyone embracing FLAC would I think be best to avoid ID3.

    Unfortunately there remains the big problem of lack of standards-compliant support for multiple artists (and multiple titles, also useful for tango) in apps. If you find fb2K supports multiple artists, I'd love to hear.

    Your suggested separate fields loses much of the artist support of librarian apps.

    "which singer goes first (it is usually decided by" singer order is lexicographic ... but on the internal name rather than display name. Hence the occasional reversal such as Floreal Ruíz, Alberto Marino. Because it is stable, it gives the librarian good indexing, even though not good sorting.

  8. Can you please share your foobar setup again? The link above you have posted before doesn't point to foobar anymore.

    1. Sure!

  9. Hi,

    Can you please reveal the components you used for the browser and if is possible to read the playlists from iTunes??

    Thank you in advance for the reply

    1. Hi, and thank you for your comment!

      The web page I made is very specific to my use-case, and I would have to clean it up a lot before it would be usable to others.

      In any way, it is not possible to integrate with anything else than my setup of Foobar. Itunes is not possible.

      I suggest you check out, that looks very promising! :-)