> this all looks good, but i still don't understand how this differs > from the ALSA sequencer (except that the sequencer does everything > you've listed, and more besides; it handles merging, for example).
That is the difference. Because it doesn't handle merging and more complex scheduling it is a more accurate representation of the hardware. A seperate mixer application could be written for merging. The more complex sequencing will mostly be done in the application itself. > btw: i don't understand your use of the term "low level" here. my > sense of a "low level MIDI API" is one that deals only in terms of raw > bytes to be delivered directly to a MIDI device. This can not be supported for many interfaces. It would also make the seperate scheduled and immediate stream hard if not impossible to implement. > as soon as you start > dealing with structured MIDI data, scheduling etc., it seems to me as > if its not low level anymore. what would a "high level MIDI API" be > for you? The ALSA Sequencer. This allows merging and high level sequencing, both of which are nontrivial and should better be kept apart from the basic API for interface access. --martijn
