I have been experimenting with the following code: alsarawmidiin.c

The alsa rawmidi states that you can create a virtual rawmidi port by naming the input port "virtual"

So I compiled the code and started it with the command:

alsarawmidiin virtual

This works and I can connect other midi ports using aconnect. The problem is that the midi data that os being displayed only shows the first and last byte of the midi message. Most midi messages are three bytes, but when using the virtual driver only two are displayed.

Connecting straight to a rawmidi device (not virtual) does work. But I want to connect several midi devices to the same rawmidi port. Is this an error in the alsa rawmidi library?


This is a bug in the virtual plugin. It appears that the code for handling a buffer smaller than a MIDI message was never tested.

This will be fixed in alsa-lib 1.1.4; until that package reaches your distribution, you can apply the patch by hand, or work around this by using a larger buffer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.