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

Henning Thielemann lemming at henning-thielemann.de
Tue Dec 22 14:23:20 EST 2009


Patai Gergely schrieb:
>> I would do resampling (with some of the Interpolation routines) and
>> mixing in two steps, that is I would prepare (lazy) storable vectors
>> with the resampled sounds and mix them.

> And is that straightforward considering the peculiarities of tracked
> music? After all, frequency can change between ticks thanks to
> portamento effects, and samples can loop or end in the middle of a tick.
> Do I have to trim and pad the samples manually to be able to describe
> these transformations?

I see no problem. I would generate a frequency and a volume control
curve for each channel and apply this to the played instrument, then I
would mix it. It is the strength of Haskell to separate everything into
logical steps and let laziness do things simultaneously. Stream fusion
can eliminate interim lists, and final conversion to storable vector using
  http://hackage.haskell.org/package/storablevector-streamfusion/
 can eliminate lists at all.


More information about the Haskell-Cafe mailing list