On Tue, Nov 30, 2010 at 10:39 AM, alex stone <compose59(a)gmail.com> wrote:
Given the relative and elegant simplicity of jackmidi
structure,
perhaps those much wiser than i about these things will have a fit of
enthusiasm, and consider implementing it, so we can all go forward
together. :)
unfortunately, this misses a much deeper aspect of the difference
between ALSA and JACK MIDI.
ALSA MIDI delivers MIDI (in all likelihood) to something other than
the thread doing synthesis/processing. This can be nice when using
MIDI for application control (transport, solo/mute/rec-enable etc etc)
but it makes it a bit more difficult to use it in the synthesis
thread.
JACK MIDI delivers MIDI to the thread doing synthesis/processing. This
makes it very easy (and accurate) to use MIDI for
synthesis/processing, but harder to use for application control (which
likely happens in another thread).
finally, JACK MIDI *only* allows MIDI output (directly) from the
processing thread, whereas doing that in ALSA is a recipe for xruns
etc and you really have to do MIDI output from some other thread.
so for example, switching Ardour from using ALSA MIDI to JACK MIDI
wasn't just about using a different API for getting MIDI in and out.
it required a substantive re-engineering of how all MIDI I/O is done.