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

Patai Gergely patai_gergely at fastmail.fm
Thu Dec 17 06:05:15 EST 2009


Hello again,

> Your message has motivated me to publish my own PortAudio binding,
> which provides a simpler, more efficient callback-based interface:
> http://github.com/mietek/portaudio
I tried this, and after rewriting the code a bit, I managed to decrease
CPU load by 70-80%, which is not bad for starters. However, I'm getting
random segfaults, and I've no idea why.

Here's the modified player module (hpaste kindly rearranged the empty
lines for some reason):

http://hpaste.org/fastcgi/hpaste.fcgi/view?id=14347

Instead of building a list of samples right away, I use an unfoldr-style
generator to fill the buffer, whose initial state is created by
mixGenerator, and its stepper function is nextSample.

In order to get this working, I renamed your module to avoid conflict
with the other PortAudio binding, and I had to change the dependencies
in the cabal file to base >= 4 && < 5 because of the exception handling
code.

There's also some broken MVar-based code to handle the end of the song,
you can ignore that for the time being.

Gergely

-- 
http://www.fastmail.fm - The professional email service



More information about the Haskell-Cafe mailing list