Monday, August 30, 2010

So what about a remote control ?

I now had the ability to play my music collection through my stereo as MP3 files but the PC connected to the amp was in my office while my speakers were in my family room where I wanted to sit and listen.

I needed a remote control that would connect to the PC and let me :
  1. Select the tracks I wanted to listen to from the whole music collection.
  2. Add the tracks to a playlist
  3. Start, stop and pause the track currently playing
  4. Select the next/previous track in the playlist.
  5. Adjust the volume.
My PC is running Window XP. Probably the 3 most popular options for software to play the music were :
  1. Windows Media Player (easily available from Microsoft).
  2. iTunes (At the time I owned a Apple shuffle)
  3. WinAmp (Free download)
To be honest none of the 3 offered any sort of remote control that I wanted to or could use, either because it wasn't free (WMP), required another device (iTunes using an iPhone/iTouch), or lacked the functionality to meet my requirements (WinAmp). I could use Remote Desktop or VNC to connect remotely from another computer but I could do better than that.

So I decided that it would be fun to write my own remote control. As I'm a software developer by profession writing my own was certainly not out of the question.

Now I could have considered writing a plugin for all of the options above but I felt that starting from scratch would be more interesting. I also wanted it to be something that could be run on different operating systems (as long as the USB DAC was usable via that operating system). I had been writing web based applications in Java for close to 12 years so writing it as a JEE Web Application seems to make the most sense.

Sunday, August 29, 2010

Version 2 - Using a USB DAC

Having found that the quality of sound pumped through the amplifier via the PC's built-in sound card was far from ideal I decided to investigate alternatives. I could look into spending some money on a better sound board, preferably an external one where the noise interference should be reduced or I could look into buying a USB DAC. I didn't really want to spend much money and while researching options I found a pretty cheap one in the Silverstone EB01. The reviews for it were generally very good. Around the spring of 2008 I bought one for $85.

So I hooked it up to my PC and amplifier and found that the device was listed as USB speakers in the audio setup for the PC. The difference in sound between the build-in sound board and the USB DAC was night and day. The one annoyance was that the volume on the PC had to be set to the maximum and the volume controlled on the amplifier itself. This was (for me at least) an acceptable level of sound quality and I could always look into buying a better quality one in the future.

The next problem to tackle was now how to control playing the music on the PC in the office while I was in the family room.

Version 1 - The cheap route

Version 1 of my DIY digital music server was the cheapest by far ($0) but unfortunately was lacking in the sound quality department.

I had my amplifier (A&R A60 circa 1989) and desktop PC sitting in my office while my speakers (Linn Index II circa 1990) were in the family room. All I had to do was connect the PC to the amplifier and use the PC as a source. The PC was certainly no high-end machine but it did have built in sound provided by the mother board. There was a line-out jack that I could connect to a line-in on the amplifier. I already had a 1/8 jack to RCA cable (actually this was a little more complicated as the A&R A60 used DIN connectors, I had to also use a RCA to DIN adapter too) so I hooked the two together and tried playing a 128 bitrate MP3 via WMP. The sound was Ok but it certainly left quite alot to be desired.

After researching other people's experience with doing something similar it appeared that using a built-in sound card (or even a separate sound card) was not going to give the sort of results I wanted. I was going to have to look at other alternatives to hooking up the PC to the amplifier.


Ever since I bought my first MP3 player and started to rip MP3's from my CD collection I have been interested in also making life easier for accessing my music on my home stereo. Many years ago I spent probably a whole week going through the process of inserting each CD into my desktop PC and ripping the contents into MP3's. This was back in the time when digital storage was expensive and  ended up ripping to a 128 bitrate. So now I had my full CD collection stored in MP3 format (I have since gone through the process again ripping to "flac" format as storage is so much cheaper) and transferable to my MP3 player via  Windows Media Player, iTunes or whatever software the MP3 player required. I could also play music via WMP through the powered speakers connected to the PC (a nice old pair of AR Powered Partners).

But what if I wanted to play music on my regular home stereo? My home setup is little unusual. In my house the family room is at the back while my office sits in the front. The speakers sit against a wall that is shared by the office. The amplifier and CD player sit in the office with the speakers connected vi speaker wire feed through two holes in the wall. The downside to all this is that controlling the stereo is quite problematic when sitting in the family room. Getting up and going into the office to change the volume, change CD etc gets old very quickly.

Also in the office is my desktop PC that has access to all the MP3 files. It seemed like a slam dunk to somehow hook up the PC to my amplifier to play the MP3 files on my home stereo.

This blog serves to detail the long and windy road I have taken to build a digital music server that is flexible and easy to use.