I have written a very simple music player that seems just right for me.
It runs from the command line and takes music files, music directories, and playlist as arguments. If given a directory or playlist, it will play all the music files, directories, and playlists it contains.
It takes two options: ‘-r’ tells mp to repeat the music endlessly and ‘-s’ tells it to shuffle the music. If both are given, mp reshuffles before repeating. If no arguments are given, then mp uses the same arguments and options that were last run from that same directory, skipping the songs that have already been played. In that way, it is easy to kill mp when the phone rings and then restart it where you left off. This helps make up for mp‘s primary limitation, there is no built-in support for pausing and restarting the music (though Linux job control can be used instead, type Ctrl-Z to pause the music and run fg to restart it).
mp is capable of playing ogg, flac, mp3, and wav files.
You can find the latest version of the source code on Github.