29/12/2015

Music to My Ears

The first step is admitting that you have a problem.

We have a music server at LAN parties, which acts as the gateway for all of the connected PCs and a place where people can queue music and videos. Anyone at LAN can submit media, and everyone at LAN has to suffer through our collective bad taste in music. Following on from the theme of the last year or so, the current music server software is dated and slowly falling apart, and therefore  it must be time to make a new one. There are currently 11 implementations either developed or in development (see list).

This is a textbook case of a time where the usual approach of "I think I can do better, therefore I should" has clearly failed. There's a horrendous amount of effort being duplicated, each with a slightly different way of doing things, or a different philosophy. Of course, some people are writing new music servers as a way of learning a language, and that's fine. Others are writing one because everyone else is, which is more of a problem. In theory the best approach would be for everyone to contribute to a central project, as was done in the past, but in reality this is likely to lead to arguments and little progress (university deadlines have a habit of exacerbating with this).


Unfortunately I'm a guilty party here, because I wrote a music server *because* everyone else was trying (and failing) to come up with a finished project. Enter music-get, styled after pizza-get,  and designed to be easy to maintain as opposed to what might be considered a 'well engineered application'. To allow for this the front and back ends are split up, and there are extra dependencies (like Apache) that could be eliminated if you were trying to make a compact app. But in reality, we're running this on a fairly modern desktop, not a Raspberry Pi. Maybe there are better languages for this than Java, but everyone can use Java. In general modifying music-get doesn't assume much technical knowledge, as when you need to fix something at 4 in the morning during a LAN party you may not quite be on top form :P


This is the first project that I've come up with proper documentation before (as in, how it works instead of just how to run it), which was interesting at first but quickly became tedious. Hopefully it, or something better, will get used at the next LAN - ultimately the goal here is that the problem gets solved, not who solves it! Still, it would be nice if it were mine...

GitHub: https://github.com/mcnutty26/music-get