summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Brand <tom@trellis.ch>2019-01-30 16:13:59 +0100
committerThomas Brand <tom@trellis.ch>2019-01-30 16:13:59 +0100
commitb744332c5d71d825d237fc8ed72fcb8a60dcf5e6 (patch)
tree9ef009210dcac86ca77750acda7c848d514f6c10
parent64d1f6dab1372fe82333e4f2d9652138c41d824f (diff)
downloadjack2-b744332c5d71d825d237fc8ed72fcb8a60dcf5e6.tar.gz
jack_midi_event_get(): Add note about SysEx messages
See https://github.com/jackaudio/jack2/issues/413
-rw-r--r--common/jack/midiport.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/common/jack/midiport.h b/common/jack/midiport.h
index 130bdc2c..f064d754 100644
--- a/common/jack/midiport.h
+++ b/common/jack/midiport.h
@@ -63,6 +63,17 @@ jack_midi_get_event_count(void* port_buffer) JACK_OPTIONAL_WEAK_EXPORT;
* guaranteed to be a complete MIDI event (the status byte will always be
* present, and no realtime events will interspered with the event).
*
+ * This rule does not apply to System Exclusive MIDI messages
+ * since they can be of arbitrary length.
+ * To maintain smooth realtime operation such events CAN be deliverd
+ * as multiple, non-normalised events.
+ * The maximum size of one event "chunk" depends on the MIDI backend in use.
+ * For example the midiseq driver will create chunks of 256 bytes.
+ * The first SysEx "chunked" event starts with 0xF0 and the last
+ * delivered chunk ends with 0xF7.
+ * To receive the full SysEx message, a caller of jack_midi_event_get()
+ * must concatenate chunks until a chunk ends with 0xF7.
+ *
* @param event Event structure to store retrieved event in.
* @param port_buffer Port buffer from which to retrieve event.
* @param event_index Index of event to retrieve.