Audio Setup - 2026

Word Count: 3579
Reading Time: 17 Minutes
Category: Basement

Last year, I wrote about reorganising the hardware side of my music setup, along with a few software changes. However, shortly after that post, I started to experience some issues and decided an overhaul was already needed. So! In this post, I’ll go into what went wrong, the various ideas I explored, what I landed up with, and why this is now titled Audio Setup and not Music Setup.

Issues

The biggest issue I experienced were loud pops and bangs coming from the Raspberry Pi running MoOde when songs were skipped or when scrubbing through the track. These were disconcerting, startling, and meant I had to make some changes. I was also unhappy with certain gaps in my audio setup overall, such as being unable to use my IEMs on my tablet without 3.5mm output, and I have no access to FM/DAB+ radio in any way, which is an issue during live sporting events where apps streaming radio tend to be a good minute behind. MoOde also didn’t help me access podcasts, audiobooks and other services like my favourite internet radio stations and self-care apps. As such, this problem went beyond just music!

The Perfect Solution Doesn’t Exist

A tablet or phone with Android would solve most of these issue, as I could install apps for the things I needed, but hardware was at fault here: not only would I need two USB outputs (one for power and one for a Digital-to-Analogue Converter, known as a DAC, to achieve high quality audio), but I was cautious of battery drain and long-term battery health, as well as preventing a “spicy pillow”, where the battery degrades and swells, to disastrous results. A USB splitter might solve the first issue and give me two USB outputs, and while some industrial tablets do offer battery bypass, where the device disconnects from the internal battery and runs entirely off external power, I found such tablets were expensive and more for retail use, rather than for the consumer.

For a short while, I had conceded to simply needing to save up and purchase something that just did the job. My first idea was a Digital Audio Player, known as a DAP - basically, a modern day iPod. The one I had my eye on was the Fiio M21, a nearly £300 device (!), but it ran Android, had a built-in DAC, and Desktop Mode, where the internal battery disconnected to preserve battery health. But the price put me off, and I didn’t need a portable device. I then looked at the Ugoos AM9, a sort of Android TV box which ran off external power, but with full Google Play store integration, and multiple outputs for a DAC to connect. I’d need to attach it to some sort of monitor and find an input method, but for while this did seem the best idea, despite it being expensive at nearly £200 (and I’d need to buy a monitor on top of that), I then realised something I had not considered: What if the issue isn’t hardware, but software?

The problem with relying on an Android system, especially through manufacturers like Fiio and Ugoos, is that they rarely commit to providing regular software updates to the next versions of Android, unlike phone manufacturers who do for at least a couple of years. As a result, even if I do find good hardware, be it a DAP or an Android box, will I end up with a £200 brick in a few years time?

Because of this, I decided I could not rely on the Android ecosystem, but was happily surprised to learn all my apps, bar one, had versions of their services that can be accessed via a web browser. I would have to compromise and stop using Symfonium to access my music, but considering the benefits I would gain elsewhere, I decided this was a good trade-off, because the perfect solution doesn’t exist.

The Next Best Thing?

During all this, I began using Linux as my daily driver, and unexpectedly discovered that Linux on my old Windows PC runs significantly better than my Mac Mini did, and I am now finally able to multitask and play media at the same time as other applications without experiencing lag. As a result, I do not need a separate playing device at my desk, and I can simply open a web browser on one of my monitors, and play music, audiobooks, podcasts, internet radio and most of my other apps with their web versions - I could even play most video, though one service annoyingly states they do not work on Linux and Chromebooks. As such, for this one service, I do bring the tablet back out for short term use. Otherwise, I’m pretty happy at set at my desk for my audio needs!

Mini PC

So, if the perfect solution doesn’t exist, is the next best thing… a computer? Well, I was growing in confidence using Linux, and I knew I could get a mini PC relatively cheap considering I had upgraded my Raspberry Pi 4 server to a refurbished enterprise mini PC to not much expense. Although that ran headless, and I knew with this new device I would need a monitor and some sort of input device, but I was hopeful I could achieve all this on the cheap if I was lucky, and thankfully, I was quite lucky.

First, I spotted a pretty beaten up (I’m talking taped cardboard attached!), but fully functional and internally upgraded passively cooled (nice and quiet!) enterprise mini PC made ten years ago for a real bargain. I wouldn’t be able to multitask on it, I’d need all the graphics set to low, and I’d have to run a lightweight operating system on it, but that was fine - all I needed for it to do was open a web browser, navigate to where I wanted to go and play audio. Second, I needed to deal with that navigation: how would I do the actual navigating and see where I’m going? Thankfully, I was lucky again and stumbled across a fourteen-inch portable touchscreen monitor that was severely incorrectly priced during a sale - half the price of its non-touch version! I snapped it up, and when everything arrived, I’d managed to get the mini PC and touchscreen monitor (plus the cables I needed to connect everything together) for less than £70!

Next, I needed to set it all up. Based on the time using my main computer, I decided I loved KDE as a desktop environment, and wanted to use it as although it was not as lightweight as XFCE, nor as good at touch as GNOME, it was a good compromise between the two: better at touch than XFCE and lighter than GNOME. I also wanted KDE for full integration with its companion service KDE Connect, which allows you to use your phone to remotely control the computer. Because, although I had my touchscreen monitor for tapping away to navigate, I could use the on-screen keyboard and password manager on my phone to easily type and copy-and-paste login information without needing to type them out on the touchscreen monitor - and it has been a lifesaver, making everything so much smoother and faster, along with the added benefit of using my phone as volume control!

As a result, to make the mini PC as lightweight as possible with KDE being the star, I decided to use its Debian based distribution, KDE Neon. It worked really well, and was not a hassle at all to install. I then set to tweaking everything to prioritise touch. KDE is fantastic at customisation, so I decided on one large panel at the bottom with an Application Dashboard widget, so I get a nice large fullscreen experience when selecting applications and turning the computer off, Librewolf (web browser of choice) pinned, and large widgets of sound, network, Bluetooth, KDE Connect, and a toggle for the on-screen keyboard in case I do need it - all easy to touch with imprecise fingers tapping away. I’ve also increased the resolution scale to 145% to make things easier to see and touch, used Yet Another Monochrome Icon Set to create uniformity across the icons, and installed Rosé Pine Moon colours to create softness on the eyes when using the computer late at nights.

Software wise, I installed the NightTab browser extension on Librewolf, and configured it to create large, easily tapped, bookmark buttons of the various websites hosting the audio content I want to access. Initially, I had also dabbled with music player Feishin after discovering it can run in Docker and stream uncompressed to web browsers, but I found Feishin did not play nice with touchscreens, so I just switched to using my music library Navidrome directly, which while not as pretty as Feishin or Symfonium, it at least worked!

FM/DAB+?

All of this though doesn’t address an issue I talked about at the start, which was that internet radio of live sporting events tended to face quite a substantial delay, which was frustrating when following along on social media and being behind. As a result, the simple solution was to buy an FM/DAB+ radio I found on sale and add it into the mix, with an RCA switch just before the powered speakers, handling inputs from the radio and the DAC connected to the computer. A push of the button simply swaps between radio or DAC, and I’m happily listening to football coverage and being kept in the loop!

But…

Of course there is a but!

During all of this, I also contemplated another route entirely which utilised my Raspberry Pi that I found very intriguing: Snapcast and Music Assistant.

Much like how Home Assistant pulls together different smart home devices to work with each other, despite their differing ecosystems, Music Assistant works by combining various audio providers and player providers. From there, any audio provider can push audio from their service to any player provider in one single unified interface with full control. Music Assistant is updated regularly and there are all sorts of music providers supported, such as Audiobookshelf, Plex, OpenSubsonic, Tune-In Radio, BBC Sounds, various streaming providers like Spotify, Tidal and Qobuz, and even RSS feeds of podcasts. Player providers include a mix of established hardware names like Sonos and Yamaha’s MusicCast, Squeezelite devices either from the obsolete Squeezebox range or installing the successor Lyrion Music Server on your own hardware, devices with the AirPlay or Google Cast protocols, and devices, like Raspberry Pis or refurbished computers, with Snapcast’s Snapclient installed on them.

As you can see, this creates an audio hub where podcasts, audiobooks, internet radio, streamed music and local music can all enter into one controllable central point, and can then be broadcast across a wide of range of devices from various manufacturers. Granted, this did not solve my FM/DAB+ radio issue nor accessing the web versions of my self-care apps, but a large part of distributing audio interests of mine could be conducted by this one piece of software.

Given at how I have a Raspberry Pi now going spare, I decided to play around with it. I installed Music Assistant via Docker Compose on my server, running alongside Navidrome and Home Assistant (which will help enhance my setup later on, but technically not needed), and is easily accessible anywhere on your network via a web browser, where you can then not only configure all your inputs and outputs, but also be used as a controller and player. As a controller, you select the sources you wish to listen to and then the player to send the audio to, whereas using it as a player will just play the audio in the web browser you’re accessing it from. However, the audio’s quality is dependent on both the source and the player: Tune-In Radio won’t be high quality regardless of where you’re sending the audio to, so no issue there, but your high quality FLACs will not come through in high quality either through some outputs like Fully Kiosk Browser on an old Fire HD tablet. As such, it is best to pay attention to the audio quality, by looking at the playback screen which lists both the input quality and output quality, to make sure you’re getting what you’re after.

I decided to install DietPi on my Raspberry Pi to act as a player, as it offers Snapcast during setup, which not only installs Snapclient for me, but also guided me through basic configuration too, where I simply pointed the Snapclient towards the server where Music Assistant runs, and although I do not have a Snapserver running, Music Assistant broadcasts as a Snapserver for the Snapclient to connect to. After that, I can finish up on Music Assistant, adding the Snapclient as a provider and can now be selected as a player option.

Control

Perhaps most exciting about Music Assistant (at least for me!) is how it can be controlled. As it can be fully integrated into Home Assistant, where all the providers and players can be seen, a world of opportunity opens up. You can, for example, use physical Zigbee buttons to trigger simple play, pause, next track, previous track, volume up and down controls, as well as more advanced automatons such as playing something from Music Assistant when you awake in the morning, or enter a room. A physical Zigbee button remote can be used to switch playback between different internet radio stations or music playlists. For a test, I picked up a cheap six-button Zigbee remote and configured it as such for each button:

  1. Single press rate currently playing Navidrome song as 1 star. Double press previous track in Music Assistant. Hold press play soothing classical music playlist made of such internet radio stations.
  2. Single press rate currently playing Navidrome song 2 stars. Double press next track in Music Assistant. Hold press play lofi music playlist made of such internet radio stations.
  3. Single press rate currently playing Navidrome song 3 stars. Double press volume down in Music Assistant. Hold press play laid-back jazz playlist made of such internet radio stations.
  4. Single press rate currently playing Navidrome song 4 stars. Double press volume up in Music Assistant. Hold press play upbeat jazz playlist made of such internet radio stations.
  5. Single press rate currently playing Navidrome song 5 stars. Double press toggle shuffle in Music Assistant. Hold press play ambient music playlist made of such internet radio stations.
  6. Single press toggle play/pause whatever was playing last. Double press toggle repeat in Music Assistant. Hold press play funky and disco inspired house music playlist made of such internet radio stations

It was pretty great being able to just start and stop music, as well as change genres, so easily. I’d often just start an album, playlist or internet radio station on my phone or a web browser on my computer, and then just manage through the remote, as well as stop it whenever I left the room, without needing to access my phone. It was also great at jumping between services quickly, I didn’t need to go to a different app or website for the audiobooks, the internet radio or the local music library - it was all in one place!

Music Assistant Issues

However, it was not a perfect system. My first issue of played music from my Navidrome server not scrobbling back to Koito was easily resolved by installing the Subsonic Scrobbler plugin, but the other issues proved to be trickier. I found podcast integration difficult as I could not get the self-hosted option supported, gPodder via oPodSync, working no matter how many different Docker images I tried, and while the Podcast Index could be set up, I could not find all my podcasts to add to my library. I could add my followed podcasts one-by-one via RSS feeds, but this was cumbersome and a lengthy process, plus it cluttered up the provider list. Although I could have added podcasts to AudioBookShelf, these would only be downloaded and not streamed, and I want to be able to browse through my followed podcasts, see what catches my eye and play it - I don’t want hundreds of files stacking up I never get round to listening to!

Aside from that, there was then the obvious: what can be played through Music Assistant is restricted to what is currently being provided by Music Assistant. To be fair, they are regularly adding providers, with the likes of BBC Sounds, Bandcamp and Soma.fm being added while I was tinkering around, which gives me hope more may be added to plug gaps in coverage, such as Pocket Casts, which is being discussed here in the Music Assistant GitHub and here in the Pocket Casts forums. However, I do not expect every single thing on the internet that can be streamed to be added, that would be ridiculous! As such, the web versions of my self-care apps aren’t there, nor MyNoise to generate background sounds (though this has also been requested!).

There is the newly added (at time of writing!) VBAN Receiver which will play whatever audio is pointed at it, but I’d still need a central point to initiate the audio, and while technically I guess that could be set up on the mini PC, I’m unsure if it is powerful enough to remotely control the entire screen for navigation purposes - something beyond KDE Connect, so I’d need to set up some sort of VNC and now it’s just starting to get too large and complex to manage. So, no, I decided against that as an option - but I did investigate!

Lastly, although control with physical Zigbee buttons was neat, I did find myself missing a screen to see the current song playing and sometimes found I’d left the screen on my phone on so I can see information about the song, which obviously wasn’t good for battery health! However, as I write this, I now see implementation of the SendSpin protocol, which although primarily used to send and receive audio, can also be used to send and receive metadata, including track name and album artwork, as well as controls for the audio, so perhaps if I picked up the right hardware I could use that? Maybe?

Best of Both Worlds

However, as I was writing this post, I had an idea about my setup: could I combine the benefits of a computer accessing websites like those of MyNoise, podcasts or self-care apps, as well as utilise Music Assistant and the benefits of not only having most audio content in one place, but also access to the automations of Home Assistant? Initially, I thought this would be done simply by accessing the webpage of Music Assistant and playing audio from there, streaming via the web browser, but while Music Assistant “sees” the web browser as a player, Home Assistant did not recognise it as a device to interact with.

Although there are not many options (yet!) of running SendSpin, I looked at cross-platform SendSpin-CLI and wondered if I installed on a computer, would be considered a device in Home Assistant’s eyes? It was quite easy to install, just running a command from the GitHub page and then walking through the configuration setup, and although I had an issue with Pipewire and permissions, these were easily fixed, and then sure enough, not only did Music Assistant see the new SendSpin player, but so did Home Assistant - and most importantly, I could hear the audio being played as instructed by Music Assistant! Well, now we’re onto something!

I was then able to edit the existing automations I had made for the Raspberry Pi running SnapClient and point them instead to this SendSpin instance running on my mini PC, as well as now control 90% of the content I wanted anywhere by accessing the Music Assistant webpage on my phone, which allowed the mini PC to turn its screen off, and me then jumping between my local music library, internet radio and even audiobooks, all from my phone. I have again found myself falling into the issue of wondering what song is playing, but this is less of an issue with internet radio where it is more used as background music, and I am more interested in ever about exploring ESPHome and creating something using an e-ink device to show me the information of what is currently playing - never played around with ESPHome before, so it will probably take me some time!

Overall, I’m very satisfied with where I have landed up with my audio setup. I like how most of it is now contained in one place with Music Assistant, how it can be controlled with Home Assistant, and that I am still able to access content not currently provided by Music Assistant, as well as not being locked into an ecosystem or facing issues with battery health. I also like how Music Assistant makes expansion cheap: to add coverage to more areas simply requires a Pi running Snapclient, a DAC and speakers. I’ve seen a lot of people over the past few months reconsider their music setups, either swapping streaming platforms or deciding to go offline with their collection, and I highly recommend if you’re already into Home Assistant to try out Music Assistant as it really is a phenomenal piece of software that might improve your setup too.