Building an Audio Server with Volumio & RPi

Picture of a Bookshelf speaker with a bamboo case and 2 black speakers mounted in it. On the side is a Raspberry Pi with a audio amplifier mounted on top

The tldr;

I put a Raspberry Pi to work again, this time to solve my desire for an integrated audio server that I can access from my phone or computer and plays my favorite streaming services along with my personal music collection. Volumio OS is the FOSS application that can do everything I need!

The Project

Now I'm kinda picky about audio, I want the same headphones quality in my speakers that good headphones provide. This is no easy task. For a long while I have been making do with a passable Amazon echo which in a small space is not bad for the bucks but, it falls short of what I'm listening for. I listen to music while I work and thanks to an abundance of online meetings I really want to take of my headphones when I'm not in meetings but, the sound quality is meh.

The Hardware

This time I'm using a new RaspberryPi 5. I went middle of the road on the ram getting the 4GB version which should be overkill for a single use server but, I like to err on the high side! In addition I added a 32GB SD card and this is important, don't use a higher sized card like say, 128 GB SD card as teh Volumio-RaspberryPi image just doesn't care for all that real estate. Essentially when the image sets itself up it fails to resize the "overlay" partition where Volumio runs and so you have no remaining space to add plugins etc. They have tried to fix it but, it's something out of their control lower in the rpi image I believe. Don't worry you can add usb, ssd and network drives to your music library!

Finally, because sound quality is the goal, I added a HiFiBerry Amp2 Pi-Hat to my Raspberry Pi to drive the Audio Engine passive speakers. The HiFiBerry is a nifty little pi hat that allows you to extend the 40 pin GIPO and with an 18v charger you can power the amp and th Pi, keeping your setup to a single power connector. Back in the day, I had a nice amplifier, speakers etc in a fairly decent audio system and I really wanted to get back that "feel" from long ago. This nailed it btw.

The Software

Volumio is Open Source and this is what really got my attention. Turns out it really can do just about everything I could hope for! I wanted a single app that can manage on PC and mobile. In addition I want to be able to play my digital music collection (mp3s and ogg) located on network drives and usb sticks, stream internet radio and of course play online services such as MixCloud, SoundCloud, and even Pandora. I thought this was a big ask but, was thrilled to find out that it's already there!

It gets better, this was super simple to install thanks to the easy setup thanks to the RaspberryPi Imager which has a pre-configured Volumio image! Simply navigate though the install OS options, selecting OS > Media player OS > Volumio then select the SD card and install!. The one gotcha I hit was wanting to have a large SD card for saving music locally. I don't think Volumio really does this and RPi really doesn't like running on large SD cards. I was trying to use a 128gb drive but, something in the "overlay" partition simply can't handle resizing over 64BG and fails to resize when the OS starts up. It's really no big deal, I had a 32 GB card around so the second install worked fine.

Like most things, the wifi configuration gave me a bit of trouble. When configuring wifi, it seemed like setup didn't finish as it leaves the mobile app hanging in a pending state. Despite that hangup the home wifi config succeeded despite the lack of feedback in app. If it gives you trouble as well I would suggest plugging in an ethernet cable so you can connect to the RPi via lan, setup the wifi, then you an pull the plug to use wifi.

Development stuff

On top of all this, Volumio has a Dev Console AND an API! I always want to hack together custom solutions so I am eying that API with excitement! I will likely be adding a now playing tile to my RPi/Textural weather display console since I have some unused display scree tiles so look for that in a future project!

Dev Console

The FOSS /developer friendly nature of Volumio really comes though when you look behind the scenes. The first handy feature I came across was the dev terminal located at http://volumio.local/dev which I first encountered while enabling ssh int omy RPi. I have a simple set of scripts I like to add to all my systems which allows some simple monitoring. On this screen you can enable ssh as well as many other things including viewing debug logging, enabling various test modes and checking out the current play queue just to name a few. Dev console screen mentioned above, with a refreshingly simple layout for easy reading and use.

API

In addition to a handy dev console, Volumio offers up a full REST API for your hacker needs! Through the API you can do all sorts of stuff including checking the current play activity, change volume, song nav and manage the play queue. You can read up on the Volumio HTTP API as well as check out thew websockets api if thats more to your needs. I would say that I'd love to have a swagger doc of the API for a little easier to read reference but, that's purely personal preference. It's OSS, maybe I'll add one?

One thing for sure, this API has me itching to under take a couple projects, namely a now playing display mentioned earlier and some nice hardware controls in a wood case just to give it that old school feel. Those projects are now on the official and endless project list!

Summary

In sort the combo of Raspberry PI, HifiBerry, AudioEngine speakers and Volumio have made me super happy with my new audio system and I cant wait to add on my own customizations to make it the perfect custom system for me! Hit me up on Mastodon or email if you have questions etc!

Note: No I don't get paid for any of this, just my opinions and links to what I bought just incase you want to recreate some part of it! I've removed all add tracking crap from the links as well. ;)

Tag Cloud

links

social