Now that there are Python bindings, I'm thinking about writing a music player. The key design goal will be for it not to suck -- something that, so far as I am aware, has not been achieved by any existing music player.
Common ways for music players to suck:
- Crashing on PowerPC (there goes half the field already)
- An exquisitely hand crafted interface that is thus totally inflexible and requires a magnifying glass to read (XMMS handily includes a pixel doubling mode... er, yay)
- Too cool to use window manage decorations, so no way to say: all workspaces/this workspace only, minimize, maximize, etc, or indeed to move the window without anoyance
- Jumpy sound the instant you do anything massively CPU intensive, like browsing the web
- When you press stop/pause, the music stops instantly. I find this quite off-putting, to the extent that I find myself dreading hitting pause. It should fade discretely (I love XMMS-crossfade)
- Sucky play-queue editing. Play-queue has to be usable by drunk people at parties
Some things I'd like:
- Starts instantly
- Standard GTK or QT interface
- Specify directories to watch for new music
- Full screen visualizations
- Complex music searches: fuzzy keyword matching (an idea of Korny Sietsma's, who has apparently has written a player that does this), properties such as quality, manually added meta-data, complex combinations thereof
- Analysis of music for qualities such as tempo, tonal vs percussion, voice vs instrumental, noisiness. The ability to cluster songs by these qualities (eg plot points for each song, with two of these properties as X and Y axes, then select regions to play).
- Play CDs, by reading audio data from CD then treating it exactly as other music is treated
- Usable by the inebriated