This is a small, incomplete wrapper around the portmidi c library.
It is the successor of my portmidi-ruby project which used ordinary ruby extensions which are a pain to write.
-
portmidi (who woulda thought) built as a dynamic library. See below for special notes for Mac OS X Snow Leopard
-
ffi (which in turn needs a sane build env to be installed)
The most important: Tests. I’m still pondering on how to test a library that has hardware requirements and dependencies (= MIDI hardware). So I guess it means I will mock away the portmidi layer to test my abstractions and add some optional integration test that will require a MIDI loopback configuration.
Implementation wise, there’s a few things missing:
-
Setting Channel- and Message filters
-
More different exceptions, plus support for Host Errors
-
A lot of safety nets like testing for open devices before reading and writing and such.
The portmidi wrapper was thrown together by Jan Krutisch <jan@krutisch.de>
-
Portmidi C-Library: Roger B. Dannenberg / Portmedia Framework Group
-
Jan ‘half/byte’ Krutisch (github.com/halfbyte)
-
Patches by
-
Thomas Jachmann (github.com/thomasjachmann)
-
-
On MacOSX, there’s a homebrew recipe, so $ brew install portmidi should do the trick
-
On most Linuxes, portmidi should be simply a package to install by your packagemanager
-
On Windows: “try this”:sourceforge.net/apps/trac/portmedia/wiki/Installing%20portmidi%20on%20Windows