5.4 KiB
5.4 KiB
An unofficial mobile client for Music Assistant
Stream your music library directly to your phone, or control playback on any connected speaker.
Disclaimer
Ensemble is an unofficial, community-built mobile client for Music Assistant. It is not affiliated with, endorsed by, or supported by the Music Assistant project or its developers.
This application was built with AI-assisted development using Claude Code and Gemini CLI.
Features
Local Playback
- Stream to Your Phone - Play music from your Music Assistant library directly on your mobile device
- Background Playback - Music continues playing when the app is minimized
- Media Notifications - Control playback from your notification shade with album art display
Remote Control
- Multi-Player Support - Control any speaker or device connected to Music Assistant
- Device Selector - Quickly switch between your phone and other players
- Full Playback Controls - Play, pause, skip, seek, and adjust volume
- Queue Management - View and manage the playback queue
Home Screen
- Customizable Rows - Toggle Recently Played, Discover Artists, and Discover Albums
- Favorites Rows - Optional rows for Favorite Albums, Artists, and Tracks
- Adaptive Layout - Rows scale properly for different screen sizes and aspect ratios
- Pull to Refresh - Refresh content with a simple pull gesture
Library Browsing
- Browse Your Collection - Artists, albums, playlists, and tracks from all your music sources
- Favorites Filter - Toggle to show only your favorite items
- Album Details - View track listings with artwork
- Artist Details - View artist albums and top tracks
- Playlist Support - Browse and play your playlists
- Search - Find music across your entire library
Audiobooks
- Audiobooks Tab - Browse your audiobook library with grid/list view options
- Series Support - View audiobooks organized by series with collage cover art
- Author Browsing - Browse audiobooks by author
- Chapter Navigation - Jump between chapters with timestamp display
- Progress Tracking - Track your listening progress across sessions
- Continue Listening - Pick up where you left off
- Mark as Finished/Unplayed - Manage your reading progress
Smart Features
- Instant App Restore - App loads instantly with cached library data while syncing in background
- Auto-Reconnect - Automatically reconnects when connection is lost
- Offline Browsing - Browse your cached library even when disconnected
- Hero Animations - Smooth transitions between screens
Theming
- Material You - Dynamic theming based on your device's wallpaper
- Adaptive Colors - Album artwork-based color schemes
- Light/Dark Mode - System-aware or manual theme selection
Screenshots
Download
Download the latest release from the Releases page.
Setup
- Launch the app
- Enter your Music Assistant server URL (e.g.,
music.example.comor192.168.1.100) - Connect to your server
- Start playing! Music plays on your phone by default, or tap the device icon to choose a different player.
Authentication
Ensemble supports multiple authentication methods:
| Method | Status |
|---|---|
| Music Assistant native auth | Tested |
| No authentication | Tested |
| Authelia | Implemented, not recently tested |
| HTTP Basic Auth | Implemented, not recently tested |
Note: Development and testing is done against Music Assistant beta with native authentication enabled.
Requirements
- Music Assistant server (v2.7.0 beta 20 or later)
- Network connectivity to your Music Assistant server
- Android device (Android 5.0+)
- Audiobookshelf provider configured in Music Assistant (for audiobook features)
License
MIT License
For Developers
Build from Source
Prerequisites
- Flutter SDK (>=3.0.0)
- Dart SDK
Build Instructions
- Clone the repository
git clone https://github.com/CollotsSpot/Ensemble.git
cd Ensemble
- Install dependencies
flutter pub get
- Generate launcher icons
flutter pub run flutter_launcher_icons
- Build APK
flutter build apk --release
The APK will be available at build/app/outputs/flutter-apk/app-release.apk
Technologies Used
- Flutter - Cross-platform mobile framework
- audio_service - Background playback and media notifications
- web_socket_channel - WebSocket communication with Music Assistant
- provider - State management
- cached_network_image - Image caching
- shared_preferences - Local settings storage







