Amarok/Development/Requirements

From KDE Community Wiki

Vision

Amarok 3: The revival of the desktop music player!

Long before tablets started replacing laptops, the use of music playback software like Amarok was in decline.
Fewer people now use a full desktop computer anywhere but the office. Instead, laptops and ultra-portables have become people's main machines. The size of HD based media-players compared to those in laptops, and the general move towards legal downloads, means the "local" music collection is likely to be less massive then before.
Network Attached Storage and cloud drives offer data security and access from anywhere on the internet. Streaming services like spotify are even better since they have a massive collection and good dedicated software to access it. Yet those services might not have all of your favorite artists or that classical collection you have ripped from a 30-CD box set.
There is a market for a music player that brings all these sources together. It's more useful now then ever before.

Amarok 3's core will be the best platform to build fully featured music players for any platform.

Target user

Discussions were going on about this and the result was a compromise. The target user is not the "noob". So we don't intend to remove all options just to prevent confusion. Also the target user is not the "expert". We simplified the dynamic playlists because most users were not able to understand the principles. The compromise was that we keep working on features until they are so easy that almost everybody understands them.

List of Requirements

  • 1. shall play music
    • 1.1 shall play music files such as mp3
    • 1.2 shall play podcasts
    • 1.3 shall play music streams
    • 1.4 shall play CUE files
    • 1.5 shall play music files not previously imported
  • 2. shall show context information of music
  • 3. shall show tag information of music
  • 4. shall be easy to use
  • 5. shall be responsive / never block
  • 6. shall be extensible
    • 6.1 shall have scriptable playlists
    • 6.2 shall have scriptable servces
  • 7. shall keep statistics for tracks (not albums)
  • 8. shall show all the files in a collection, not completely hide several files with the same content
  • 9. should hide duplicate tracks in the collection browser
  • 10. shall run on Linux and Windows
  • 11. shall be usable in 640x480 screen size
  • 12. shall look nice
    • 12.1 shall be able to reset layout
  • 13. playqueue shall show a list of tracks
    • 13.1 it shall be possible to reorder the tracks in a playqueue
    • 13.2 it shall be possible to view the list of previous played trcks
    • 13.3 it shall be possible to view the list of upcoming tracks
  • 14. it shall be possible to edit meta information of tracks
  • 15. it shall be possible to search in the collection
  • 16. it shall be possible to move tracks between collections
  • 17. shall use album and track gain
  • 18. shall have a linear volume slider
  • 19. shall not crash when taglib crashes
  • 20. it shall be possible to disable plugins and collections
    • 20.1 disabled plugins should not waste time during startup