[Haskell] alsa-midi, midi, event-list, non-negative

Henning Thielemann lemming at henning-thielemann.de
Thu Feb 21 08:59:39 EST 2008


Last autumn I found the 'alsa-midi' package by Soenke Hahn for controlling
digital music instruments over MIDI and I wanted to avoid duplicate MIDI
definitions. Thus I started extracting MIDI code from the Haskore project.
Months later I ended up with some more packages:

http://hackage.haskell.org/cgi-bin/hackage-scripts/package/alsa-midi
  This is a simple interface to the sequencer part of ALSA
  (Advanced Linux Sound Architecture)
  It lets you control and communicate with external music synthesizers via MIDI.
  However with its release it becomes deprecated
  because I recently became aware of the more complete approach
    http://code.haskell.org/alsa/
  which we should merge with, I think.

The library is built on top of
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/midi
  which provides definitions of MIDI events and MIDI streams
  and reading and writing MIDI files.

This in turn is built on top of
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/event-list
  which provides data structures for lists containing events and a time
  stamp. Pauses before the first and after the last event are supported.
  The data structures can be used to represent MIDI files,
  OpenSoundControl message streams, music performances or other streams
  of temporal events.
  Internally it uses lists of elements of alternating types,
  that is [b,a,b,...,a,b] or [a,b,a,...,a,b].
  These data structures could be useful of its own,
  but are not exposed so far.

This is eventually built on top of
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/non-negative
  which provides a class for non-negative numbers, a wrapper which can
  turn any ordered numeric type into a member of that class, and a lazy
  number type for non-negative numbers (a generalization of Peano numbers).


You may also want to check if the experimental version of
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/jack
  is useful for you.


Happy installation!


More information about the Haskell mailing list