To know what the manufacturers intended, I guess you'd have to ask
them, or purchase the official MIDI spec from midi.org (print copies
only!), hope it answers the question and hope that the manufacturer of
your synth read and implemented the same spec.
Alternatively, a viable approach that seems perfectly in spirit with
MIDI's old-style nature is to assume local state for the LSB/MSB pair
is always valid and casually update it with data right as it is
received, no matter which half.
(A possible refinement might update the LSB along with a freshly
received MSB: if the new MSB is lower than the stored state, set the
LSB to 7f and to 0 otherwise. This way, your complete value will not
jump back and forth if you receive a mix of MSB and LSB. You lose an
LSB worth of adjustment range if no LSB is ever transmitted though, so
to refine it further you might turn on this LSB interpolation only
after you actually receive one.)
Linux-audio-dev mailing list