Summary first - I’m looking for software to use for web-controlled music playback. Main requirement is playback via a DAC on the hosting device and a half-decent UI for it (though streaming would be nice…).
Hardware-wise, I’ve currently got a Pi Zero W paired with a HiFiBerry DAC+ Zero, which has been fine for me quality-wise, routed as an aux input to an old HiFi. That, plus plenty of space elsewhere to host split apps - currently running Emby as a main streaming host for other media, and the media is just on a NAS pulling over NFS.
I’ve been using Volumio for a while, but have been frustrated with a few things (UI, playlist management, etc) so I’m looking for a change. Streaming from Emby/Jellyfin via DLNA looks like it might be a decent fallback, but I’m wondering if there are any nicer ways to handle it.
Any ideas? Open to switching a few bits of infrastructure around, of course :)
Most of my devices are apple so I use shairport-sync to make airplay2 receivers on low power mini-pc/sbcs. Plug in a USB DAC (chi-fi topping dacs are incredible) and its lossless streaming from wherever. I have them in my office, kitchen, media room, upstairs etc. As far as the “source” for streaming, i just use nPlayer app that can connect to smb shares (full of music/video/etc), its much less to manage. Wife approval factor was high since any phone/device can connect to any airplay reciever without config as long as its on our home wifi. For power savings I have them scheduled to only be on during hours I would normally use them (sleep + wake on lan schedule). How dedicated to web control are you?
No Apple devices here except that a work-owned iPhone for dev purposes :) Web control’s not completely mandatory, but I do prefer being able to slap a window on a spare monitor when I’m at my desk, given the main speaker I’d be using with this is in my office anyway. There are some DLNA sources that look decent enough and work in a similar fashion though, and might form part of whatever solution I go with.
there are basically endless possibilities I’d say.
- logitech media server with squeeebox clients
- snapcast
- mpd with mopidy
- moodeaudio
- home assistant with one of the integrations.
- plenty more I’m sure
That being said, I would recommend jellyfin over emby.
LMS has been on my list of things to check out for a while, though looking at a few other suggestions, mopidy is looking like a strong choice - if I can get it set up both look at Jellyfin (starting a slow migration already…) and accept streams over DLNA, then it should cover a good portion of what I’d want.
I use Volumio on a Raspberry Pi with a DAC HAT. The analog output goes to a whole-house distribution system. I installed the Volusonic plugin and it connects to my Navidrome server hosting the music collection. In this configuration, Volumio functions as a control plane. I do everything else (playlists, etc) from the Navidrome web interface. As a bonus, there are several Subsonic apps that work with Navidrome for mobile listening.
I tried Jellyfin, but never got it working the way I wanted. DLNA was particularly difficult. It would play two songs, then stop. I wrote it off as user error out of frustration, and moved to Navidrome. It’s been working well for me, so perhaps it’s worth trying since you already have Volumio up and running.
Note: The prominent comment at the Volusonic link claiming the plugin doesn’t work with Navidrome is over two years old and resolved. Don’t let that dissuade you from trying the plugin.
I made an account just to say thanks for this. I’ve been using Volumio for years and never messed with plug-ins. Been playing with sub Sonic and navidrome for a few months and combining the two is awesome.
You can run the Jellyfin webui on the rpi and have it stream the audio to it and play via the DAC. Read this: https://jellyfin.org/docs/general/clients/mopidy/#raspberry-pi-remote-controlled-speakers
I would even go as far as to recommend checking out the project underlying Jellyfin integration, mopidy - it’s a well-rounded audio server, which allows you to play your local collection, network shares, as well as to integrate different external music services. Several front-ends are available as extensions, plus you can install additional extension to expose the MPD protocol, allowing you to control it remotely via one of many MPD clients.
For playback, you can install it on the Pi itself, or have it running on a separate machine, with the Pi itself running a low-complexity RTP receiver. :)
Hmm… what’s your experience with running Mopidy standlone? What client are you using, does it perform better than Jellyfin?
I second this approach and have it running since several years. Tried volumio/jelly and others but mpd/snap is the most flexible one. Spin up docker mopidy/snapserver/snapweb, and if required shairport. It basically enables you streaming like Sonos to other instances running snapclients connected to speakers. All controlled via webUI, or native apps or Airplay. My setup is controlled via homeassistant and handles playlist generation via custom bash scripts + syncing to Navidrome. Though, it may require some fiddling compared to other out-of-the-box but lesser flexible solutions, imho.
Thanks for the pointers- I’d been meaning to look into swapping Emby out for Jellyfin anyway, so this has given me a good excuse to spin another container up - will probably have Jellyfin on a separate host though, given I’ve got the capacity for it, and it’d be nice to unify the video/audio server. Mopidy certainly looks like it ticks the boxes though, and looks like extensible enough that it should cover a bunch of future uses as well.
I’d like to be able to easily play music stored on my devices (phones, tablets, PCs, Nas) over the stereo system I own, anytime, controlling it with said devices, without having to manually go through multiple setup steps to get everything powered up and paired every damn time. Is it possible to get it all set up once so that I can simply hit play on my phone and hear the music whenever? Seems like it should be doable but I haven’t been able to figure out how to get it done without having to go through a whole rigmarole every damn time. 😄 Would really appreciate any answers or leads.