[erlang-questions] help: Erlang MIDI driver for MAC OS X

Jim Menard jim.menard@REDACTED
Sat Feb 2 17:41:56 CET 2008

On Jan 21, 2008 9:29 AM, Joe Armstrong <erlang@REDACTED> wrote:

> Easy you might think:
>     1) open /dev/midi
>     2) write three bytes
> A trivial exercise in any programming language - but NO - there is no
> /dev/midi - instead there is an incredible
> mess of API routines to open a midi first open a midi client - then
> create a midi input and output port and
> connect it to the client then get a midi device ref (for the correct
> device) then setup a callback routine
> for reading midi events - connect the sources the devices and
> generally mess around.

I feel your pain. Years ago, I wrote and used realtime MIDI
performance software for the C64 and later the Atari ST and BeOS
(http://www.io.com/~jimm/projects/keymaster/). It was pretty much as
easy as you describe.

The complexity you're fighting with is needed to overcome the
16-channel limitation of the MIDI spec. Programs need to talk to
multiple MIDI devices through a MIDI interface with multiple MIDI I/O
ports so that more than one synth can use all 16 MIDI channels
separately, giving you hundreds of virtual channels.

Apple has added complexity with virtual instruments, ports, and
devices. It's kept me from writing any MIDI software for Mac OS X

> If anybody else is interested in real-time midi control and Erlang
> programming please contact me.

I'm definitely interested, but don't have time to contribute much. So
I guess I'll shut up now, since I don't have anything worthwhile to

Good luck with your project. It would be great if you decide to
release your code.

Jim Menard, jimm@REDACTED, jim.menard@REDACTED

More information about the erlang-questions mailing list