Jump to content

Some Thoughts on the Architecture of a Music Server

Recommended Posts

I'm still trying to get the big picture of this new thing which is creeping into our lives. At the moment, it seems to me to break down like this:


* Data - you need to choose (a) format(s) for your music data and associated metadata. There are issues of quality, size (traded off against quality, mostly), longevity, DRM, flexibility, application support. There is also the issue of ripping from your source format (which applications, quick vs. exact rip, are you ripping CDs or from vinyl or other analog sources, or buying downloads), selection of suitable sample size/bit rate, etc. Metadata is a big subject unto itself, which if you listen to classical you are probably aware.


* Storage - your data needs to go somewhere. There are issues of capacity, cost (HDD vs. SSD), reliability, backups, noise, power consumption, availability (just local, or everywhere on your network), portability, electrical interfaces, migration (your media dies, but the data lives on), etc.


* Music delivery - some process has to run on a CPU, fetch requested files from storage (perhaps starting at an offset, which gives you cue sheet support), and deliver data (PCM samples) to some suitable audio device. Streaming might also be lumped into this area - the music might be delivered to a stream which is received by another system which houses the audio device.


* Audio device - takes PCM samples and packages them up into a suitable transmission protocol (TCP/IP, USB, FireWire, S/PDIF (via toslink or coax), or AES), which sends them to an outboard DAC. A lower-end device might use a DAC within the audio device and output line-level analog.


* Music client - provides some user interface to select the files to play. This may be fairly primitive, using only a few buttons and a 20x2 character display, or a big flashy GUI on a computer monitor, or anything in between. It must allow basic selection of files by album/track, and will almost certainly allow playlists to be defined and selected, with randomized play and perhaps more sophisticated playlist creation techniques. The issues are probably platform, functionality, and the GUI.


In the fine tradition of desktop computing, all this can be done on a single system. It can also, with suitable design, be split across multiple systems.


For example, you might prepare your data from the source media on one machine, then periodically transfer the data to a NAS device, which is accessed from a classy, silent device that lives in your primary listening area and incorporates music delivery, audio device, and is controlled by a music client on an iPod Touch.


This project installed a music delivery program (MPD) into the embedded system for his NAS. It delivered via USB to a little DAC dongle, but today you could use pulseaudio to deliver the data to an audio device elsewhere on the network. With a solution like this you could have an audio device which was merely network-aware (like a Squeezebox Classic).


You might have a restaurant or a club or even a larger home where you want to have a single music delivery process (source) send data to multiple, distributed audio devices.


Many variations are possible by dividing functionality between subsystems. There are tradeoffs to be had with each design choice.


16/44.1 source material, ripped via EAC to WAV. Linux (Fedora 10) machine -> USB -> Headroom Desktop Headphone Amp (Max DAC, Max module) -> Sennheiser HD650

Link to comment

It's a great summary of the state of music servers as it is in early 2009.


The big success so far is IPod (and MP3 to a lesser degree) integration.


The rest of the computer music server market in dollar terms is a small niche and no one company (other than Apple and Ipods) has got it together to make it mainstream for someone to get it together, sell it to many people of different technical backgrounds.



Keep on Upgrading!!!

Link to comment

Stage 1:

Take an old computer, running either OS X or Windows (iTunes supported platforms) and load iTunes. Rip your discs to your hard drive, selecting lossy, lossless, or uncompressed format. If your music exceeds your available space, add an internal or external drive as needed. Connect some $30 desktop speakers to the 1/8" jack your computer almost certainly supplies. Shazam! You have a fully functional music server!


Efforts subsequent to this are to improve sound quality, the functionality is already there. Maybe you add a remote control later.


Stage 2:

Get a $5 adapter for 1/8" to RCA from Radio Shack and connect your computer to your existing stereo system. This will represent a substantial improvement over the $30 desktop speakers.


Stage 3:

You will probably find that your computer needs to move to your listening room. You may be unhappy with the fan and hard drive noise from your computer. You may be unhappy with the aesthetics. There are various solutions. You may move storage to a NAS.


Stage 4:

You address the bottleneck in your music server system: the DAC. There are two approaches: inside the computer and outside the computer.


You can upgrade from the motherboard DAC to an add-in card, which will certainly be an improvement, and take analog outputs to your preamp. The internal DAC will be subject to electrical noise from inside the computer (a fairly hostile environment). Your digital interface to the DAC is the PCI (or PCI-E) bus.


The preferred solution is to move the DAC outside the computer, which necessitates a different digital interface. These are USB (universally supported these days), 1394/FireWire (commonly supported), S/PDIF optical or coax (occasionally supported, may require a card), AES/EBU (requires a card).


Stage 5:

Your quiet, attractive computer is happily feeding 16/44.1 to an external DAC via a suitable digital interface, and that DAC is feeding your analog stereo. You decide it is time for hi-rez data. This may require a move from USB to another digital interface. Hopefully you planned ahead and your DAC can handle the additional sample rates.


Subsequent stages:

Upgrades to the DAC and (possibly) the digital interface. This cycle may repeat many times.




16/44.1 source material, ripped via EAC to WAV. Linux (Fedora 10) machine -> USB -> Headroom Desktop Headphone Amp (Max DAC, Max module) -> Sennheiser HD650

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...