MusicD

MusicD Remote Lite for Android

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.

v0.4.40 Android 8.0+ MIT licence Pairs with your Roon Core over the network

Download

Download the APK
musicd-remote-lite-0.4.40.apk

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.

Signing certificate (SHA-256)
9212864c843359caf42038bb3f35d66dddaa80a321807697781108392cbd3ad3

Install

Three steps, once.

  1. Download and open the APK. Allow your browser to install unknown apps if Android asks — you can turn that back off afterwards.
  2. Open the app on the same Wi-Fi as your Roon Core. It finds the Core itself; there is no address to type in.
  3. Approve it in Roon: Settings → Extensions → Enable MusicD Remote Lite (Android). The pairing token is stored per Core, so this happens only the first time.
  4. Optional — open it on your other devices. In the app, go to Settings → Network and switch on Open on other devices. It shows an address like 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.
    Off by default: while it is off, nothing on your network can reach the app at all. Give the phone a fixed address in your router, or the one you bookmarked will eventually move.

Features

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.

🎲Random album browsing

Your library in a fresh order every time, so the records you forgot you owned surface instead of the same twenty.

📻Random Album Radio

When a zone's queue runs dry, another whole album starts. Per zone, and mutually exclusive with Roon's own radio.

🔎Instant library search

Albums and artists, matched as you type against a snapshot held in the app — no round trip to the Core for every keystroke.

Smart Picks

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.

📝Reviews & biographies

Album blurbs and artist biographies from Wikipedia, with Pitchfork scores and Best New Music where they exist.

🎚️Full transport control

Zones, grouping, volume, queue and playback — the same controls the desktop remote has, on a phone.

📤Share cards

Turn what is playing into a card you can send to anyone, straight from the Android share sheet.

🔒Lock screen & media keys

Artwork and transport on the lock screen, and the buttons on your headphones, car or Bluetooth speaker control the zone.

🏠Home-screen widget

Now playing with transport, and the cover as a one-tap random album. Redrawn when Roon says something, never on a timer.

Quick Settings tile

Pull down the shade and tap: a random record starts in the zone you were last using, without opening the app at all.

🌐Open it on your other devices

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.

🎛️The dial

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 dial, on the home screen

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.

🎙️Ask for a record

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.

🏡A Home screen you arrange

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.

📚The whole library, sorted

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.

🎤Artists

Their own row and their own pages, with biographies, and every credit on an album linked through to the artist behind it.

🎵Playlists you make yourself

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.

📅Album of the day

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.

⬇️Updates from inside the app

Settings notices a newer build and offers it. Android's installer still asks; this only saves you finding the download.

What's different from the full version

Lite is a deliberate subset. These are the parts left out and why — none of them are coming back by accident.

FeatureWhy 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.

Updates

  1. From inside the app. Settings → Check for updates downloads the new APK, verifies its checksum and hands it to Android to install.
  2. Or download again from this page — a newer APK installs straight over the older one.

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.