Saturday, August 25, 2012

What is he playing?

Last Monday, at Robert's practica, I premiered my new system for displaying what I play during my DJ sets. Since I searched long and hard for a pre-made solution, with no luck, I will share with you what I did to make it work.

First to the end result. On my DJ-stand, I have a small LCD screen facing the dancers. I dim the lights to the minimum to make it as non-disturbing as possible, yet visible from across the room. The display shows information like this:

The most important information is the orchestra, and this is visible from across the room for those with good eyes (not me). For those passing by the stand, I also display the type (tango/vals/milonga etc), year, title and singer (if any). I wanted to give it a clean look, therefore everything except the orchestra is given a small font. By the way, this song is from a brand new tanda, made from a CD that arrived to my mail box this morning! Look out for it next Monday! :-)

And for the cortinas, I have another layout:

I hope my choice of cortinas do not make this display of 'Cortina' needed, but for the beginners it might be nice. I also show artist and title, as I often ask myself that question during a cortina I like.

So to the technical details

As explained in a different post, I use Foobar 2000 as my DJ software. After searching wikis and forums, I found the 'Now Playing Simple' plugin. Thank you, Skipy Rich, for making that available!!

The plugin writes information about the currently playing song to a file. I have configured it as follows:


As you can see, it writes the information to the file 'np.csv' on my Desktop. The formatting string you see is:
$if(%isplaying%,
$if(%ispaused%,
paused
,
playing
);%type%;%artist%;%title%;%singer%;%date%,
stopped
)

Then I needed to display that file in a nice way. I therefore wrote a simple Java servlet program to read the file, parse it, and output a nicely formatted HTML page. That servlet is right now a big hack, but it works. If you are interested in the code, please let me know! I will then see if I can tidy it up a bit, and release it under a open source license.

Some interesting (?) details:

I use Jquery quickfit to adjust the size of the text. That way, I make sure the text fits, no matter how long the song title, name of the orchestra, etc.

I use Maven Console Plugin to package the servlet into an executable file. When I start DJing, I simply double-click on the packaged file, and I am ready to go! Thanks to you, my colleague at Kantega, Eirik Bjørsnøs, for making computer programming simpler!

I then display the HTML on an external screen using Google Chrome. As the HTML is available over the network, I could also display it some other places. For example an iPad closer to where the people are in the milonga.