Hello all,
(Not sure if this is the best subsection of the forum for this topic; please recategorize if needed, moved it to the Tinkering category from the Audio Products/Airplay. Tinkering seems more appropriate)
I have been using a Roon setup for almost 2 years now, based on Raspberry Pi devices + HifiBerry amp. This in total with 14 separate zones and running the roon core on my QNAP NAS. All speakers are built in the house in ceilings and walls and the audio cables come to one central point. Basically, I’ve built my own modular multizone “amplifier”. With Roon I have a great piece of software to manage it all and have the perfect synchronous multi room audio setup. This has been working great for me with very little maintenance so far.
The WAF (Wife Acceptance Factor) has been great so far as well. Except for one little thing. Occasionally she just wants to stream audio from her iPhone or iPad and that wasn’t possible using Roon today.
So to be clear: I’m not asking on how to use airplay playback devices to be used, but I would like Roon to somehow behave as an “Airplay receiver/endpoint”.
This isn’t the core of what Roon is and after looking around and searching the internet I figured I could try and build something myself.
The concept is as follows:
- Create a software endpoint device that I can stream to from iOS devices
- transcode (as/if necessary)
- Add this to Roon as a Live Radio station
So I’ve combined a number of existing tools to set up this flow and now have it working as a proof of concept.
- You can pull the docker image with everything preconfigured here: https://hub.docker.com/r/brvdboss/shairstream
- and the “source” (very limited) is available here: https://github.com/brvdboss/ShairStream
The components used are:
- Shairport-sync: set up the AirPlay endpoint/sink
- icecast: for streaming the mp3 streams
- Ezstream: to create the actual stream
- lame: to do the mp3 transcoding
The advantage of this setup is I can run it as a docker container on the QNAP nas I already have and is on 24/7 anyway. No extra hardware is required and it doesn’t need any audio hardware on the device itself.
This works ok so far, although I have some small stability issues (the shairport-sync software I think). The main disadvantage is a delay (due to buffering etc) of about 5 seconds. But I can live with that (for now)
There are probably other optimizations possible, but I figured I’m not the first one who had this idea and was hoping to get some feedback. Maybe better solutions are possible or someone has already a better solution.
(The current setup uses a cbr mp3 stream, should be possible to make this a flac stream, but this was easier to get the proof-of-concept running and validate it to work before trying to optimize everything first)
Any feedback and suggestions are appreciated!
Thanks!