There are some well known computer music people working on PortMusic
http://www.cs.cmu.edu/~music/portmusic/ as a cross-platform Snd/MIDI C
API. This seems to have a similar API to MKPerformSndMIDI.
This may be the best way for us to achieve full Linux support (OSS &
ALSA) and then leverage any further porting efforts of theirs. I (or
someone else), could compare the API, as I suspect we may even be able
to emulate the API with #defines and save an extra function call in many
cases. It probably is less work than doing the full Linux port ourselves.
I've introduced our code base to them, suggesting
MKPerformSndMIDI_MacOSX may well help them achieve a MOX port of
PortMusic in short order. Certainly we will keep MKPerformSndMIDI_MacOSX
for now until MKPerformSndMIDI_PortMusic does the job.
At the moment, there is one problem with the current MOX port, in that
there is no current way to clear a queue of pending messages. This is
problem when clicking stop, as some note ons in the queue will continue
to be played, causing hanging notes. Apple appears to be prepared to add
a clear queue API, so this should get cleared up soon. I'm also chasing
a rather strange bug manifesting in sending SysEx messages, that seems
to be deep within the USB frameworks...urk...Darwin here I come...It
shouldn't cause too many problems, but let me know if you reproduce it.
There is one more bug to nail down in separate threaded MIDI recording
before a 5.3.1 release sees the light of day. Of course you are welcome
to checkout the CVS code (see the sourceforge instructions) and compile
intermediate patches yourself :-)
Dr. Leigh Smith