Seeking Advice on Multi-Room Audio Setup with Mopidy and Snapcast

Hi everyone,

I’m currently working on setting up a multi-room audio system using Mopidy with Snapcast, and I’d love some guidance from those with experience in this area.

My Setup:

  • Raspberry Pi 4 running Mopidy
  • Snapcast server on the same Pi
  • A few Raspberry Pi Zero W devices as Snapcast clients
  • Audio output through both wired and Bluetooth speakers
  • Using Mopidy extensions: Mopidy-Spotify, Mopidy-Local, and Mopidy-Iris for web control

My Goals:

  1. Seamless Multi-Room Sync – I want perfect audio sync across all Snapcast clients.
  2. Reliable Bluetooth Output – I’d like to include a Bluetooth speaker as one of the output zones.
  3. Low Latency for Streaming Sources – Streaming from Spotify sometimes introduces noticeable delays.

Issues I’m Facing:

  • Slight Audio Lag: Even though Snapcast is supposed to ensure synchronization, I occasionally notice a slight delay between rooms. Are there buffer settings I should tweak?
  • Bluetooth Speaker Delay: The Bluetooth speaker has an annoying lag compared to wired outputs. Any way to reduce this?
  • Spotify Latency: Tracks sometimes start with a delay when streaming via Mopidy-Spotify. Is there a way to improve this?

Would love to hear how others have tackled similar challenges. Any config tips, recommended extensions, or alternative approaches would be greatly appreciated!

I also checked this: https://discourse.mopidy.com/t/multizone-mopidy-multiple-instances-on-a-server-multiple-usb-devices/ruby-on-rails

Thanks in advance!

I’m hazy on this but I don’t believe there’s a solution to synchronised output with a bluetooth speaker in the mix. The true latency of that bluetooth speaker won’t be visible to the system and it will therefore be unable to compensate. But you should ask / research on the snapcast issue tracker about that.

I’ve got nothing on my radar to improve Mopidy-Spotify latency. I don’t notice it. How much additional delay is there compared to Local files?

Anywhere that you’ve got a Snapclient wired to speakers should be in sync, but I don’t think there’s a way to have it in sync if you’re using Bluetooth.