This is a guide to building an inexpensive but good quality DIY music streamer/source, that outputs clean SPDIF to drive an external DAC. It uses an audio-centric version of Linux running on a Raspberry Pi 3, and a readily available audio board. This solution is best suited to driving inexpensive DACs like the Modi Multibit and the Bifrost Multibit. The board used can take a BNC connector*, for use with the Gungnir Multibit if you really want or you can just use Coax etc.- but once you're into four digits for your DAC, you can probably justify a more expensive source. If you are using a Yggdrasil or similar, you probably already have a kickass AES source, and probably don't need to read this, unless you fancy tinkering with a tiny second system. * But that would involve soldering, which might scare some folks off. We'll avoid anything like that for now, to keep it simple. There are three parts: Preamble - explanations of what/why. Shopping lists, basic hardware setup, getting the OS installed etc. The slightly fiddly bit - how to update the kernel, because the one in the standard image isn't new enough. The main config - setting up Runeaudio to see the soundcard, music, misc tweaks. It's split like that because hopefully the the distro we're using will be updated so the second part isn't necessary, soon. However, it'd be handy to remember how to do it, if another card comes along that needs a newer kernel. Preamble Sound quality is dependant on your whole chain. The weakest link is your highest quality. When ceaselessly searching for better sound, standard procedure is to improve the most harmful bottleneck. There has been a lot of interest recently in using better sources than janky motherboard SPDIF, or worse yet, USB. While it's a nice idea to get a lower-jitter/noise source, things can get out of hand. If you only have a Modi Multibit, spending $500 on source, D2D converters or anything else is just a bit nuts- the money is better spent on a nicer DAC. There's also a lot of snakeoil out there, which does little or nothing to help ("USB reclocking" is a particularly useless promise). (About Jitter) Spoiler Jitter? Everyone probably knows what stray electrical noise sounds like, but what does jitter sound like? The sort of periodic jitter that you get from a low-quality computer-based source essentially sounds like frequency smearing. Higher frequency transients lose their crispness, staging becomes muddy and instrument separation suffers. It's hard to describe- once you get rid of it, though, the difference is stark. It's a bit like having a camera that's always slightly out of focus. Once you get your front/back focussing fixed, everything is crisper and clearer- even though it's the same lens and same camera. Luckily, there is an easy solution, though you have to get your hands a little dirty. As you probably know, as you're reading this thread, you can build a cheap high-quality source using a tiny credit-card sized Raspberry Pi computer, with an inexpensive digital audio output card. Using a nice custom Linux distribution (don't panic), we can turn a tiny machine like this into a networked music player that can play audio from network shares, and function as a UnPnP, Airplay and Squeezebox renderer. So how does all of this stuff work together, in practise? The system we're going to set up is very flexible, and can be used in a variety of ways. For now, we'll just consider the most straightforward and efficient use case- using MPD. MPD ("Music Player Daemon") is a free headless music player. It is designed to play music reliably, and be easily controllable over the network. It exposes its control interface fully, so that it's easy to develop remote control apps for it. There are many interfaces for it. A lot of the audio-centric mini-distros for the Raspberry Pi include their own web interface: In addition to that, there are mobile apps, which make it easy and convenient to control the music from a smartphone or tablet: The Raspberry Pi sits on your network, mounting your network drive full of music. You control the music player on the Pi remotely over the network- and the Pi plays the music out of its fancy digital sound card (with nice solid clocks) over SPDIF. The SPDIF is plugged into your DAC. Because you're feeding it a good, clean low-jitter audio stream, your DAC makes happy noises. This means that you can use almost anything as a remote, too- so can switch your computer off, if it's a bit noisy. Prerequisites I'm going to explain how to build an easy, functional network streamer from inexpensive, readily-available parts which are in production at the time of writing. We're going to focus on straightforward, inexpensive and easy- no soldering nothing likely to burn your house down. There are more complex and exotic ways to approach this, but those are out of scope for now. This is a guide for the nervous, not for smartarses. If you're a smartarse, you don't need a guide- you know what you're doing However, there are some things that we're going to assume that you already have. If you don't have these things, and are not sure how to get them, then feel free to run away. Don't let me complicate your life with my nonsense! You will need: A sane network, with the usual guff like DHCP etc.. 99% of people have this, you'd have to go out of your way not to have it. A small amount of networking knowledge - the ability to type an IP address in without pain etc.. Working Wifi or the ability to run a network cable to near your DAC, as you prefer. A CIFS/SMB network share full of music. This probably should come from a nice little NAS, though you could share from a computer if you must. However, a NAS is probably nicer- we're trying to decouple stuff from your noisy computer! A DAC that supports TOSlink or coaxial SPDIF. Shopping list You're going to need: A Raspberry Pi 3 - this is the actual tiny computer that's doing all the work. They kick ass, it's a quad core 64 bit ARM machine, with built-in Wifi. A Hifiberry Digi+ Pro - this is an small digital audio board that plugs into the Pi. It has a pair of decent-quality clocks, and should provide a nice clean feed at all your favourite sample rates. A case - this will hold the Pi and the audio board easily, with cutouts in place for the SPDIF connectors. A USB power supply. It should be able to push over 2A. Here's a cheap one. However, if you prefer to pay slightly too much, here's a less noisy option. Despite the snakeoil marketing, it apparently works reasonably well. (There are much more expensive options, but let's keep it simple for now) A memory card - you need a MicroSD card. Make sure it's at least class 10/UHS-1, so things aren't too sluggish. An 8GB card is probably plenty, actually- but given that a 16GB is nearly the same price, it's nice to have breathing space. Try to get a reputable brand from a reputable seller- don't buy from ebay or an Amazon marketplace seller, there's a lot of dodgy memory cards out there. A card reader - the card above has a microSD to SD adaptor, so a reader for either is fine. A lot of laptops and monitors have built-in card readers, so chances are that you're all set. If you don't have one, they're not expensive. A spare network cable. You'll need it for setup, at least. You can use Wifi later, if you prefer, so it doesn't need to stretch all the way from your network switch or router to your DAC! Put it together I'm not going to provide a step-by-step illustrated guide to how you plug the hardware together. It's very easy and it only goes one way- it'd be an insult to your intelligence (and great personal beauty). Essentially, don't worry- just plug the Digi+ Pro into the header on the Pi, and use the supplied plastic standoffs to support the board rigidly. Clip it into the case and then pull the pre-cut tabs off from in front of the SPDIF It all only goes together one way. Fit the lid, and that's most of the hardware work. Easy, huh? Next, you need to download an image of the operating system that we'll be installing. We're going to be using a special audio-centric version of Linux called Rune Audio. At the time of writing, it is the most functional and slick choice out of the available audio-centric minidistros for the Pi. (On choice of distribution) Spoiler At the time of writing, of the three most popular choices: Volumio doesn't support the Digi+ Pro at all, and it makes it hard to upgrade the kernel. Moode supports the Digi+ Pro out of the box, but messes up the Pi 3 wireless config. It's also a bit ugly. Rune Audio can support the Digi+ Pro with a kernel update. It works well with the Pi 3 on-board Wifi and has a tolerable web interface. Rune Audio feels like the best trade-off. It takes a little more effort to get it working (until they publish a version with a newer kernel), but it's possible to get all the hardware working, and the web interface is relatively quick and looks decent. Go to the download page and grab the Raspberry Pi image. You'll need to write the image to your microSD card. Read the relevant instructions that match your desktop OS: Windows MacOS Linux (Note, at the time of writing, the download page contains 0.3, which will require a kernel update to work with your Digi+ Pro. It's very easy, the second post will walk you through it. However, the current 0.4 beta is looking surprisingly decent, and works without any update needed- you can find that here. The choice is yours. The 0.4 beta does fix a couple of annoying but non-fatal bugs, though.) The instructions are a bit spotty, and you can easily accidentally write a still-compressed image to the card, which won't work. For the sake of simplicity, it's best to decompress it yourself first. On linux, it's just "gunzip <filename>". On MacOS, you can just double-click it in the Finder. On Windows, grab a copy of 7-Zip (you should have it anyway, it's really handy), and that will handle it for you. Once you've unpacked it, the filename should change from something like: RuneAudio_rpi2_rp3_0.4-beta_20160321_2GB.img.gz to something like: RuneAudio_rpi2_rp3_0.4-beta_20160321_2GB.img ..and it will have increased in size from just under 800MB to a little bit over 2GB. Anyway, assuming you've decompressed the image correctly, write it to the memory card. It will take a while, as they're pretty slow. You're unlikely to see more than about 10MB/sec write speed. Zzzz. This might be a good time to make a cup of tea. Once you have written the image to the card, you can insert the it into the Pi. You'll find the card slot at one end, underneath. The cutout in the case should make it easy to spot. Install the card with the metal contacts upwards. Run a network cable from the Pi to your network switch/router. Then plug the power into the Pi. You should see a tiny red light inside, and then a tiny green light blinking. The LEDs around the network port will come on as the machine boots, and before too long (maybe a minute, if not a lot less), it will have booted. After a while, you may be able to just point your web browser at http://runeaudio, and get a pretty blue interface. It takes a while for it to become reachable by name, though. If for any reason, you can't reach it by name, you'll need to get to the web interface via the IP address. Use your router's web interface to find out what IP the Pi is using. If you're not sure how to do that, you could also use a Bonjour Browser (here's one for Windows) to look for "runeaudio", but you really should know how to see what's connected to your router, as a rule. If you're not sure how, ask the person who set up your router to help! Once you've found which IP the Pi (identifying itself as "runeaudio") is using, point your browser at it (e.g, http://192.168.2.10 or whatever). You should get the pretty blue interface.