[Haskell-cafe] ANN: Hemkay, the 100% Haskell MOD player

Patai Gergely patai_gergely at fastmail.fm
Mon Dec 14 16:50:17 EST 2009

Hello all,

I just uploaded the fruit of a little side project. Hemkay [1] is an
oldschool module music [2] player that performs all the hard work in
Haskell. If there was any goal, it was to express the transformation
from the song structure to the output of the mixer as a series of
function compositions, maintaining a style that one might call idiomatic
Haskell. Considering the dirtiness of the format in question, I'm quite
pleased with the initial version.

Still, I'd be curious to see how the overall quality of the code could
be improved. In particular, retrieving and updating record fields is
somewhat inconvenient. Also, the actual mixing (limited to the mixChunk
function) is embarrassingly slow, and I wonder how much it could be
improved without leaving the pure world.

The program uses Portaudio for playback, but that might easily change in
the future. The problem is that I couldn't get sound to work smoothly
when producing samples in batches, so I'm sending them off one by one
(!) at the moment, which doesn't help with performance either. I'm open
to suggestions as to what library to use to push data to the sound card.


[1] http://hackage.haskell.org/package/hemkay
[2] http://en.wikipedia.org/wiki/MOD_(file_format)

http://www.fastmail.fm - Or how I learned to stop worrying and
                          love email again

More information about the Haskell-Cafe mailing list