>Does that mean that MIDI output can only be done from a callback? No, it would mean that MIDI is only actually delivered to a timing layer during the callback. Just as with the ALSA sequencer and with audio under JACK, the application can queue up MIDI at any time, but its only delivered at specific points in time. Obviously, pre-queuing leads to potential latency problems (e.g. if you queue a MIDI volume change 1 second ahead of time, then the user alters it during that 1 second, you've got problems).
> Is the >callback the same one as for the audio hardware? MIDI being sporadic just >doesn\'t seem to fit in JACK. i agree that its not a natural fit. i'm trying to find some reasonably natural way to handle it, one that is closer to the level of abstraction that JACK uses than the one used by the ALSA sequencer. its quite possible that this isn't possible. > Why not have a seperate API/daemon for MIDI and >have it and JACK both use the same UST timestamps? you can't use any timestamp unless its derived from the clock master, which UST by definition almost never is. the clock on your PC doesn't run in sync with an audio interface, and will lead to jitter and drift if used for general timing. the separate API may well be necessary, but i would hope that we can eventually converge on a single daemon (e.g. ALSA sequencer moves into user space as a library+reference implementation of the daemon; then jackd runs as the daemon). --p