[Introduction] [Building from source] [Screenshots] [TODO]
Minstrel is a frontend to the GStreamer library written in Haskell. The interface is designed to fit in with what I want from my music player, so may not agree with you, but I'm sure there's an alternative out there that does! It is currently unreleased, and both it and its libraries are not robust, so you'll need to treat them gently for the time being.
The frontend takes two arguments, a playpool
(filename) and a root (directory). The
playpool contains a list of lines like
The Foo Band/Bar Album/The First Track.ogg The Foo Band/Bar Album/The Second Track.ogg
(where ogg is any filetype supported by alsaplayer) such
that for each line x, there is a file
root/x. Currently the only supported format is
artist/album/track. Ony way to creat a playpool
is cd root && find . -print | sed "s/..//".
By default, random tracks from the playpool will be played. Yet to be implemented are modes for playing all tracks in random albums and a passive mode where the status display is updated but no tracks are set to be played (but other programs may be playing tracks in the same alsaplayer session). You can also select an artist, album or track and press space to add it, or all tracks contained within it if it is not a track, to a playlist. Tracks in the playlist will be played through in order in preference to teh random selections normally made. Pressing enter is similar, but adds the appropriate tracks to the beginning of the queue and interrupts the currently playing track to start playing them.
You will need at least GHC 6.3 to build it, as well as the curses and gstreamer development libraries. To get the source you will also need darcs. Then:
darcs get http://urchin.earth.li/darcs/ian/minstrel cd minstrel darcs get http://urchin.earth.li/darcs/ian/cstring darcs get http://urchin.earth.li/darcs/ian/hcurses darcs get http://urchin.earth.li/darcs/ian/hgobject darcs get http://urchin.earth.li/darcs/ian/hgstreamer
Then just run make to build.