Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


Instruction Guide Possible to configure synchronized ouput for several raspis?
#1
Hi,

I couldn't find an answer to my question and Squeezelite  doesn't really fit to my scenario as far as I understood it:
I have 3 rooms, in each of them one raspberry running moode 6.3.
All of them have their own amplifier with speakers.
One of them is the "master" - just because it's the most used room.
It always plays AND streams this music. (What I hear is typically a radio stream or via bluetooth connection.)
The other two "slaves" are turned on manually and then play the stream from the master.
At this point I run into problems. The sound of the slaves is delayed about 2 seconds and that sounds weird if you walk from room to room.
Also if each of them plays the same radio stream with their own connection, the sound differs in time.

I'm pretty sure the most of this time is related to buffering. Is there a way to reduce the buffering in moode?
Another idea were to delay the real audio output to the amplifier of the master.
I don't expect to have it synchronized to 100%, but a simple way to set some kind of delay / and or buffering value would be great.


Any tips or ideas? Blush
Thanks!
Reply
#2
The difference in arrival times of the audio streams has nothing to do with buffering. moOde's native audio player, MPD, does not include the capability to render time-synchronized multi-room audio. You would need to use either the Squeezelite/LMS or iTunes/Airplay combo to do this.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#3
Hi Tim,

thanks for answering.
Two questions on this issue:

- Is there a possibility to integrate some kind of buffering for the audio output on the master? (but not he http streaming) This way I could eliminate the difference of the master to the slaves more or less.

- Regarding squeezelite: Is there a way for moode clients to configure playing via squeezelite using playlists? I'd like to have a playlist with radio streams and squeezelite stream and to simply switch from where I get the music from.
Is there also a way to turn the master moode instance to the LMS and that this master always streams using LMS, but also is a client that can output the synchronized sound with the slaves from this stream?

Thanks
Reply
#4
Hi,

Thats more than 2 questions, lol

1. Buffering is not going to do anything to maintain time-sync. MPD itself would need to have the capability to maintain time-synchronized audio streams including local playback. Maybe someday a developer will write such a plugin for MPD :-)

2. AFAIK Only LMS and Roon are able to stream to the Squeezelite renderer.

3. moOde cannot stream to LMS.

You may want to explore Snapcast. It's a separate multi-room playback system that can accept a raw audio feed from MPD's FIFO pipe. I don't know how reliable it is and I have no interest at this point in integrating it into moOde.

-Tim
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#5
@itsme

Quote:- Is there a possibility to integrate some kind of buffering for the audio output on the master? (but not he http streaming) This way I could eliminate the difference of the master to the slaves more or less.

I don't have a dog in this fight, so to speak, but as I understand your description of your problem, there's a simple brute-force solution. Introduce a new slave moOde player to drive the amplifier/spealers in your main listening area and use the "master" only to drive all three slaves.

Regards,
Kent
Reply
#6
@Tim Curtis :
thanks again, even if your answer was that this does not work with moode.
This is really a pitty, because I like the moode behavior and UI and somehow want to keep my setup.

To 1.: Maybe buffering was the wrong term, some kind of configurable output delay between MPD output and http streaming would eliminate most of the difference in time. Isn't this worth to think about?  Shy

I already had a look at LMS. It works that my moode instances connect and then play synchronously, but I really don't like the handling and UI. It's not comfortable and further it's not possible to control each moode device via moode UI, you can just disconnect to get control again Dodgy Volume etc is controlled by the LMS, it seems even the moode equalizer doesn't work then, am I right? Huh

Snapcast sounds nice, too. But you already refused an integration Tongue


Anyway, thanks for your work!

@TheOldPresbyope 
Yes, that's an idea. Would be a workaround, but not a preferable solution to add another hardware just because the software setup is the problem.
Even I also had another question regarding IR control (pigpio/lirc), which was now fixed by adding a multi device IR control that is controlled by GPIOs of the raspberry to solve my problem Big Grin
Reply
#7
Hi again,

it seems it will need an additional hardware solution again to solve this.
I couldn't get warm with max2play or picoreplayer, moode remains my favorite.
The difference in time is acceptable using just the stream receiving ones, that's why I'll buy another pi and use it as streaming master with moode. All others receive this stream and play it.
It's really nearly synchron, you won't really get it, walking from room to room. But of course it's everywhere the same hardware, software and LAN connection.


I personally think that an option to add a delay for the output of the stream to MPD would be a great feature to optimize those time differences.
And I could imagine that this would be possible.
There should be a data stream from http input which is handled by moode and then piped out to MPD? I'd imagine adding a configurable FIFO buffer before the data is piped to MPD were not too hard to implement and would do the job.

@Tim Curtis : Please, please Tim, think about it Blush
Reply
#8
These are just hacks that are not going to be reliable. The fact is that MPD itself doesn't not include multi-room sync audio capability like iTunes, LMS, Roon, etc. Some developer has to volunteer to write an MPD plugin that does this.

Outside of MPD it might be possible to do something thats reliable with bare-metal ALSA. We shall see.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#9
Sad 
(11-21-2019, 05:07 AM)Tim Curtis Wrote: These are just hacks that are not going to be reliable. The fact is that MPD itself doesn't not include multi-room sync audio  capability like iTunes, LMS, Roon, etc. Some developer has to volunteer to write an MPD plugin that does this.

Outside of MPD it might be possible to do something thats reliable with bare-metal ALSA. We shall see.

I use the solution now with one master raspi that streams into the network to the slaves and I'm fine with it, walking through the rooms.

But I now have another problem, that might be easier to get solved:
If I switch the radio channel on the streaming master, the slaves just continue to play the new radio channel that is streamed. This is fine.
But if I switch 2 specific ones, the slaves either stop playing or switch to their next playlist entry.
To follow the issue just switch from    http://mp3.ffh.de/ffhchannels/hqlounge.mp3   to   http://mp3stream1.apasf.apa.at:8000
The streaming slaves won't go on with this network stream Sad 

Is this because of the port change or just a moode internal timeout setting and what can I do to let the stream go on without user interaction?
Reply


Forum Jump: