[sdiy] MIDI running status implementation - status bytes

Tom Wiltshire tom at electricdruid.net
Sat Feb 1 16:08:49 CET 2014


Thanks all.

I've never found System Realtime to be a problem. Its behaviour suggests to me that it was intended to be stripped out in the MIDI Rx interrupt and dealt with directly. So that's what I've always done. If it's a System Realtime byte, I either deal with it or ignore it. Anything else goes into the MIDI message buffer. That way, the buffer is clear of System Realtime and (for example) I don't have to worry about random MIDI clock bytes in the middle of my Note On message.

Tom


On 1 Feb 2014, at 08:44, Ullrich Peter <Peter.Ullrich at kapsch.net> wrote:

> And don't forget that the System Realtime bytes can happen EVERY TIME!
> So also between status and data bytes...
> 
> So even if your software doesn't need the System realtime messages you have to 
> completely ignore them otherwise your MIDI decoding could get in trouble.
> So just throw them away without putting them in a buffer or further processing if not needed.
> 
> I had this proble with my very old Korg MS10 MIDI to CV converter lotsa years ago...
> 
> Ciao
> Peter
> 
> http://www.ullrich.at.tt
> 
> ________________________________________
> Von: synth-diy-bounces at dropmix.xs4all.nl [synth-diy-bounces at dropmix.xs4all.nl]" im Auftrag von "rsdio at sounds.wa.com [rsdio at sounds.wa.com]
> Gesendet: Samstag, 01. Februar 2014 09:06
> An: Neil Johnson
> Cc: synth-diy
> Betreff: Re: [sdiy] MIDI running status implementation - status bytes
> 
> and don't forget that System Real-Time is the exception to the rule.
> Although System Real-Time messages are technically Status Bytes, they
> do not interrupt Running Status. This is possible only because System
> Real-Time messages are only one byte in length, so they will never
> confuse the multi-byte state machine in your MIDI parser.
> 
> Brian Willoughby
> Sound Consulting
> 
> 
> On Jan 31, 2014, at 07:03, Neil Johnson wrote:
>> Andre,
>> 
>>> Tom, your question and Neil's replies leave me slightly
>>> confused.
>>> 
>>> Why do you say "in the case of channel status bytes" ? Running
>>> status only applies to channel status bytes.
>> 
>> While Running Status only _applies_ to channel status messages, it is
>> _terminated_ by _any_ status byte.
>> Of course, if the exact same status byte is received it is as if
>> Running Status was in effect. And if another channel status byte
>> arrives then a new running status starts.
>> 
>> Neil
> 
> 
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
> 
> 
> 
> The information contained in this e-mail message is privileged and confidential and is for the exclusive use of the addressee. The person who receives this message and who is not the addressee, one of his employees or an agent entitled to hand it over to the addressee, is informed that he may not use, disclose or reproduce the contents thereof, and is kindly asked to notify the sender and delete the e-mail immediately.
> 
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy




More information about the Synth-diy mailing list