[sdiy] Midi CC update rate question

Colin f colin at colinfraser.com
Sun Jan 8 18:15:38 CET 2012


 
> Careful, on the transmitting side don't use running status 
> too consequently. Always insert a status bit every second or 
> so even if it's redundant.

When transmitting a byte to MIDI, either the serial port is idle, in which
case you can load the byte to send immediately, or there is a transmit in
progress so you need to buffer the byte.
My approach to running status is to always send a status byte if the port is
idle. If the transmit byte is to be buffered, running status bytes are
dropped.
That ensures that you get the benefit of running status for a dense block of
messages on the same channel (e.g. a chord, multiple drum hits on the same
beat), but the status byte is refreshed after any break in transmission.
Since the port was idle anyway, the most extra delay you get is 320uS.
This is easier to code than e.g. a 'refresh running status' flag being set
by some interval timer.
 
> If you ask me, I don't think that there are many MIDI 
> receivers out there that cannot handle running status.

By definition, all MIDI receivers handle running status correctly.
If they don't, they are not compliant with the spec, so are not 'MIDI'
receivers.

Cheers,
Colin f





More information about the Synth-diy mailing list