Publisher Profile

Advancing Audio Streaming, Part 1: Raspberry Pi 4 as USB Network Audio Transport

By: |

Rewind a bit…if your reaction to the title of this article was, “English, please,” then I should take some time to explain. The rest of you can head on down to the section, “This thing is hot!”

If you’re still with me, I’ll discuss the title from right to left, starting with “Transport.” For many of us, the Compact Disc was our first exposure to digital audio in the home. CD playback started with single-chassis CD players; however, it was not long before folks discovered that better sound was possible by splitting things up. As similar concepts, consider a turntable and external phono stage or a preamplifier and power amp vs. a combined integrated amp. Cost aside, isolating the mechanical vibrations from a disc that spins up to 500 RPM and stepper motors for the laser into a separate chassis with its own power supply makes a certain amount of sense. Not without its challenges, this approach turned out to be a solid architectural decision, and with it, the external DAC was born.

At around the same time, multimedia PCs were popular and were starting to become fast enough to play CD-resolution audio (44.1k samples per channel per second at 16-bits per sample). More smart people discovered that, with a suitable interface card, they could disconnect their CD transport and connect their computer directly to the DAC. With this discovery, the Computer Audio Transport was born. While splitting up a CD player to a CD transport and DAC often improved sound quality, for many years, the computer audio transport was a step backward in sound quality. It would take another decade or so before improvements in interfaces and architecture would bring the Computer Audio Transport up to the level of the finest CD transports.

Eventually, more smart people realized that the problem with Computer Audio was the Computer! Computers can be noisy beasts, both mechanically and electrically. The mere presence of a computer in one’s audio component rack can negatively impact sound quality of the entire system. There are a few different approaches to solving this problem. One is to spend a huge amount of money building a powerful yet ultra-quiet computer. The other is to split things up again.

The idea behind the Network Audio Transport is to put some distance between that noisy computer and our delicate audio components and listening environment. The audio computer can be relocated to an office or closet as long as it’s accessible over the home network. We browse and control music selection and playback via a remote control app installed on a tablet or smartphone, but how do we get the music to our listening room?

The solution is a Network Audio Transport (sometimes referred to as an NAA or Network Audio Adapter). This small device receives a digital audio stream from the audio computer (a music server) over a network connection and outputs digital audio to a DAC, typically over S/PDIF or USB. These devices are, technically, tiny, low-power computers. The advantage they have over full-sized (even small form-factor) computers is that they can be cost-effectively configured to generate no noise and very little RFI and EMF. They usually run single-purpose software that simply copies audio from the network to the digital output. Virtually no background tasks are running, so the much less powerful CPU in a Network Audio Transport is still almost entirely idle. Crucially, an idle CPU is what we want whenever a computer is anywhere near our audio system!

The Raspberry Pi (RPi) is a pocket-sized $35 single-board computer that’s been around since 2011. The latest version is called Raspberry Pi 4 Model B, or RPI4, and includes performance and architectural improvements over its predecessors. The RPi is a popular choice commercially and among hobbyists for building network audio transports due to its small size, low power, and low cost. It has been used in a number of commercial products, including Bryston’s BDP-Pi Digital Player. The RPi is equipped with four USB ports, a wired Ethernet connection, and 40 general purpose input/output (GPIO) pins to which 3rd party audio boards may be attached without soldering. The RPi’s low power requirements mean that it can be run for many hours from four rechargeable AA batteries or a small linear power supply.

So, there you have it. The RPi is a $35 device that, with just a little work, can be configured to function as a network audio transport that feeds a high performance DAC while eliminating the need for an electrically noisy computer to be present in the listening room. Now, advancing audio streaming…

Smraza Case for Raspberry Pi 4 B

This thing is hot!

I’ve had a Raspberry Pi 4 small board computer (SBC) for a while, but the thing runs hot (61 – 65º C) just idling in a standard case. At first, I thought I might have a defective board, but that’s just how the RPi4 is.

To manage the heat, I moved it from the official case to one with an integrated CPU fan. Doing so brought the temperature down to RPi3 levels (~45º C) but precluded serious use of the RPi4 as a Roon output due to fan noise and vibrations.

Solving the heat issue properly required the Flirc case that I had pre-ordered a month or so before the RPi4’s release. Theirs is a passive cooling design that uses the entire chassis as a heatsink. A metal post extends from the top of the case, making contact with the CPU/GPU via thermal tape. It acts as a heat-pipe, transferring heat away from the CPU.

iFi iDefender3.0 between SBC and DAC

My interest in the RPi4 as a network audio transport stems from its improved USB design. Quoting from the official documentation, “In all models prior to the Pi 4, the USB ports connect to a combo hub/Ethernet chip, which is itself a USB device connected to the single upstream USB port on BCM2835. On the Pi 4, the USB hub chip is connected to the SoC using a PCIe bus.” In theory, this dedicated connection should result in better USB performance with, possibly, less noise contribution from the Ethernet chip.

The “bits are bits” crowd will argue that noise makes no difference with digital signals, but in reality, there’s no such thing as a “digital signal.” All signals are analog and are affected to some degree by noise. More importantly, the “A” in “DAC” stands for analog, thus reducing noise in the digital audio transport means that less noise makes it to the analog circuits of the DAC. Is this significant? The answer is very system dependent, but it’s just good housekeeping. If you have an opportunity to do something that may reduce transport noise without spending a lot more money, why not?

One limitation of the USB implementation on the Raspberry Pi is available power. According to the official documentation, “The USB ports on a Raspberry Pi have a design loading of 100mA each — sufficient to drive “low-power” devices such as mice and keyboards. Devices such as Wi-Fi adapters, USB hard drives, USB pen drives all consume much more current and should be powered from an external hub with its own power supply. While it is possible to plug a 500mA device into a Pi and have it work with a sufficiently powerful supply, reliable operation is not guaranteed.” This means that it’s never a good idea to rely on any Raspberry Pi to solely power an attached DAC!

Whenever I use an SBC as a USB network audio transport, I insert some kind of device to obviate the SBC of the responsibility of powering the DAC. In the photo above, I have the iDefender3.0 from iFi Audio relieving the RPi4 of 5V power duties. In other installations, I’m using the micro or nano (no longer available) iUSB3.0 devices from iFi Audio for the same purpose. These ensure that the DAC receives adequate power to drive both analog and digital circuits without stressing the upstream Raspberry Pi digital transport.


How does it sound?

DSD256 streaming to the RPi4 from Roon

Well, it’s early in my evaluation, but it sounds great so far. Like the Raspberry Pi 3 Model B+, the RPi4 has 5 GHz Wi-Fi and 802.11ac support, so streaming DSD256 and 32-bit, 768 kHz PCM are no problem. The background is inky black on quality recordings, leading to impressive dynamics. My next step is to compare the RPi4 with the Allo USBridge. The latter solves the USB noise issue by adding a bespoke USB board that Allo specifically designed for digital audio applications. This board should give the USBridge an advantage over a general-purpose RPi4, but I’ll report back on what I find soon.


Regarding the kodi edition of the Flirc case

I originally purchased this case with the intent of using the RPi4 as a kodi video player. (The kodi edition of the Flirc case is exactly the same as the standard case, but some of the money goes to support kodi.) The dual 4k HDMI outputs and hardware H.265 video decoding makes the RPi4 a very attractive device for video playback. Sadly, as far as I can tell, kodi is not yet supported on the RPi4. That’s too bad since I think kodi will become one of the killer applications for this SBC. Until a future version of kodi is released that adds support for the RPi4, this device will be relegated to audio duties.


Following along at home…

If you’d like to give the Raspberry Pi a try as a Roon output, here’s a link to a video that I created that walks through the hardest part: preparing a microSD card with an O/S and the Wi-Fi settings required for you to access the device from your home network.


How to flash a microSD with DietPi and Roon Bridge


End of Part 1


Copy editor: Dan Rubin

  • (Page 1 of 1)

18 Responses to Advancing Audio Streaming, Part 1: Raspberry Pi 4 as USB Network Audio Transport

  1. Richard Jones says:

    The Raspberry Pi 4 USB ports can output up to 1.27A. That is hard wired to all four ports so can all be drawn from one USB if needed. Obviously depends on a suitable PSU. The official Pi 4 supply is designed to prove enough power for the board and supplying this to external USB devices.

  2. Andreas says:

    LibreELEC 9.2, based on Kodi 18.4 is available for Pi 4.

  3. Adam L says:

    I’d be interested in your opinion of the Orchard Audio Raspberry Pi DAC.

    Also, to D Snyder’s comment about the $8 wall wort. I agree, but have found that a good power platform/conditioner + a good power architecture/design of a 3rd party DAC to pair with the raspberry pi can make a large difference.

  4. Jaxon Lee says:

    Thanks for this excellent post. I recently bought a RasPi4 as a streamer to use with an older usb DAC. I was getting some power fluctuation wonkiness (The DAC charges AND delivers data along the usb connection) that I noticed by looking at the charging LED on the DAC. The charging seemed to start and stop randomly. And streaming via Volumio seemed to be hit or miss. It seems the RasPi is not up to the task of delivering power to the DAC; exactly a condition you mentioned in your post. Glad I found it; your solution is perfect. Thanks

  5. Udo Neumann says:

    Which software did you use on the Raspi to stream the audio from Roon (or other Software on Mac) to the Rapi?

  6. Craig Stenstrom says:

    Nice article. Just got my rpi4, flirc case and idefeder and ipower. Which usb port should be used to your dac?

    • David says:

      I’ve not noticed a difference in sound quality. I would use a USB2 port unless the DAC explicitly supports USB3 (eg, some iFi Audio DACs)

  7. Craig Stenstrom says:

    Contrary to my expectations my brand new RPi4 with Flirc case iFi iDefender and iPower connected to Halide HD USB DAC sounds inferior to my RPi2 with Allo Boss HAT DAC.

  8. Mike says:

    This is a great discussion and perfect timing as I am looking at purchasing a RPI4 for this exact purpose, likely using volumio. I would love to know how the USB out of the pi compares to the Allo USB bridge in terms of noise etc. Would the Allo USB bridge on top of the pi4 fit inside the Flirc case? I am going to use the pi with USB input on an smsl SU-8 dac. I look forward to hearing your further thoughts.

    • David says:

      The Allo USBridge sounds significantly better than a bare RPi4 with the DACs I’ve tried. The USBridge is not compatible with the GPIO interface on the Raspberry Pi.

  9. JP says:

    Hello David, I was planning on using this RPi4 device to transmit a digital audio stream via bluetooth to a Audiolab 6000A which has a rather nice built-in DAC, rather than using USB (the 6000A does not have a USB input). Can this be done, and if so, what is necessary to make this work?

    Do you know if the RPi4 can has sufficient current to power a Peachtree Audio T1 24/96 USB/SPDIF converter (it runs off of USB BUS power) or will a powered bus hub be necessary? Thanks!

    Thanks! – J
    ps – Is there a Part 2 coming?

  10. JP says:

    After doing a bit more research, it appears that using a Topping D10 is the way to go. I look forward to putting this system together. Any words of advice?

    • David Snyder says:

      Hi JP,

      Topping D10 is a fine way to go. To get the most performance out of it, you are still going to want to power it from something other than the USB ports on the RPi4. I realize that the combo is pricy (more than the cost of the DAC), but the iFi Audio iDefender + iPower 5V that I described in this article is a great way to go. If you have an existing powered USB HUB, that can get you by until you are able to upgrade to something that can provide the current the D10 needs fully drive its analog circuits.

      I have not attempted to get Bluetooth audio working on the RPi platform. I’m aware that it exists and that Bluetooth technology and codecs have improved substantially in recent years, but I’m not convinced that it is capable of delivering the sound quality that I expect for focused listening.

      Good luck with the D10. Enjoy.

  11. Jim White says:

    Thanks for this article and especially the video. I am running Roon Rock on a dedicated Intel NUC. Currently, DAC’s are connected to the NUC via USB–I do use an Audioquest Jitterbug sandwiched in between to temper noise being introduced–so this looks to be a great inexpensive way to get the Core off of the endpoint. I know the endpoint will work wireless but as I already have ethernet running to that location wouldn’t it be better to go direct to the router?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Popups Powered By :