CHAPTER 31. MIDI FACT SHEET
503
For playback of hardware devices, Live also generates timestamps that it attempts to com-
municate to the MIDI interface drivers for scheduling of outgoing MIDI events. Windows
MME drivers cannot process timestamps, however, and for devices that use these drivers,
Live schedules outgoing events internally.
Even during high system loads that cause audio dropouts, Live will continue to receive
incoming MIDI events. In the event of audio dropouts, there may be timing errors and
audio distortion during playthrough, but Live should still correctly record MIDI events into
clips. Later, when the system has recovered from the dropouts, playback of these recorded
events should be accurate.
31.4
Variables Outside of Live's Control
In general, timestamps are an extremely reliable mechanism for dealing with MIDI event
timing. But timestamps are only applicable to data within the computer itself. MIDI data
outside of the computer can make no use of this information, and so timing information
coming from or going to external hardware is processed by the hardware as soon as it
arrives, rather than according to a schedule. Additionally, MIDI cables are
serial
, meaning
they can only send one piece of information at a time. In practice, this means that multiple
notes played simultaneously cannot be transmitted simultaneously through MIDI cables, but
instead must be sent one after the other. Depending on the density of the events, this can
cause MIDI timing problems.
Another issue that can arise, particularly when working with hardware synthesizers from the
early days of MIDI, is that the
scan time
of the device may occur at a relatively slow rate.
Scan time refers to how often the synthesizer checks its own keyboard for input. If this rate
is too slow, jitter may be introduced.
Of course, any such timing problems present at the hardware level may be multiplied as
additional pieces of gear are added to the chain.
Even within the computer, the accuracy of timestamps can vary widely, depending on the
quality of the MIDI hardware, errors in driver programming, etc. Live must assume that any
timestamps attached to incoming MIDI events are accurate, and that outgoing events will
be dealt with appropriately by any external hardware. But both situations are impossible for
Live to verify.