What I learned that help me do this, was how to learn. Start teaching that, and you will find they are prepared for whatever comes down the line in the future. Stop making automatons.....
I started with a linux box running a standard web server. This serves up all of my MP3's. It also runs Samba as an alternative connecting mechanism. This is the basis of my music storage.
Second, I have a windows 2k machine that runs several things on it. First, it runs winamp 2.x. I wrote custom software on this that exports a soap based service, using apache tomcat, to export ALL of the functionalities of winamp control. I also wrote a series of servlets that export this soap service in a web interface. All of this was done in Java, with a small JNI library to interface to winamp.
Finally, I also wrote a java application that gives me a rich interface to the soap service, including browsing all of the music titles in a file/folder format, through the web server. I can fast forward/pause/add or remove songs from the play list. The best feature I added was a random function that queues up a song when the last song in the playlist is reached. It chooses from your entire music collection, but it only happens if you are 'out' of songs.
Finally, I exported the sound to ALL rooms in the house using the leapfrog system that sends audio over the phone lines. It is not ideal quality, but still is quite good. I have one transmitter, and three receivers in the house.
What this gives me:
Complete control of the music from ANY PC in the house using the rich java interface.
Control of the music from my iPaq using the web interface. I can sit in the hot tub outside, and change the music!
A great interface to winamp that is alot more pleasant to use than the playlist style.
So far, I love it. More importantly, it is almost 100 percent pure java. Only one small interface through JNI. I have been in heaven since I got this thing working.
It was a great project to teach me how web services and SOAP can really be used to solve a problem.