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. Gergely [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 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe