# retromusicplayer/retromusicplayer

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/retromusicplayer-retromusicplayer).**

4,976 stars · 885 forks · Kotlin · gpl-3.0

## Links

- GitHub: https://github.com/RetroMusicPlayer/RetroMusicPlayer
- Homepage: https://retromusic.app
- awesome-repositories: https://awesome-repositories.com/repository/retromusicplayer-retromusicplayer.md

## Topics

`android` `android-music-player` `gssoc22` `hacktoberfest` `koin-android` `material-design` `material-you` `music` `music-player` `mvvm-architecture`

## Description

RetroMusicPlayer is an Android music player designed to play audio files stored locally on the device, with navigation organized by song, album, artist, and folder based on embedded metadata. It supports streaming audio to remote speakers and responding to external controls for hands-free multi-room playback.

The player distinguishes itself with dynamically generated smart playlists that update automatically based on listening history and user-defined rules, backed by a SQLite database. It can parse and display synchronized lyrics from LRC and other time-stamped formats, scrolling in lockstep with the audio playback position. The visual theme adapts to the device wallpaper by extracting dominant colors and applying them as accent tints using Material Color Utilities, with additional light, dark, and black color scheme options.

Beyond playback, the player provides tools for editing embedded ID3 and Vorbis metadata, exporting and importing playlists as JSON files, setting a foreground service–based sleep timer that survives activity lifecycles, and rearranging the playback queue and playlists via drag-and-drop gestures. The interface can be localized into multiple languages, and the navigation layout can be customized by reordering or hiding sections.

## Tags

### Mobile Development

- [Android Audio Players](https://awesome-repositories.com/f/mobile-development/android-audio-players.md) — Plays local audio files on Android with folder browsing and metadata sorting.
- [Miracast Audio Players](https://awesome-repositories.com/f/mobile-development/android-audio-players/miracast-audio-players.md) — Streams audio to remote speakers and responds to external controls for multi-room playback.
- [Local Music Players](https://awesome-repositories.com/f/mobile-development/local-music-players.md) — Browse and play local audio files, with sorting options by song, album, artist, and folder. ([source](https://cdn.jsdelivr.net/gh/retromusicplayer/retromusicplayer@dev/README.md))

### Part of an Awesome List

- [Music Players](https://awesome-repositories.com/f/awesome-lists/media/music-players.md) — Plays audio files stored on the device with casting, lyrics, and playlist management features.
- [Media Players](https://awesome-repositories.com/f/awesome-lists/media/media-players.md) — Highly customizable music player.

### Data & Databases

- [Audio Metadata Indexers](https://awesome-repositories.com/f/data-databases/custom-data-fields/metadata-querying/metadata-storage/audio-metadata-indexers.md) — Scans local storage for audio files and builds navigable hierarchies by reading embedded metadata tags.
- [Media File Browsers](https://awesome-repositories.com/f/data-databases/file-storage-and-metadata-management/local-file-operations/media-file-browsers.md) — Scans device storage for audio files and presents a navigable hierarchy of folders, albums, and artists based on embedded metadata.

### Development Tools & Productivity

- [Dynamic Playlist Generation](https://awesome-repositories.com/f/development-tools-productivity/playlist-managers/dynamic-playlist-generation.md) — Generates auto-updating playlists based on listening habits and user-defined rules.
- [Listening History Dashboards](https://awesome-repositories.com/f/development-tools-productivity/dashboard-viewing/listening-history-dashboards.md) — View a dashboard that displays your recently played artists, albums, and favorite songs for easy access. ([source](https://cdn.jsdelivr.net/gh/retromusicplayer/retromusicplayer@dev/README.md))
- [Playlist Importers and Exporters](https://awesome-repositories.com/f/development-tools-productivity/playlist-managers/playlist-importers-and-exporters.md) — Save playlists to files and load them back by opening those files or placing them in a designated folder. ([source](https://retromusic.app/faq.html))

### Graphics & Multimedia

- [Audio Playback](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-playback.md) — Playing audio files stored on the device, with sorting by song, album, artist, and folder for easy navigation.
- [Rule-Based Playlist Generators](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/playlist-aggregators/personal-playlist-managers/audio-playlist-managers/playlist-searches/rule-based-playlist-generators.md) — Evaluates user-defined rules against a SQLite database to produce auto-updating playlist views.
- [Audio Metadata Editors](https://awesome-repositories.com/f/graphics-multimedia/audio-metadata-editors.md) — Modify embedded metadata such as title, artist, album, and genre without leaving the app. ([source](https://retromusic.app/))
- [Multi-Room Audio Casting](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-playback/multi-room-audio-casting.md) — Streams audio to remote speakers and responds to external controls for hands-free multi-room playback. ([source](https://cdn.jsdelivr.net/gh/retromusicplayer/retromusicplayer@dev/README.md))
- [Lyric Synchronization](https://awesome-repositories.com/f/graphics-multimedia/playback-timing-control/lyric-synchronization.md) — Parses LRC and other time-stamped lyric formats to display scrolling text aligned with audio playback position.
- [Synchronized Lyric Displays](https://awesome-repositories.com/f/graphics-multimedia/synchronized-lyric-displays.md) — Displays synchronized lyrics that scroll in time with music and supports importing timed lyric files.
- [Synced Lyric Importers](https://awesome-repositories.com/f/graphics-multimedia/synchronized-lyric-displays/synced-lyric-importers.md) — Import time-stamped lyrics by pasting text into the editor or placing lyric files in the correct folder. ([source](https://retromusic.app/faq.html))
- [Synchronized Lyrics Displays](https://awesome-repositories.com/f/graphics-multimedia/synchronized-lyrics-displays.md) — Shows lyrics that scroll in time with the music or remain static beside the current song. ([source](https://retromusic.app/))

### User Interface & Experience

- [Wallpaper-Synced](https://awesome-repositories.com/f/user-interface-experience/color-schemes/wallpaper-synced.md) — Extracts dominant colors from the device wallpaper and applies them as accent tints via Material Color Utilities.
- [Wallpaper Color Extractors](https://awesome-repositories.com/f/user-interface-experience/color-themes/wallpaper-color-extractors.md) — Extracts dominant colors from the device wallpaper and applies them as accent tints using Material Color Utilities.
- [Theme Customization](https://awesome-repositories.com/f/user-interface-experience/visual-theme-configurations/visual-themes/theme-customization.md) — Applies a theme with base colors and accent styles that adapt to your device's wallpaper. ([source](https://cdn.jsdelivr.net/gh/retromusicplayer/retromusicplayer@dev/README.md))
- [Interface Layout Customization](https://awesome-repositories.com/f/user-interface-experience/app-visual-identity-customizers/interface-layout-customization.md) — Rearrange or hide navigation sections to simplify the menu structure of the app's interface. ([source](https://retromusic.app/))
- [Drag-and-Drop Row Reorderers](https://awesome-repositories.com/f/user-interface-experience/drag-and-drop-row-reorderers.md) — Implements touch-to-reorder in playback queue and playlist lists using drag-and-drop interactions.
- [List Reordering Components](https://awesome-repositories.com/f/user-interface-experience/list-reordering-components.md) — Enables drag-and-drop rearrangement of list items in the playback queue and playlists.
- [User Interface Language Selection](https://awesome-repositories.com/f/user-interface-experience/user-interface-language-selection.md) — Switch all app text to your preferred language from a wide selection of supported languages. ([source](https://retromusic.app/))
- [Wallpaper-Adaptive Themed Players](https://awesome-repositories.com/f/user-interface-experience/wallpaper-adaptive-themed-players.md) — Extracts dominant colors from wallpaper and applies them as accent tints using Material Color Utilities.
- [Wallpaper Theme Integrations](https://awesome-repositories.com/f/user-interface-experience/wallpaper-theme-integrations.md) — Offers customizable visual themes that adapt to wallpaper and provide light, dark, or black color schemes.

### Content Management & Publishing

- [Playlist Managers](https://awesome-repositories.com/f/content-management-publishing/media-management/playlist-managers.md) — Create, edit, and reorder playlists and the playback queue with simple drag-and-drop actions. ([source](https://cdn.jsdelivr.net/gh/retromusicplayer/retromusicplayer@dev/README.md))
- [Audio Tagging](https://awesome-repositories.com/f/content-management-publishing/metadata-tagging/audio-tagging.md) — Reads and modifies ID3 and Vorbis comment tags in audio files using a background I/O queue.
