Skip to content

Multi-room audio & now-playing

Synchronized, whole-home music across the Portals running Immortal — the same audio, in tight sync, in every room — plus now-playing and transport controls on every device in a group.

Just want to set it up?

Follow the step-by-step multi-room audio setup guide.

Design deep-dive

This page is the user-facing overview. The architecture, what's reused vs built, and the licensing boundary are in the multi-room audio design notes.

The stack

  • Snapcast plays the synced audio (the stock Snapcast app, installable from the App Store).
  • Music Assistant is the server/source manager and room UI.
  • Immortal adds an in-launcher relay (MultiRoomService) on top.

No Google services, no root, no new hardware — within the Portal's hard limits.

Now-playing on every Portal

When a Portal is part of a Snapcast group, MultiRoomService reads what the group is playing off the snapserver and republishes it as a device media session. The launcher's now-playing card and the Portal's system media controls then show the track — title, artist, cover art — and the transport controls (play/pause/skip) forward to Music Assistant. It's group-aware: a Portal only shows what its own group is actually playing, not just the device that started playback.

AirPlay cast into a group works too: Immortal reads that metadata from Music Assistant, since AirPlay streams don't carry it over Snapcast.

The device's own now-playing

Independently of multi-room, the home header and screensaver show a now-playing mini-player for whatever is playing on the device itself, sourced from the device's media session via NowPlayingHub / MediaSessionReader. It works with any media app and stays out of the way when nothing's playing.

Set-and-forget

A room joins on boot, survives for days, gets out of the way for calls, and comes back on its own. The "Start on boot" setting (and BOOT_APPS in provisioning) relaunches the player app after a power blip. Settings live under Immortal → Multi-room audio, with an in-app setup guide.