Serving the music
Whether your streaming music is stored on your computer, NAS, or up in the cloud, the basic function of a network music server is pretty much the same. The server is responsible for storing, organizing, and delivering digital music files to a renderer for playback. This is your library. *(Technically, a library is a collection of files that lives on the server, but to keep things simple, I am referring to the whole mess—server and collection of files on that server—as the library) First and foremost, a music server is used to store and organize digital music files. Once the music files are stored, the server software organizes them by metadata such as album, artist, genre, and track information. This metadata is crucial for browsing and searching your music library using a controller (which we'll get to in detail tomorrow). Think of the server (library) as a big hard drive in the sky. Each track of music stored on that server is assigned a unique ID number—kind of the same thing as the bar code on every product in your supermarket. All these ID reference numbers are stored in a database, and it is this database that our controller is going to interact with. For example, let's imagine 10 tracks of music are stored. Each of the ten is assigned a unique ID number, and each of those numbers references the metadata associated with each track. (Metadata refers to data about other data: artist, length, genre, cover art, etc.) Now, a controller sends out a query to the server: search for Flamenco music. The server (which is just a computer connected to a big hard drive) searches all the metadata with that keyword and returns the results to the controller. 3 of the 10 tracks were Flamenco, and now we have 3 cover art pictures displayed on our controller. You select number 2, and now the server sends out an address for the playback device to connect to. This address is essentially the same sort of thing as a webpage link. Click the link and your renderer starts receiving the music. But millions of songs? How does a server like Tidal work? Tidal's music streaming service contains millions of songs from various genres, artists, and labels. To connect to millions of users simultaneously, Tidal, Apple, Qobuz, and Amazon all use a content delivery network (CDN) to distribute their content. A CDN is a network of worldwide servers that work together to deliver content to users from the server closest to them. When you request a song or album, Tidal's CDN delivers the content from the server that is geographically closest to you. This offers minimal latency and buffering during playback. So, a music server is a big hard drive in the sky. Everything on that hard drive is cataloged and organized in a big database that your controller—like Roon—queries and presents to you in the form of cover art, artist info, track titles, etc. When you select a track to play, the server connects your player to that one file in the same way you connect to a webpage, and voila! music.
- Choosing a selection results in a full page refresh.
- Opens in a new window.