BUG: ALSA snd-virmidi: snd-virmidi is not MIDI 1.0 specification compliant

Andreas Steinmetz ast at domdv.de
Sun Mar 15 12:57:13 CET 2020


snd-virmidi, as of kernel 5.4.23, does not adhere to the MIDI
specification:

>From MIDI 1.0 Detailed Specification, Document Version 4.2, Appendix A-
1 (RUNNING STATUS), Page A-2:

"3. Buffer is cleared when a System Exclusive or Common status message
is received."

snd-virmidi does not clear the running status in case of a SysEx
message.

How to test:

Load snd-virmidi module and get the card number of the module.
In the following 5 is assumed as the card number and device 1 is used.

You need two shells, in shell 1 do:

aconnect 'Virtual Raw MIDI 5-1':0 'Virtual Raw MIDI 5-1':0
amidi -p hw:VirMIDI,1 -d

Now, in shell 2 do:

amidi -p hw:VirMIDI,1 -S '80 01 02 F0 01 F7 80 02 03'

This sends a note off, followed by a SysEx, followed by another note
off. The result in shell 1 is:

80 01 02
F0 01 F7
02
03

So snd-virmidi did not clear the running status. The correct result
would be:

80 01 02
F0 01 F7
80 02 03




More information about the Alsa-devel mailing list