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

Clemens Ladisch clemens at ladisch.de
Fri Jan 18 18:29:00 CET 2013

Joerg-Cyril.Hoehle at t-systems.com wrote:
> 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?

Just put the partial chunks into separate events.
The first must begin with the F0 byte, the last end with F7.
(This is not actually checked; you can put arbitrary bytes into SysEx
event data.)

> The documentation on snd_seq_ev_set_sysex insists:
> "the sysex data must contain the start byte 0xf0 and the end byte 0xf7."

This is wrong.  For that matter, when the sequencer receives from the
hardware a SysEx that is too large for its internal buffer, it will
split it into pieces.


More information about the Alsa-devel mailing list