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