Thank you for your donation!


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


Thread Closed 
Idea: Multi-room co-existance
#1
Hi Tim,
I love Moode Audio. It is, in my opinion, the best MPD player for Raspberry Pi. I am posting this message because I am terribly missing a multi-room capabilities with Moode. I will not buy Sonos or Bluesound because the application is confusing and complicated, and will not replace the simplicity of an app like Moode. Besides, I prefer listening to music with the best equipment that I assemble.

I have attempted a few times to hack the Moode OS and to enable the snapcast service (.19). There are a few problems that needs address, and they are mpd configuration, client connection to the pipe, and an available alsa output.

Here are a few suggesitons that could be a development "compromise" between a full-range implementation and a hack that simply co-exist. Here are my ideas for your consideration:
1) TO address the rewrite of the mpd.conf, allow for custom static text to write to the mpd.conf. This will allow adding a pipe Output to MPD, which will enable the snapserver to to function.
2) Allow for multiple sound cards, the built-in sound, and an I2S card. This will allow you to stream Moode to one card, and divert the snapclient to the second card via alsa fifo.

I want to thank you for considering this request. If you or anyone have other ideas, I will love to hear and try.

AlleyCat
#2
I've looked at SnapCast in the past and it did not seem reliable especially since it relies on getting audio data from a FIFO pipe. The fact is that MPD itself doesn't not include multi-room sync audio capability like iTunes, LMS, Roon, etc. Maybe someday a developer will volunteer to write an MPD plugin that does this.

1) would probably turn into a support nightmare for our project.
2) its not possible to have both the on-board audio device and an I2S device active at the same time.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
#3
I am currently using a few RPIs with Volumio and Mopidy installed. Each instance has snapcast installed and they work well for me. The audio is synced well in three rooms plus my android devices.  

For me, both of these MPDs works well with snapcast but Volumio has better options to control SnapCast and SnapClient.

I'm still trying to find an all-in-one solution because each MPD option is missing some features or has certain issues (not related to snapcast) that I would like solved.

I have tried Moode and RuneAudio and reverted back to Volumio because of Snapcast and radio stations.

I still hope that future updates of Moode will become a better option for my needs.
#4
it's such a niche thing why should our project spend time on it?
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
#5
What would you recommend as a solution for those who are looking for multi-room or whole home audio?
#6
(11-04-2020, 04:09 AM)tekdru Wrote: What would you recommend as a solution for those who are looking for multi-room or whole home audio?


In the spirit of DIY, have a look at the balenaSound multi-room approach based on RPIs, snapcast, and the usual renderers.

ETA: This is not an endorsement, nor is this the place to discuss any deficiencies you see in their approach. It is what it is.

Regards,
Kent
#7
For a first first post it's really trollish. Nothing gets accomplished with posts like this.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
#8
The way I solved multi-room was to write a Python script that can monitor MPD playback in the background and then stream a URL for the playing file to a selected Chromecast or cast group. 

It works well and allows me to use a single RPI with moOde wired to an amp with the option of alternatively streaming audio to any of my Chromecasts, Google Homes, cast-enabled products or cast groups on demand. 

All the playback is performed directly by the cast-enabled device streaming the original MP3/flac file from the RPI. The cast device(s) respond to playback, track and volume changes made via moOde/Volumio directly or via your favourite MPD client. That all happens because the script is monitoring MPD status every second and auto-casting changes in track, seek position and volume etc. I'm actively working on it this script the past few weeks to improve it and fix bugs as I encounter them.

There is a little sync magic required when the cast takes place so ideally, the objective would be to have casting disabled when listening locally and when casting, do not use local audio output. Local playback is happening but when you start a track playing, the script then casts the file URL to the cast device, pauses local playback (via MPD) until it can detect the cast device streaming and then resumes local playback with occasional syncing between the two to keep MPD ~1 second behind the Chromecast. So local playback will be interrupted as this syncing is performed. That whole trick is being done to leverage Moode as the playlist mechanism. 

The install is easy on moOde. See below..
https://github.com/dresdner353/mpd2chrom.../README.md

Also a shot of the "web control panel" attached here. You access this from IP:8090/cast and can instantly activate the casting to a desired cast device or group or disable it. Once you have casting activated, you can do all playback selection via your preferred UI be that Moode or an MPD client. But for ease of access, I also added a quick playlist and track selection from the web page with abilities to pause/play etc.


Attached Files Thumbnail(s)
   
#9
I have multi-room audio working via the Logitech Media Server. I run lms via https://hub.docker.com/r/lmscommunity/lo...ediaserver.

I found this thread in hopes of replacing lms with mopidy/snapcast but it looks like I'll be sticking with this solution for a while longer.
#10
   
           
(04-01-2020, 04:52 PM)Tim Curtis Wrote: I've looked at SnapCast in the past and it did not seem reliable especially since it relies on getting audio data from a FIFO pipe. The fact is that MPD itself doesn't not include multi-room sync audio capability like iTunes, LMS, Roon, etc. Maybe someday a developer will volunteer to write an MPD plugin that does this.

1) would probably turn into a support nightmare for our project.
2) its not possible to have both the on-board audio device and an I2S device active at the same time.

I am not sure what #2 exactly means. But, I have both snapcast server (allows 3 input sources) and client (I2S device) running in the same Raspberry Pi 3B reliably. The second snapclient can play the same music without audible delay. I can "snapcast" the bit streams coming from UPnP client (Qobuz). I also installed BubbleUPnP server to the Raspberry Pi.  I attach the screen captures of my modded GUI.

One of the attached pictures shows moOde Player is playing Halie Loren's songs from Qobuz.


Forum Jump: