[LAU] Running Status v.s "Ordinary" Status and MIDI merging

Crypto crptdngl71 at gmx.net
Sun Mar 29 15:11:25 EDT 2009


I am stuck in a problem with MIDI merging.

I am currently using two external MIDI devices that connect to my notebook via 
an external USB MIDI adaptor (a nice Edirol UM2).

One of these devices transmits data in running status, which means it omits 
the status byte of NOTE ON messages if many NOTE ON messages are transmitted 
and there is no change of the channel.

The second device transmits data in the ordinary uncompressed mode and never 
leaves out the status byte.

Now I need to route these external MIDI devices to a MIDI application.

The devices show up in my notebook as physical ports UM2-1 and UM2-2 and what 
I do is to simply connect these ports to the IN port of the MIDI application.

And now there is a problem: as I have connected the two devices to the IN port 
the application (or the driver of the MIDI port) has to do MIDI merging. But 
something is wrong with the merging, if the running status device's data 
bytes have to be merged with the second device's data stream.

The application detects that there is the status byte missing in the complete 
data stream that it is receiving and it does not "resync" even if the running 
state device transmits a status byte  because the channel has changed. So the 
application indicates an error message stating there is a missing status byte 
and that it only got data bytes.

1.) Which part is actually responsible for the MIDI merging of two or more 
output devices into one input device? Is it the driver of the port or is it 
the application, that is in the end receiving the MIDI data stream?

2.) Is it illegal to connect two output devices to one input port?

3.) If I should need some kind of virtual MIDI multiplexing/demultiplexing 
driver: which one should I chose? I have debian and would like to install 
from repository.

Thanks for any hint and kind regards,

More information about the Linux-audio-user mailing list