MassDroid
Native Android client for Music Assistant, the open-source music server that integrates all your music sources and players.
This app is an unofficial third-party client and is not affiliated with the Music Assistant project.
MassDroid is a full-featured Music Assistant companion app built around music exploration and discovery. It gives you complete remote control over all your MA players while also learning from your listening habits to surface personalized recommendations, generating Smart Mix playlists and genre radio stations entirely on-device, enriching your library with metadata from Last.fm, and helping you discover similar artists across all your music providers. Small footprint, with no ads, no trackers, and no cloud dependencies.
Contents
- What's New
- Screenshots
- Core Features
- Exploration & Discovery
- Follow Me
- Sendspin & Acoustic Calibration
- Android Auto
- Recommendation Engine
- How It Works
- Requirements
- Installation
- Configuration
- Permissions
- Tech Stack
- Documentation
- License
- Support
What's New 
- Android TV app (Shield / Google TV / Android TV): browse the full library, control any player, and use the TV as a synced speaker with an adjustable delay for AV receivers.
- Rewrote the phone's audio output (native, low-latency): fixes random dropouts and sync drift, and auto-aligns with other speakers.
- Audiobooks: library section, chapter list with skip-to-chapter, H:M:S timing, chapter-aware transport.
- Bluetooth/car: auto-play once the connection settles (skipped during a call/meeting); fixed intermittent no-audio on connect.
- Library: swipe between tabs, the provider filter is remembered per tab, and you can play a whole folder (e.g. an album) straight from Browse.
- Player settings: choose the streaming codec for speakers that expose it (e.g. Sonos).
- Sync speakers sheet: nudge each speaker's timing earlier/later.
- Add/remove items to your library from search and detail screens (long-press actions, in-library badge).
- Follow Me: better room scoring, per-room sensitivity, on-room-change modes (ask / move here / select only), lower battery use.
- Ethernet devices stream lossless.
- Finer volume steps with the hardware buttons, plus a cleaner volume popup.
- Fixes: audio skips on some phones, playback no longer starts over a phone call, synced members track the leader's position, faster group re-lock, connection-drop indicator on home, the library provider filter now works for multi-account providers (e.g. Deezer) and local files, and some local cover art that failed on mobile data / VPN now loads.
Screenshots
Phone
Android TV
Android Auto
Core Features
- Discover Home : Dynamic recommendation sections with recently played, top picks, genre radio, and Smart Mix
- Library Browsing : Artists, Albums, Tracks, Playlists, Radio, and Browse with search, sort, grid/list views, and provider filtering. Genre-based search finds artists, albums, and tracks by genre when your library has been enriched with Last.fm tags.
- Artist & Album Detail : Rich detail views with descriptions, genres, similar artists, and now-playing indicators
- Player Controls : Play, pause, skip, seek, volume, shuffle, repeat across all MA players
- Now Playing : Full-screen player with album art, seek bar, favorite toggle, synced/plain lyrics, tap-to-seek on synced lyric lines, timing adjustment, and artist blocking
- Queue Management : View, drag-to-reorder, transfer between players, and manage the playback queue with action sheets
- Favorites : Mark artists, albums, tracks, and playlists as favorites, filter library by favorites
- Phone as Speaker : Sendspin protocol turns your phone into a Music Assistant player, solo or grouped with other MA players in tight sync. Audio streams as Opus or FLAC over WebSocket, decoded and played through your phone speaker, headphones, or Bluetooth device. Smart mode can switch format automatically based on network conditions. A built-in acoustic calibration measures real Bluetooth latency via microphone so grouped playback stays in sync even on wireless speakers. A streaming status sheet shows live sync graph, output latency, network mode, and a static delay control.
- Follow Me : Room detection with auto-transfer, per-room playlists, volume, and scheduling. Uses BLE fingerprinting by default, with optional Wi-Fi BSSID or SSID matching for distinct locations.
- Artist Blocking : Block any artist from all recommendations, radio stations, and Smart Mix results
- Media Session : Android media notification with playback controls
- Player Settings : Rename players, set icons, configure crossfade and volume normalization
- Connection Diagnostics : Live latency graph with roundtrip stats and server version info
- mTLS Support : Client certificate authentication for secure remote access
- MiniPlayer : Persistent mini player bar across all screens
Exploration & Discovery
MassDroid can enrich your library with Last.fm metadata, surface similar artists, build Smart Mix queues, and generate genre radio stations from local listening history.
See Recommendation Engine for details.
Follow Me
Walk between rooms and your music follows you. MassDroid uses BLE fingerprinting, optional Wi-Fi location hints, and motion-gated scans to detect where playback should move.
See Follow Me for setup guidance, room detection tips, tools, and troubleshooting.
Sendspin & Acoustic Calibration
Sendspin turns your phone into a Music Assistant player. Acoustic calibration measures real output-route latency, including Bluetooth latency, so grouped playback stays aligned.
See Sendspin & Acoustic Calibration for calibration steps, sync behavior, and privacy notes.
Android Auto
MassDroid supports Android Auto through a Media3 media library session with browse categories, queue playback, now-playing metadata, and player controls. Debug or sideloaded builds may require Android Auto's Unknown sources developer setting.
See Android Auto for setup notes, common quirks, and testing tips.
Recommendation Engine
MassDroid learns from local listening history to power Smart Mix, genre radio, similar artists, and recommendation insights. Recommendation data stays on-device in a local Room database.
See Recommendation Engine for the scoring model and discovery features.
How It Works
MassDroid communicates with your Music Assistant server over a persistent WebSocket connection. All player state, library data, queue changes, and favorites are synced in real time through server-pushed events. The app never polls; updates appear instantly as they happen on the server or from other clients.
When Sendspin is enabled, the phone registers as a Music Assistant player. Audio is streamed as Opus or FLAC over a second WebSocket, decoded on-device, and played through the phone speaker or headphones. In Smart mode, the app can switch formats automatically based on network conditions.
Requirements
- Android 8.0+ (API 26)
- A running Music Assistant server (v2.x)
- Bluetooth support for Follow Me (room detection)
Installation
Stable release
Download the latest signed APK from GitHub Releases, or use the Obtainium badge at the top of this page for automatic updates.
Dev build (latest features, may be unstable)
The most recent debug build is always available at the dev-latest release.
Debug and release builds can be installed side by side (different package IDs). Debug builds are not signed with the release key, so you cannot upgrade from debug to release or vice versa.
Configuration
See Configuration for server connection setup, mTLS notes, and Last.fm API key setup.
Permissions
See Permissions for the runtime permission list and why each permission is used.
Tech Stack
- Kotlin, Jetpack Compose, Material 3
- MVVM, Hilt, Coroutines/Flow
- OkHttp WebSocket, kotlinx.serialization
- Media3 / MediaSession
- Room (local recommendation database)
Documentation
- Public docs index
- Follow Me
- Sendspin & Acoustic Calibration
- Android Auto
- Recommendation Engine
- Configuration
- Permissions
License
This project is licensed under the MIT License. See LICENSE for details.
Support
If you find MassDroid useful, you can support its development:
