Setting up multi-room audio¶
This is the end-to-end walkthrough for synced, whole-home music across your Portals. For what the feature does and how the pieces fit, see Multi-room audio & now-playing and the design notes.
How it fits together¶
Music Assistant (server, somewhere on your network)
└── snapserver (built-in) ──audio, time-synced──► Snapcast app on each Portal
└── Immortal relays now-playing
+ forwards play/pause/skip to MA
- Music Assistant is the brain: your library and streaming sources, the room/group UI, and a built-in snapserver.
- The Snapcast app on each Portal plays the synced audio.
- Immortal reads the playing group off the snapserver and shows now-playing (and transport controls) on every Portal in the group.
You need one always-on machine for Music Assistant, plus each Portal you want as a speaker. No Google services, no root — within the Portal's hard limits.
Step 1 — Run Music Assistant as a server¶
Pick wherever you keep always-on home services:
- Running Home Assistant? Install the Music Assistant Server add-on (Settings → Add-ons → Add-on Store). This is the simplest route if you already have HA.
- Otherwise, run Music Assistant in Docker on a NAS or a small always-on box.
New to it? Start at music-assistant.io. Add at least one music provider and confirm you can play something from the Music Assistant UI before moving on. Music Assistant's built-in snapserver is what the Portals will connect to.
Step 2 — Install Snapcast on each Portal¶
- On the Portal, open the App Store and install Snapcast.
- Open Snapcast and point it at your Music Assistant server's address (the snapserver).
- Join the Portal to the same Snapcast group as your other rooms.
Make rooms rejoin after a reboot
So a room comes back on its own after a power blip, add the player to
Immortal → Settings → Start on boot (the provisioning kit's BOOT_APPS does this by
default for the Music Assistant player). See Provisioning.
Step 3 — Connect Immortal¶
On each Portal, go to Immortal → Settings → Multi-room audio (this row appears once Snapcast is installed) and follow the in-app guide:
- Turn on the toggle.
- Enter your Music Assistant / Snapcast server IP.
- (Optional) Enter your Music Assistant username and password and tap Sign in.
The relay status shows Connecting… → Connected, and a green check next to the sign-in confirms the Music Assistant login.
Do I need the Music Assistant login?¶
| With sign-in | Without sign-in |
|---|---|
| Forwards play/pause/skip to Music Assistant | Now-playing for library/radio still works |
| Shows now-playing for AirPlay sources (which don't carry it over Snapcast) | AirPlay metadata won't appear |
So you can skip it for a view-only now-playing card, but add it for transport controls and AirPlay metadata.
Result¶
Once connected, the track playing in a Portal's group — title, artist, cover art — appears on that Portal's now-playing card and its system media controls, on every Portal in the group, with working play/pause/skip. Cast via AirPlay into a group and (with sign-in) that shows up too.
Troubleshooting¶
- The Multi-room row is missing — install Snapcast from the App Store first.
- "Music Assistant app isn't open on this Portal" — start the player; use Start on boot so it stays up.
- No now-playing — check the server IP, that the Portal is in the right Snapcast group, and that something is actually playing to that group from Music Assistant.
- No transport controls / no AirPlay metadata — add the Music Assistant login (Step 3) and confirm the green check.