[sdiy] MIDI spec

Paul Maddox P.Maddox at signal.qinetiq.com
Tue Dec 3 13:18:00 CET 2002


Seb/Colin,

all I tend to do is use a switch/case statement
and at the end use the default: and clear running status, that way messages
I haven't explicity asked for reset the running status byte.

Paul

----- Original Message -----
From: "Seb Francis" <seb at is-uk.com>
To: "Colin f" <colin at colinfraser.com>
Cc: "Paul Maddox" <P.Maddox at signal.dra.hmg.gb>;
<synth-diy at dropmix.xs4all.nl>
Sent: Monday, December 02, 2002 5:38 PM
Subject: Re: [sdiy] MIDI spec


> Colin f wrote:
>
> > If your
> > parser just ignores F1 and retains it's running status, you're going to
get
> > some weird shit if you start sending MTC.
> > Also F4 and F5 are undefined bytes, but should reset running status. F9
and
> > FD are also undefined, but should *not* affect running status. (i.e.
system
> > common resets running status, system realtime doesn't, even for
undefined
> > bytes)
>
> Right, the simple rule is to check bit 3 of a "system" status byte - bit 3
set means System Realtime message, bit 3 clear means System Common message
(which as you say should reset running status, so any following data bytes
should be no problem if the message type isn't handled).  System Realtime
messages are, and always will be single bytes.
>
> Actually, MIDI's really quite nicely designed ...
> Status bytes starting with "11111" are system realtime messages
> Status bytes starting with "11110" are system common messages
> Status bytes starting with "110" have 1 data byte
> All the rest have 2 data bytes
>
> BTW, 0xF9 is not undefined - it is defined as "MIDI Tick" - see here:
http://www.borg.com/~jglatt/tech/midispec/tick.htm
>
> Seb
>
>
>



More information about the Synth-diy mailing list