Skip to content

A flutter based music player for subsonic compatible music servers.

License

Notifications You must be signed in to change notification settings

esiqveland/subsound

Repository files navigation

subsound

A subsonic music player.

Screenshots

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Release todo

  • fix random breakage of player sometimes. seems like onStart is not working after background player task crashes
  • enqueue next track
  • enqueue row in starred list
  • enqueue row in playlist
  • fix blinking in album when selecting different song
  • fix intermediate render with blank coverart on artist page
  • sort starred by most recently added
  • fix package naming
  • crash reporting
  • shuffle mode
  • search functionality
  • pull-to-refresh on playlist view
  • pull-to-refresh on starred list
    • artists/albums? no, don't need that because they don't really mutate/update.
  • find an app icon
    • android
    • ios
  • Play Store
    • app icon 512x512px
    • graphics feature: 1024x500px image
  • App Store
    • ???

Goals

  • Browsing content
  • Audio playback
  • Starred songs
  • Media players support (lock screens)
    • Android
    • ios
  • A nice, smooth interface
  • Make play queue actually work in all contexts
    • Play a song in album with queue
    • Play a song from starred with queue
  • Scrobble plays to Subsonic api
  • Airplay
  • Shuffle modes
  • Loop modes
  • Offline support
    • Play music from cache
    • Browse data without loading live from API only
    • deliver artwork to system notification from cache (file)
    • Sync content for local access in database
    • Store metadata persistently for offline mode
    • Selective caching
    • Store scrobbles offline and submit at a later time

Possible goals:

  • Chromecast
  • Support other servers than Subsonic compatible APIs
  • Linux
  • Transcoding when needed/wanted

Non-goals:

  • Video support
  • EQ/Gain
  • Jukebox support/remote playing

TODO:

  • Playback support
  • Media players support (lock screens) for Android
  • Media players support (lock screens) for ios
  • Queue support
    • a play queue
    • view queue
    • edit queue?
  • cache artwork
  • download files
  • [] cache files
    • partial, should cache files now, but the user has no control over this
    • cache artwork for system notification. have to deliver a file:/// to the system notification so it does not load the artwork over the network
  • link from album back to artist
  • playlists
    • playlist api
    • playlist listing
    • new homescreen with
      • recent albums
      • recent playlists
      • starred songs
  • Album page: Star button in song list?
  • Album page: summary in bottom of song list?
  • Album page: play button?
  • Album page: play on click
  • Album page: Slide to enqueue
  • Artist page: play button
  • Search
    • search page
    • search query
    • search button in bottom bar
  • Song meta: add information about cache state (whether we have the file already downloaded)
  • local cache:
    • artist data
    • album data
    • song data
    • starred data
    • playlist data
    • search query results
  • Setup sqlite database + migrations
    • Store artist index in sqlite db for offline use
  • persistent cache (offline mode):
    • artist data
    • album data
    • song data
    • starred data
    • playlist data
  • Make it work offline
    • Download starred?
    • store artwork persistent locally
    • store files persistent locally
    • store metadata persistent locally in database (as part of a full metadata sync?)

UX ideas

  • slide animation in player when skipping next/prev song

Eventually

  • Album page: save button
  • Artist page: save button

About

A flutter based music player for subsonic compatible music servers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published