Some ideal audio player goals (first draft)
19 January, 2008
For the sake of organizing my own thoughts, here is an attempt to distill the wordy audio player-related posts I made last year into a draft of a clearer set of goals. It is still fairly undigested for now, I hope it will help to bring focus to the next stage of brainstorming and prototyping.
Here a draft , in no particular order:
- Change assumptions about the roles of specific metadata fields:
- Tracks ought to be incidental signposts within more interesting metadata groupings
- Current players tend to [over]emphasize tracks as the only playback atoms in the UI
- Use accurate terms in UI, and not 1337 h1pst0r mp3 slang
- Please, ’song’ -> ‘track’. ‘Song’ is a logical subset of ‘track’. Music tracks aren’t necessarily songs. Audio tracks aren’t necessarily music.
- Tracks ought to be incidental signposts within more interesting metadata groupings
- Minimize disruptions to the user workflow with smarter shuffling, less time/fewer interruptions spent requesting music
- More flexibly take advantage of metadata as simple basis for user-configured track grouping
- “Random track” prevents appropriate track grouping, and “random album” is too rigid
- Shuffled track grouping needs to be configurable, based at least on metadata rules; i.e., group Pink Floyd albums and classical pieces, but not Britney Spears
- This would require good metadata to work well.
- Try to imitate patterns in user playback requests; when shuffling, find track groupings with metadata similar to current playback [to avoid jarring style shifts] and/or to recent requests [to try to match user 'mood'].
- More flexibly take advantage of metadata as simple basis for user-configured track grouping
- Be a team player as a desktop component – make it easy (e.g. through d-bus) for other applications to request playback
- There ought to be a freedesktop.org “standard” for this..
- Don’t reimplement general desktop infrastructure features, notably w.r.t.
- Indexing; use beagle, tracker, strigi et al through xesam
- File playback; use gstreamer
- Maintain directed scope of application. Monolithic do-everything applications are difficult to integrate nicely into a desktop. Dammit, Jim, I’m a music playback app, not:
- A tagger
- An alarm clock
- A portable music player manager
- A wikipedia browser
- A CD ripper
- But not really sure about web radio etc…
I’ve been thinking by myself for too long about this, so please leave feedback and set me straight