|
Agree...But unfortunately, the SPEC does not help you understand
the implimentation details necessary for 'problem situations'. You
only hope you can envision them all.
Even with 0 time CPU and UART delay, just 'wrapping' a midi byte will
RESULT in ~600 usec delay from source to reciever ( uart byte assemble
is one byte time...then CPU/UART access...then get the byte to UART,
then its one more byte time till it's OUT the serial line...
Um, start expecting lots of delay.
Like 2 sources sending sysex, or continuous controller info. Dont worry
about CLOCKS! They're SLOW!!!!!!!!!! Sure note ons with running status,
and then some clocks, and then pitch bend, and aftertouch, and then
a sysex dump (nothing in the spec to dissalow this) and finally the
note offs.....
So start figuring how big your buffer needs to be to handle same...
Merging......stuck notes on.......two of the buggaboos of the
MIDI architecture. cest la muse.
Good luck.
ron
|
| For sure, you must be looking into the timing aspect as well.
Maybe my original question about real time meassages occurances wasn't
clear enough. LAst night I hooked up my ROLAND E20 to my microP, made a
small program, (assembler code) to send all MIDIbytes at the input port
through a FIFO buffer, converted into ASCII and then to my terminal
(ATARI ST running VT52 emulator at 9600 baud). The E20 sends all the
accomp. music out on MIDI including clocks. Turning the tempo to 240
BPM and starting a SAMBA rythm (with plenty of 16th notes accomp.)
seeing the MIDIstream in HEX on the screen, I never noticed that any F8
clock bytes appeared inside the note on/note off messages. I.e the
(9n xx vv) three bytes always were bounded together and never looked
like 9n xx F8 vv.
--
Maybe the E20 has good software but is this good behaviour specified in
the MIDI specs?? Are the specs this detailed??
Torbjorn
P.s I also noted that the E20 sends release velocity, not mentioned
anywhere in the documnetation. That's pretty good for a home type of
keyboard. :-) D.s
|