> Also note that you don't need a port for each > BMidiConsumer, and that in some cases you can forego > IPC altogether! See my reply to Jerome for details. About not needing a port for each BMidiConsumer.. When I used to be working on some small MIDI utilities for BeOS ( http://www.bebits.com/devprofile/2011 , note that I've GPLed the keyboard application, but since the OBOS team doesn't like the GPL it probably not that interesting... ) I more than once asked how the midi2 kit is supposed to work. The callbacks for receiving MIDI are only called when the data is sent atomically IIRC. Thus sending system exclusive data in several packets does not result in the callback function for sysex being called. I never was able to figure out how to handle this, so if you happen to know I'd love to hear it :). I've been thinking about doing a "midi kit" for UNIX (as in POSIX compliant) and I would use message queues for IPC but then I won't be able to handle arbitrarily large sysex messages. I'm not sure BeOS ports are able to handle messages of any size, probably not. I'm not sure how well the midi2 kit handles very large sysex dumps and how error handling is done. Another thing about the midi2 kit is the handling of timestamps. Are timestamps supposed to be monotonically increasing? I suppose not since more than one producer can connect to a single consumer so the consumer in general doesn't receive the messages with time ordered stamps. But in general two kinds of stamps exist. The one where the message is late and the stamp indicates when it was received (e.g. on a physical input). And the one where the stamp is in the future indicating when it is to be transmitted (e.g. on a physical output). There is nothing in the articles on how timestamps are to be used, but in practice they should be time ordered, i.e. the application that outputs MIDI should schedule the messages itself. Should it send them just ahead of time? or late? Does this mean that the midi2 kit isn't meant to handle 'smart' MIDI interfaces that support some sort of scheduling in hardware? Also a software synthesizer might want to receive MIDI ahead of time when getting input from a sequencer so latency can be avoided in that case. I don't think the midi2 kit supports this, but maybe it could. --martijn