[sdiy] Anyone know of a device that does no-added-delay MIDI filtering?

Colin f colin at colinfraser.com
Sun Mar 5 22:46:00 CET 2006


 
> The way I read the MIDI spec the status byte (sometimes 
> called opcode) 
> is not really part of the message. At least that way running status 
> makes much more sense to me... anyway, when I was talking about the 
> MIDI message, I was assuming that status was already taken care of.

The status byte is certainly part of the message.
But if you have received the correct number of data bytes for the most
recent status byte, you assume the same status byte if more data bytes
appear.

> Do some error handling, yes; pass on the error, no. But 
> that's just me.

My point was that these sorts of errors occur so rarely, it's hardly worth
the effort of handling them, especially if your primary goal is minimum
latency. There's not much you can do in the way of error handling with MIDI,
other than doing a panic all-notes-off when a bad message shows up.
 
> > If you pass it on, most likely a responding synth will be ignoring
> > note-off velocity anyway, and the note will end as you wanted.
> 
> I'd say this synth would have a broken MIDI implementation (not that 
> this would be unheard of). For a two-byte message, the time 
> to release 
> the note is when you receive the second byte of the message, not the 
> first.

A receiving device must count the data bytes for the each message in the
current status so it frames the message properly, but if the last byte in
the message isn't relevant, I don't see any reason why you shouldn't handle
it as soon as you have the relevant information - in the case of note-off,
the note number. That's nothing to do with MIDI implementation.
As you pointed out, there is no fixed time-frame for that final byte to
arrive, so why wait for something you're going to ignore anyway ?
That lack of a time limit for messages is a major failing of MIDI IMHO.

Cheers,
Colin f




More information about the Synth-diy mailing list