hmp3-ng-2.4.2: README.md
## hmp3-ng
The `hmp3` music player, written in Haskell, dates to 2005, and has a
curses-based interface which can be used in an ordinary text terminal.
But it has become abandonware: the last update was in June 2008,
and it no longer builds with today's Haskell and standard libraries.
This repository is a work in progress to resurrect this software.
The original Darcs repo has vanished from the Internet. However, I
have a copy I checked out in 2008 (to hack on!) with all the patches
through version 1.5.1 (the latest is 1.5.2.1, which I had at one point
but cannot find), and Hackage hosts tarballs for several versions.
* I used [darcs-to-git](https://github.com/purcell/darcs-to-git)
to port to Git.
* I added commits for the changes in the two later published versions.
These were fairly small, the bulk being the regeneration of the
`configure` file using a newer version of GNU `autoconf`.
* I updated the code to compile under modern GHC (8.6.5 as of this
writing) and libraries. Some code could not be directly ported,
mainly low-level optimizations, and so was replaced.
* There is a Github issue tracker to cover other problems and
planned changes.
* I have added support for building with Stack.
* All C code is removed. There is still some use of the FFI.
* Work on other features and changes, and documentation, is ongoing.
I have also made a few changes and additions to the key bindings per
my preference.
I am still working out the flaws. Let me know if there are problems.
## Installation
Either `cabal install` or `stack install` will build a binary.
You will need to have `mpg123` installed, which is free software and
widely available in package managers. Although `mpg321` could also
be used, support is currently poor.
The build depends on the package `hscurses`, which in turn requires
curses dev files. In Ubuntu/Debian, for example, these can be gotten
by installing `libncurses5-dev`.
## Use
The `hmp3` executable is called with arguments containing a list of mp3
files or directories of mp3 files. With no arguments, it will use the
playlist from the last time it was run, which is stored in `~/.hmp3db`.
```
$ hmp3 ~/Music ~/Downloads/La-La.mp3
$ hmp3
```
Once running, `hmp3` is controlled by fairly intuitive key commands.
`h` shows a help menu, and `q` quits.
A color scheme can be specified by writing out a `Config { .. }`
value in `~/.hmp3`. See `Style.hs` for the definition. The `l`
command reloads this configuration.
## Original authorship list
```
License:
GPL
Author:
Don Stewart, Tue Jan 15 15:16:55 PST 2008
Contributors:
Samuel Bronson
Stefan Wehr
Tomasz Zielonka
David Himmelstrup
```