[alsa-devel] Must MIDI SysEx data contain the start byte 0xf0 and the end byte 0xf7?

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Fri Jan 18 17:17:33 CET 2013


Hi,

I've read about SysEx continuations aka. divided SysEx
http://www.allegro.cc/forums/thread/607445
http://www.sonicspot.com/guide/midifiles.html

What it means is that within a MIDI file, a long sysex could be split
across several events with different delta times, giving the receiver
some processing time in between (e.g. flash EEPROM etc.).  The delta
times tell when to send the parts.

Now, is that truth?  How to do that with ALSA?
The documentation on snd_seq_ev_set_sysex insists:
"the sysex data must contain the start byte 0xf0 and the end byte 0xf7."
http://www.alsa-project.org/alsa-doc/alsa-lib/group___seq_middle.html#ga104862c436dcc8f23892be44f50bc90f

Would it be the sole business of the low-level ALSA driver to slowly
send large (and complete) sysex data, out of application control
(e.g. the delta times would get lost)?

Should apps always coalesce partial sysex data and hand out the complete
blob to ALSA's snd_seq_ev_set_sysex?

Is divided SysEx too rare to worry about?

I'm asking because we've seen a user of Wine & KORG stumble upon a
non-F7-terminated SysEx.

Regards,
	Jörg Höhle


More information about the Alsa-devel mailing list