I’ve not written on audio and networking in a while but over the holiday I read Jason Stoddard’s Schiit Happens about his return to the high fidelity equipment industry as co-founder of Schiit, a maker of personal audio and value oriented high end audio. I found the book after I had ordered my Schiit Gungnir Multi-bit DAC. Over the break I had also watched a video in which Mike and Jason (the founders) talked about how Schiit came to be and this, that, and the other thing. They are toying with the notion of offering a new product which Mike kept calling Schiit Pi. This got me thinking I should write about my streaming environment again as I had improved it significantly in 2018.
- https://youtu.be/IUBFtqNpC7U — the video
Mike’s Schiit Pi Musings
In the video Mike and Jason speculate about what they might do with a Raspberry Pi. Mike, in true company spirit, referred to the mythical product as a Schiit Pi. Mike did not want the new device to be a general streaming client as he didn’t want to support multiple streaming service protocols on the device or do significant UI development.
Rather, he was contemplating a device that would connect between a streaming client and a DAC and would perform some digital signal processing magic to decrapify the streamed source. He tossed around a number of ideas. It will be interesting to see Mike’s ideas evolve into a product.
Mike’s musings prompted this article as network performance significantly affects the behavior of network audio devices. As we will see, network issues may be the result of an ill-behaved application on any network endpoint.
Originally, I used iTunes and Apple AirPlay to an Apple TV to play music. I didn’t like the requirement that I leave the Mac up to serve music. Apple just plain got iTunes architecture wrong and has not seen fit to fix it because it works for the masses.
Back in ancient history an Nvidia Shield appeared in the TV rack. This impulse purchase device picked up music serving duties using Plex to stream from a copy of my iTunes library on an external disk. From time to time, I would move the disk to my Mac and rsync the iTunes library over.
I quickly discovered that Plex supported Chromecast Audio as an endpoint so I gave it a try. Wow, what an improvement in sound quality. The image solidified and the sound became crisper. Hearing Thile-Mehldau Scarlet Town on this line-up was a revelation. Clearly, Apple was doing one or more things badly in AirPlay or Apple TV.
But there were random fades. After several months of this, I realized they were happening while using my iPad and were noticeably more frequent using the iPad Facebook app.
The HiFiBerry Digi+
Manually syncing my music library to the Nvidia Shield was getting old. As I was planning for a new iMac in the fall, I built the FreeNAS server and a HiFIberry Digi+. The FreeNAS box was slotted to become a media server and Time Machine spool volume. The HiFiBerry was to replace the Chromecast Audio with something more robust and durable. Google was pimping the little Chromecast gadget pretty hard, it ran warm, and I was concerned about its future support.
In 2017 I built a HiFiBerry Digi+ to use as a streaming endpoint. I placed the HiFiBerry in service connected to a Burr Brown based DAC in my Parasound P5 preamp. The sound was good but there were still drop outs.
When I moved the streaming endpoint from an Apple TV to the Raspberry Pi, both on the wired Ethernet, I began to experience network fades. Apple AirPlay had covered these up by using a 2 second fade buffer.
My old network topology
In an effort to stop the fades, I tried moving things around. At the time, the cable modem fed a Netgear Orbi WiFi router which, in turn fed the network core switch. Each equipment rack in the living room (audio rack and TV rack) had its own rack top switch, an Netgear 8 port gigabit unmanaged switch. The music server was in one rack and the player in the other. Music sample packets had to travel back to the core switch (also an unmanaged Netgear switch).
The first thing I tried was to connect the Roon Server and the Raspberry Pi to the same rack top switch. In theory, Roon packets would enter the switch and be forwarded directly to the Pi. But fades still happened.
Every time I touched the iPad Facebook app, there would be a music stall. This happened before any experimentation and continued to plague every every experiment going forward. Part of the solution was to drop Facebook and Instagram for other reasons (corporate miss-deeds, sock puppet memes, precision guided propaganda delivery system).
UniFi Switch 8 150 Arrives
In 2017, a local electrician installed 3 network cameras for me. These were Ubiquity UniFi Video G3 cameras that required power over Ethernet. I purchased a Switch-8-150 to power these cameras. This switch replaced the unmanaged network switch in the core network closet (my closet).
The Netgear Orbi continued to have routing and WiFi duties. One port on the Orbi connected the core network switch. The second connected a rack top switch in my study. Still fades.
UniFi EdgeRouter Arrives
While researching networking for my church’s move to a new clubhouse, I discovered the EdgeRouter Lite and ordered one for home. This router replaced the Orbi in the Internet access router role. I reconfigured the Orbi as WiFi only (no DHCP, DNS, or routing chores) as these moved to the EdgeRouter Lite.
In this arrangement, I used 2 lines from my study to the core switch. the first connected the router to the core switch. The second connected the core switch to the rack top switch in my study equipment rack. Surprise. No streaming fades. Nary a one. Orbi just did not have the processor horsepower to handle the WiFi and route packets both
UniFi Switch-8-60 Arrives
I’m slowly converting all of my Ethernet equipment to Ubiquity UniFi. The next change was to replace my study switch with a new Switch-8-60 to power a UniFi Cloud Key G2 that picked up network management duties formerly performed by a VM on my FreeNAS box and NVR duties for the cameras. I changed the topology to make this switch my core switch and the Switch-8-150 remained in the role of tying everything on the wired Ethernet together.
The router now connected to my study rack top switch. This study switch now served the CloudKey G2+, my iMac, and a new printer in my study and connects the wired Ethernet core switch and the Orbi as WiFi access point to the access router. This arrangement continues to provide fade-free music streaming both to the wired Ethernet and the WiFi
The diagram shows the final topology that I adopted. This topology has proven robust. Music is fade free. YouTube video is fade free. The Cloud Key G2+ and Switch-8-60 are on the study rack where I can check their indicators. The only real disadvantage to this topology is that NVR video passes over to the study switch to reach the NVR.