Binding 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 synths. Supported operating systems are MacOS and Windows. See also the alsa-midi
library for similar functionality under Linux. Please note that there was no effort made (yet) to be compatible with the other existing Haskell MIDI libraries.
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.mid
files 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.