MusicD Remote as a native Android app. It pairs with your Roon Core directly over the network — there is no Docker container, no Node process and no server to keep running. Install the APK and it is the whole thing.
Android 8.0 (API 26) or newer. Your browser will warn you about downloading an APK, and Android will ask permission to install from this source — both are normal for an app that does not come from the Play Store.
Three steps, once.
http://192.168.0.42:3450 and an eight-character code.
Open that address in a browser on the iPhone, iPad or laptop, enter the code once, and
that device stays signed in. Add /dial to the same address for the dial
— http://192.168.0.42:3450/dial — which is the same control
surface as the dial app, in a page. On iOS, Share → Add to Home Screen
gives either of them an icon and opens it without browser chrome.
Everything goes through Roon's official extension API. The app never touches your library files and never streams audio itself — Roon plays, this decides what.
Your library in a fresh order every time, so the records you forgot you owned surface instead of the same twenty.
When a zone's queue runs dry, another whole album starts. Per zone, and mutually exclusive with Roon's own radio.
Albums and artists, matched as you type against a snapshot held in the app — no round trip to the Core for every keystroke.
A set of albums drawn from your own library each day and steady until tomorrow, so every one is a tap from playing. “Not for me” keeps an artist out of them.
Album blurbs and artist biographies from Wikipedia, with Pitchfork scores and Best New Music where they exist.
Zones, grouping, volume, queue and playback — the same controls the desktop remote has, on a phone.
Turn what is playing into a card you can send to anyone, straight from the Android share sheet.
Artwork and transport on the lock screen, and the buttons on your headphones, car or Bluetooth speaker control the zone.
Now playing with transport, and the cover as a one-tap random album. Redrawn when Roon says something, never on a timer.
Pull down the shade and tap: a random record starts in the zone you were last using, without opening the app at all.
Switch it on in Settings → Network and the same page opens on any device on your Wi-Fi — an iPhone, a tablet, a laptop. Off by default, and behind a code when it is on.
A second launcher icon: a volume ring you sweep with your thumb, album art in the
middle, transport under it. One install, two icons, one Roon extension — and
on your other devices at :3450/dial.
The same dial drawn to your home screen, with the controls tappable and the two sides of the ring for volume. It is the app's own view, so the two cannot drift apart.
Tap the dial's microphone: “play Massive Attack”, “turn up the volume”, “pause music”, “surprise me”. Android listens, your own library answers — nothing is sent to a music service.
Album of the day, Recently played, Smart Picks, Random albums, Artists, Library and Browse by genre. Reorder them or switch them off — a row that is off is not loaded at all, not merely hidden.
Every album in a paged grid: by title, artist, year, added, play count, last played or a stable shuffle, with facets for decade, genre and whether you have ever played it.
Their own row and their own pages, with biographies, and every credit on an album linked through to the artist behind it.
Roon's extension API cannot write a playlist, so the app keeps its own — build them from albums or single tracks and play them straight back.
The same record for everyone until local midnight, and quietly withdrawn once you have actually played it — a suggestion you have taken is not a suggestion.
Settings notices a newer build and offers it. Android's installer still asks; this only saves you finding the download.
Lite is a deliberate subset. These are the parts left out and why — none of them are coming back by accident.
| Feature | Why not |
|---|---|
| Record labels | Built by reading tags off a mounted music directory and then querying five outside services. A phone is not the machine holding the files. |
| Qobuz & TIDAL | Both logins drive unofficial APIs those services' terms forbid, and they only add catalogue browsing — Roon streams from either through its own account regardless. |
| Roon's playlists, Dynamic Playlists, importing a shared playlist | Playlists you make yourself are here. What is not is reading Roon's own playlists, the dynamic kind, and importing one someone shared as a link — those screens stay and show their empty state. |
| Local / hi-res badges | Read from the files themselves during a scan, which needs that same music directory. |
| Wall display | The /display page is not ported. Serving pages to other devices IS
possible now — Settings → Network, behind a code — but a wall display also
means a phone staying awake rendering for a TV. Use MusicD Remote proper for that;
it runs on a machine that is already on. |
| Queue editing | Not a lite limitation: Roon's extension API exposes no way to remove, reorder or clear queue items. Playing from a chosen track is the one queue action it allows, and that works. |
Every release is signed with the same key, which is what lets an update install over what you already have. Builds before 0.1.9 carried throwaway keys and have to be uninstalled once before moving to a current one.