On Sun, Jan 8, 2012 at 6:14 AM, Pedro Lopez-Cabanillas <[email protected]> wrote:
>> I've always thought that Jack MIDI is easier to program and provides >> better jitter guarantees, but you may see things differently. > > It is designed to subordinate MIDI messages to digital audio in real time. For > these use cases it may fit well. Pretending that it fulfills the needs of any > other use case where MIDI may be involved is only hype and propaganda. this is bullshit, pure and simple. there is no MIDI API (on Linux or anywhere else, not considering plugin APIs) that ensures the delivery of MIDI in the same thread as audio processing. this means that if you are doing synthesis based on MIDI data, which after all is the original purpose that MIDI was intended for, and you're not using JACK then you face issues of either latency or jitter (or both). JACK MIDI aims to solve those problems at the same time as offering developers (and users) the same abstractions and application design and interface as they would use for audio. Given that MIDI's primary purpose has been to drive and control audio synthesis, that seems entirely appropriate. Now, should you want to use MIDI for some entirely different purpose - for example, the subsets/extensions of MIDI such as show control or machine control, then its certainly true that JACK MIDI isn't really the idea API for that. This would also apply if you wanted to use MIDI to control automated equipment in your house. Its also the case that if you are sending pre-existing MIDI data, then JACK MIDI is somewhat more cumbersome than the type of API like ALSA's, which allows you queue up a huge chunk of MIDI data and have its delivery taken care of for you. Somebody could easily provide a wrapper for this around JACK MIDI, but it hasn't happened, I suspect because most things that send MIDI are not actually "MIDI file players" and the "file player" type of application is already well addressed with ALSA-based utilities. For sequencer applications like Ardour, Muse, QTractor, Rosegarden and so on, the ALSA API actually creates an entire additional layer ot complication if you want precise synchronization with audio synthesis. So, I'm not precisely sure what other use cases you see for MIDI besides one that intimately links MIDI with audio data in real time, but no matter what they are, this such an overwhelmingly common and dominant use case that JACK MIDI's model of things appears to me entirely appropriate and very far from hype and propaganda. Yes, its true that it would have been better not to create a new API. But if you talk to the people involved in the original design of the ALSA sequencer, they acknowledge that for the last 6-7 years at least, it could have been in user space and probably should have been. Nobody is willing to put the time in to change that, and so ... _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
