Skip to content

SerRodneyRich/Chora

 
 

Repository files navigation

Logo

A simple and light-weight app that streams music from a Subsonic or Navidrome server, or from the phone's storage.

Please do not use as a learning resource. This was my first Kotlin project, and the code is not well-organized at all. AI was used earlier in development (and it shows, the code is a mess lol)

Get it on Google Play

Features

  • Subsonic/Navidrome support.
  • Android Auto.
  • Material 3 UI.
  • Download songs, albums, and playlists from server.
  • Green offline/downloaded status indicators.
  • Toggle between grid and list views for albums, playlists, and artists.
  • Internet Radio. [Metadata only from IceCast servers]
  • Synced And Unsynced Lyrics. [From lrclib.net or self-hosted instance]
  • Navidrome and Local playlists.
  • Multiple Navidrome libraries.
  • Transcoding.

W.I.P

  • Better Android TV navigation.
  • Local DB for local files and Navidrome offline mode.

Roadmap

  • Jellyfin (Music) Support.
  • Chromecast

Known Issues

  • In Android Auto, radios do not set metadata correctly.

Testing

  • Rebrand: App name shows "Harmony" in launcher and app info
  • Playlist download: Open a Navidrome playlist, download button visible, tap downloads all songs
  • Downloaded indicators: Local songs/albums show green checkmark; Navidrome items do not
  • List views: Toggle button on Albums/Playlists/Artists screens switches between grid and list; three-dot menu appears in list view with download option
  • Regression: Existing playback, search, Android Auto, lyrics still work

Screenshots

Support the project

To help keep this project free and open source to everyone, consider donating. Thank you!
Donate with PayPal

Made with ❤️ in Italy

Lyrics icon provided by Remix Icon Other icons are provided by Google Icons

About

Simple Navidrome / Subsonic Music Player

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Kotlin 100.0%