Multiroom AND synced Multiroom should be built-in

First, let me say how much I like Volumio. Major selling points are:

  • Client/server oriented.
  • Fast & light on ressource.
  • Beautiful sound.
  • Slik interface (the webapp, not the Android one).

Now, it’s all perfect as a standalone app used in a single room. But when it comes to multiroom, there’s more hopes than true achievements.

Don’t get me wrong, built-in multiroom is alreally cool. It automagically detects every instances of Volumio on the network, and one can switch from one Volumio instance to another to control all of them from the same interface. That is truely something nice and easy to use.

The major problem when it comes to multiroom is that most people think that multiroom comes with synced multiroom features. Saiyato did a great job with the Snapcast plugin, making possible to have synced multiroom working with Volumio. But for a lot of (non tech) people, this will not work as:

  • It’s not as automagical as the builtin Volumio multiroom feature.
  • it’s not part of the ‘out-of-the-box’ Volumio experience (e.g. it’s not a built-in feature).
  • It comes with a lot a options, which are handy but complicated to end users.

So, what would be really nice?

First, have a real dedicated menu entry for multiroom. It would insist on the fact that Volumio can be a lot more that a player designed for single rooms. Also, there’s some room that could be done on the main menu (I never use the alarm & sleep features for example).

Then, make the Snapcast plugin part of the default Volumio experience. One of Volumio’s biggest selling point is that it allows people to use their existing audio equipment to extend their connectivity features. All new hifi amplifiers nowadays sell (poorly done) connectivity features. Audio manufacturers don’t sell music quality anymore. They sell connected amps and intelligent speakers. But we don’t care as we (I) already have the audio quality we want with Volumio. So pushing Volumio as a multiroom AND synced multiroom music player would make Volumio even more desirable.

I know that this topic has been talked a lot in the past. And I’m writing all this also because I really think that an amazing work has been done on Volumio, making it my number 1 choice for audio player. And I really hope that this synced multiroom feature (which can be seen as a useless toy for some), will be seen as a must-have feature that will be added in the built-in Volumio experience in the future.

Keep up the good work guys, and long live Volumio :smiley:

It is in the plan (to the best of my knowledge), but it’s a matter of priorities. Saiyato’s snapcast plugin is a great start that is testing the ground, and will ultimately make incorporation as a standard feature much more easy.

Yes, I thought I’ve read somewhere in the forum that it was the plan. Can’t remember wher though. I mean, a RPI is quite cheap these days, and it’s getting tempting to build its own multiroom system.

So that’s very good news to know that’s part of the Volumio’s roadmap.

At any point count me in for the testing part. I’m no near dev, but willing to help test this kind of stuff.

I agree it should be more integrated into Volumio, this will however require major reworks for and to support third-party plugins. If you have installed the SnapCast plugin you might have figured out that MPD works right out of the box.

The problems come with third-party plugins (Spotify-connect-web and librespot), this is because you need to change the output for those applications. Standard Volumio operation is over MPD, so I only need to patch mpd.conf and reload MPD. For Spotify I need to edit the template in the plugin and have the user re-save their info, to make sure everything works.

So there’s really only one problem we need to tackle if we want this to work more easily; we need a single output-device that all plugins can use. If that can be achieved, for example by creating a loopback soundcard (my knowledge of ALSA is limited) you only need to worry about only allowing one output at a time (not necessarily enforced).

So Volumio controls the loopback-device; makes it a slave to the hw (either built-in sound or a raspberry HAT).
Each plugin should only point to the loopback-device and stop other playbacks (Spotify <> MPD).

Volumio can decide to play against the stream (SnapCast) instead of the HW-device, depending on your setup .
SnapCast-server can play to the HW-device if you want multi-room playback, but then Volumio MUST play against the stream and not the HW-device.

Does this make sense? I might have made my story a bit fuzzy due to all the ideas and plans running through my head regarding this.

Hi Rachid,

Why not start with just standard Volumio? At least we’ll be able to play synched multiroom from our own library.

Greetz,

Evert

Hi Evert,

This is problematic, because it relies on third-party tools, you could say the same for MPD, but MPD is developed by a team/community and snapcast not. This is not necessarily a problem, unless at some point, it bricks the installation.

I think it’s manageable if a stable version is used, but it needs to be installed on the image, so the team needs to incorporate it in the build-scripts.

That should solve that it will be shipped with Volumio.

Next order of business is controlling the client, there should be an option to have it act like a slave instead of a master. And does everyone want the slave option to exclude the possibility of local playback, or should there be some sort of clever switching?

And last, but definitely not least, snapcast claims the use of PCM lossless streams, can we measure this and make sure the SQ is up-to-par?
Plus, say we do have lossless PCM, who and what will resample in a way that SQ is not (or least) affected?

TLDR;

  1. It needs to be incorporated in the build-scripts
  2. We need clever switching or the option to make the device a slave (instead of master)
  3. We need to know if SQ is up-to-par
  4. There will be some need for finetuning (resampling)

You made it sound so simple in your previous post: “Standard Volumio operation is over MPD, so I only need to patch mpd.conf and reload MPD”. But I get your remarks in the last post, a lot of considerations.

Anyhow, if this would work, I’ll buy some more RPi’s for the rest of the house.

Cheers,

Evert

Hehehe yes, I must learn to keep things simple (for work), so thought I’d keep up the ‘good’ work. Technically that is what it boils down to, so it isn’t really rocket science… how you want to configure it however…

The problem is versatility… I mean it’s possible to enforce certain rules:

  1. Limit the choices to Volumio hosts only (something I did partially; I still left the possibility to select a non-Volumio host)
  2. Make the choice of being a host or slave implicit; i.e. selecting a host automatically makes the device a slave and disables local playback (this is the easy way)

At that point we could choose the best possible SQ settings to be the default (PCM lossless?) and see how we can best configure this in SoX/MPD. The problem I guess is resampling for the stream, because it uses explicit sampling and bitrates. Resampling poses several problems, e.g. does it affect quality (and how much) and it’s costly in terms of CPU…

Creating the script to install it on the images is the least of our problems.

Must say, that’s nice to see that others with real dev skills are thinking about that.

I’m excited to see Volumio going in that direction :wink:

-j

Hi,

Player synchronization would be a really really nice feature for Volumio.
I’ve been playing with Volumio lastly, and I love it : it’s beautiful, easy to install, easy to use, it works well,…
The only missing feature for me is the ability to control multiple players and sync them.

In fact, that’s the only reason I’m sticking with LogitechMediaServer and Squeezelite. LogitechMediaServer is able to sync multiple players, and it does it well (I use it in 2 adjacent room, and I cannot hear the delay between both players).

Is there anyone working on this for now? Can I be of any help?

Echo Jucgshu’s post, except about alarm / sleep functions. I like those functions.

I haven’t had time to figure out the Snapcast plugin. Built-in Multiroom / synced multiroom would be a great addition; people ask about this function when I talk about Volumio.

Hi

The snapcast issue also affects my mpd_oled display program

github.com/antiprism/mpd_oled/issues/4

It would be cool if there was an easy way to always get a copy of the audio being played, then all kinds of visualisations could work with all possible audio sources.

Adrian.

I think this is really an essential feature for Volumio, and the new Myvolumio.org offers a great way to control and setup the synchronised devices. Saiyato’s plugin has demonstrated how it can work, and it “just” :wink: needs a bit of TLC … it would be a great addition to the free tier of Myvolumio.

We’re working hard to bring this feature to MyVolumio, but it won’t happen quickly…

Hi I am new to volumio and it just blow my mind how good is this opens source system ! Thank you a lot for your passionate and hard job !
I am also thinking that this feature is a must have for such a good system so it’s a great news to hear that peoples are working on it.

So thank you all for the work your are doing here !

Dear Volumio-Team,
hi everybody, Im new to this forum and im exited about volumio.
I was evaluating several network players and stuck with volumio because of its outstanding simplicity and its impressive design.

However, when it comes to synced playback please reconsider:
Synced playback is not a premium feature but a basic requirement.

I noticed on the Volumio website that the team is encouraging commercial partners to get in touch. So how is commercial audio done?

Lets immagine a small office or a fashion outlet store. Audio is usually done via ceiling speakers. A store might have 3,4 or 5 of them mounted throuhout theire location. And off course, they have to play the same program in sync morning to night. So this is a basic feature a majotity of potential users will look for.

Aside from the technical hurdles to be solved to implement this feature, from the GUI side everything needed is already there. For example:

Just tap and hold a multiroom device (as in android) and it become selected.
Tap and hold another one and they become a group. Thats it.
In a later version, devices might have properties where you can select if they output the left channel, the right one or a mono audio stream.

I have to say that i really love Volumio as a universal music player, it is oretty advanced already and it is very close to become the leading solution.

Thanks for reading,
Germain

Is there any news regarding multiroom and synced multiroom playback?

@strumf666 Synched multiroom is in the roadplan, but is unlikely to surface soon.

Ok, thanks for answering.

Just wondering if there any updates to synced multi-room? I have my own version of whole home audio by running RCA cables from room 1 to room 2 and room 3, which worked quite fine until I upgraded my home entertainment receiver (Room 1) which is where my Volumio is as well. Now, room 1 seems to be delayed quite a bit compared to the other rooms, apparently due to the new receiver. I set the delay on the main receiver which minimized the “echo”, but it is still delayed to the point of being quite annoying when in between rooms. I’ve looked at getting a digital delay, but they are quite expensive and would probably need 2 in my setup. Especially difficult to spend the extra money since it worked much better with the old receiver for no additional cost. I almost have enough equipment to put the 2 additional Volumio’s in the other 2 rooms. So the only piece missing is synced multi-room.

Can someone comment on first of all, if synced multi-room will ever be a reality with Volumio, and second, a total ballpark on when it may happen if it is planned.

Thank you, and keep up the great work on Volumio!

1 Like