Hi everybody!
I have never seen MIDI output using Running Status from any device I owned.
Do such devices exist at all?
Can any regular MIDI keyboard be configured to turn the Running Status on/off?
Need to do some testing for a software issue: https://github.com/jazz-soft/JZZ/issues/26
Thanks a lot!
As far as I can tell, Running Status is a function of the MPU-401 midi interface (and maybe also compatibles/clones ?) and was never anything to do with any other midi device, module or keyboard. Hence it is very possible that no devices of the type you refer to create data with RS, although keyboards may well recognise RS and allow for it.
I've not seen any reference to any sort of command that will make a midi interface (such as the MPU-401 type) turn RS on or off. I have a Roland Tech Ref Manual for the MPU-401 interface which has reference to RS, but no mention of any option to turn it on/off.
There may be many devices now that do not use any interface compatible with MPU, and therefore the use of RS may be redundant as hardware generated. RS may still be used, however, in midi files.
I'm not sure if it's relevant to your question, but I think that one of the problems with the Chinese USB/Midi adaptors that cause so many problems relates to RS - the interface often does NOT cope with RS correctly. When it received RS data (i.e. without the Status Byte) it seems to correctly add the status byte from the last complete command, but then corrupts the following data bytes. Upon receiving a complete message (incl Status Byte) things are reset and OK.
Are USB midi interfaces considered to be MPU-401 compliant?
Geoff
I have never seen MIDI output using Running Status from any device I owned.
Have you investigated this at the protocol level? Running status is intended to reduce the amount of information that travels "over the wire," but by the time your application receives the MIDI messages they are fully formed. In other words, it's not something that applications need to take into account except when reading (and optionally writing) MIDI files.
Running Status is used on classic MIDI 5 pin DIN connections as a way to save bandwidth and improve timing. Modern transports, like USB MIDI, and modern OS MIDI APIs, have plenty of bandwidth available and generally send only complete messages, usually in one packet per message.
Any MIDI device that connects directly to a computer by USB MIDI is not able to use Running Status because the data format of USB MIDI does not allow it. The data format of USB MIDI is a fixed format using 32 bit packets, one complete message per packet (except in the case of SysEx, which has multiple packets for one message). If you connect a MIDI device via 5 pin DIN to a USB MIDI interface, the USB MIDI interface translates the data stream into complete messages before putting them on the USB transport.
USB MIDI devices are not MPU-401 compatible.
BLE MIDI has bandwidth very similar to that of 5 pin DIN. So BLE MIDI supports the use of Running Status as a way to save bandwidth and improve timing. If you want to receive Running Status in a software application this might be a source. However, I am guessing that the BLE MIDI Driver in most operating systems will convert the data stream into completely formed MIDI messages before handing them to the OS MIDI API and software might not be able to see the original raw data.
Chair of MIDI 2.0 Working Group
The Behringer FCB1010 is a cheap controller which you can configure to use or not use Running Status on the expression pedals. But as mentioned above running status is indeed no longer relevant once the stream has gone through the MIDI-USB interface, which has to process the running status. At the MIDI level it's very relevant to process running status correctly when merging 2 MIDI streams for instance. You can use that same FCB1010 to see what happens when you implement MIDI merge without taking into account runningstatus : connect a keyboard to the MIDI IN and you will get hanging notes as soon as you move the expression pedals.
Re: "I have never seen MIDI output using Running Status from any device I owned."
How do you know this ?
If you're using software like Midi-Ox for example, to monitor a Midi stream via a 5 pin DIN midi connector, it continues to display all the non existent status bytes, even though it claims to display raw Midi data. Most of this type of software re-interprets the midi stream coming in. Mike Kent's post above hint's at this
If you want to see the real data coming from a keyboard's 5 pin DIN midi connector, for example, use Realterm or some other terminal software. This software will display the true picture. You will need an FTDI serial to USB converter board (A few dollars from AliExpress) to do this and an opto-coupler circuit (6N138) on its input.
All keyboards I've used employ running status. Example: M-Audio Axiom 25 and Evolution MK-149 for starters.
So, your statement "never seen" is probably because you're using the wrong tools to view your midi data.
Hi everybody!
I have never seen MIDI output using Running Status from any device I owned.
Do such devices exist at all?
Can any regular MIDI keyboard be configured to turn the Running Status on/off?Need to do some testing for a software issue: https://github.com/jazz-soft/JZZ/issues/26
Thanks a lot!
Actually -- the old Voce MIDI Drawbar unit does use Running Status. I was testing a USB-MIDI interface I built, and it was choking on weird messages from the MIDI Drawbar, which turned out to be Running Status. It was simple enough to implement support for that feature.
But as the others have noted, USB MIDI doesn't support Running Status as such. What happens is that the micro that handles the messages will keep track of what sort of message it's parsing, and if it sees a Running Status message on the serial in, it will use the same USB MIDI message packet header and message type as the previous and just stuff in the next data word.