Coder Social home page Coder Social logo

deerparker / subsound Goto Github PK

View Code? Open in Web Editor NEW

This project forked from esiqveland/subsound

0.0 1.0 0.0 6.18 MB

A flutter based music player for subsonic compatible music servers.

License: GNU Affero General Public License v3.0

Kotlin 0.05% Dart 93.92% Swift 0.76% Objective-C 0.01% CMake 2.57% C++ 1.46% C 0.25% Ruby 0.99%

subsound's Introduction

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
  • 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
    • 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 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
  • 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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.