A modern, open-source Android music player for Navidrome and other Subsonic-compatible servers.
Built with Jetpack Compose and Material Design 3 for a smooth, native Android experience.
- Stream your library -- Browse and play music from any Subsonic/Navidrome server
- Full playback controls -- Play, pause, skip, seek, shuffle, repeat, queue management
- Background playback -- Foreground service with media session and notification controls
- Lyrics -- Synced and plain-text lyrics display with auto-scroll
- Search -- Full-text search across artists, albums, and songs
- Offline downloads -- Cache songs locally for offline listening
- Favorites -- Star artists, albums, and songs
- Themes -- Multiple color themes (Neon Pulse, Aurora, Midnight Ocean, Solar Flare)
- Scrobbling -- Report played tracks back to the server
Grab the latest APK from the Releases page, or build from source.
Requirements: JDK 17, Android SDK 34
git clone https://github.com/your-username/resonance.git
cd resonance
./gradlew assembleDebugThe APK will be at app/build/outputs/apk/debug/app-debug.apk.
| Layer | Technology |
|---|---|
| UI | Jetpack Compose, Material 3 |
| Architecture | MVVM, Hilt DI |
| Playback | Media3 / ExoPlayer |
| Networking | Retrofit, OkHttp |
| Database | Room |
| Images | Coil |
| Async | Kotlin Coroutines + Flow |
Tested with:
- Navidrome 0.50+
- Any server implementing the Subsonic API v1.16.1
- Android 12 (API 31) or higher
Contributions are welcome! Please open an issue first to discuss what you'd like to change.
- Fork the repo
- Create your branch (
git checkout -b feature/amazing-feature) - Commit your changes
- Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 -- see the LICENSE file for details.