Send and receive MIDI messages
root
hmidi: Haskell bindings to the OS level MIDI services
Partial implementation of the MIDI 1.0 standard to communicate with physical or virtual MIDI devices, eg. MIDI keyboards and synthesizers.
Supported operating systems are MacOS and Windows. See also the alsa-midi library for similar functionality under Linux.
Installation & Usage
It should install with cabal without problems on Mac OS X and Windows. Linux is not supported.
As usual, just run the command:
cabal install
When using the library, you have to link against the threaded runtime (otherwise random crashes will occur); for example:
ghc --make -threaded -O monitor.hs
Example applications
There are some example command line applications in the examples subdirectory:
monitor.hs- very basic MIDI monitorchords.hs- convert NoteOn messages to simple chordsplaymidi.hs- play simple.midfiles on General MIDI compatible synthsosx_host.hs- create a MIDI host (as opposed to connecting to existing host). Only works on MacOs.
You can build them with ghc --make -threaded like above.
Differences between Windows and MacOS
We tried to create a unified Haskell API, but there are still differences between the Windows and Mac implementations. In particular, you cannot create MIDI hosts on Windows.