Chris and Tom recently asked me to assemble several music servers. We’ll be using these servers for Playback’s testing of various computer audio and headphone products, but they also wanted me to blog about the experience. The idea is to walk through the decisions a beginner (me) actually has to make in constructing a server. I’ll comment on those from the perspective of someone new to this, and welcome additional helpful information from our users (which I’ll incorporate along the way).
As general background for these blogs about music servers, our goal here is high-quality audio. To simply have file-based audio, with no worries about quality, is another issue entirely and more the focus of, say, the excellent For Dummies series by Wiley.
Background: What is a Music Server?
For our purposes, a music server is a set of equipment for downloading, storing and streaming digital audio files. We can contrast a server with a music client by defining a client as a set of equipment designed to accept an audio stream from a server, get it to the desired location and turn it into analog signals so that audio system (e.g. amplifier and speakers) can deliver it to your ears.
If you like analogies, one that may help is to think of the server like it was an old-fashioned library. A library procures data in the form of books, storage facilities for the books in the form of stacks, a user interface for the books/stacks in the form of a card catalog, and a way to get the books to the user in the form of a check out desk.
In this analogy, the client for the library (server) is you, the reader. You have a way to read the book that you’ve checked out in the form of hands to hold the book, eyes to scan the pages and a cerebral cortex that can turn letters on the page into thoughts. You could read the book in the same space as the library, but you could also read it at home or in a Starbucks café.
This split between server and client is somewhat arbitrary, but it does serve useful purposes. First, by separating the functions, it focuses attention on manageable groups of things (computer audio can get complex quickly). Second, it highlights a basic and potentially important aspect of computer audio: the computer stuff doesn’t have to be in the same place as the playback equipment you actually listen to. That might seem like mainly a matter of convenience, as it might be in whole house background audio. But for high-performance audio it can also be important because one doesn’t always want the noisy and space-consuming computer gear in one’s listening space.
Background: Timing Matters
With audio quality in mind, it is important to start with the notion that music data processing and computer data processing are not the same. It is sometimes said: “bits are bits” which is mostly true in computer data processing, but not in music data processing.
The difference between the two really comes down to one variable: time. In music data processing, timing information matters (a lot). In computer data processing, timing information is not part of the package.
Consider The Decembrists’ recent CD The Hazards of Love. On that disc (or set of files) there is data about the sound of Colin Meloy’s guitar. That data in effect includes the level and frequency of the guitar, and also timing information about when different notes were played. If you have the same levels and frequencies, but different timing, it is different music.
In a digital data stream, there isn’t explicit data about the timing of a guitar strum or the frequencies – this is all encoded into information about level and time. In reality this makes the timing problem bigger because it means that all the information is time dependent (e.g. changing the timing may change the frequency of the music at that instant – trust me on this). The point is that, just as music changes when you change the timing, digital music data, which operates by sampling the music at precise times, is dependent on timing information. In digital music, the data consists of numbers (the famous 1’s and 0’s of binary data) at specific times.
The result is that music bits are not just bits, because timing (clock) information is also embedded in the stream. There are various ways to mitigate the effects of timing errors, but the crucial fact remains that music data consists of both bits and timing.
By contrast, the Excel spreadsheet you’re building to analyze different investments doesn’t have a timing stream to it. It doesn’t matter to the computer or you if cell B6 gets its’ data from disc now or a millisecond from now. The only data that is in B6 is the 1’s and 0’s by which it is coded. Put another way, cell B6 might be pricing data for November 2008, but the price doesn’t change if the computer sees that price now or a millisecond from now or 10 seconds from now. In contrast, with computer audio, the sound can change when the binary numbers arrive a millisecond off from their’ original timing.