Digital Sound & Music: Concepts, Applications, & Science, Chapter 6, last updated 6/25/2013
or closed. Using a MIDI footswitch device, you could wire up a magnetic door sensor to the
footswitch input and have a MIDI command sent to the computer each time the door is opened or
closed. The computer could then be programmed to respond by playing a sound file. Figure 6.42
shows an example of a MIDI relay device.
Figure 6.43 A MIDI controllable relay
MIDI Time Code 18.104.22.168
MIDI sequencers, audio editors, and audio playback systems often need to synchronize their
timeline with other systems. Synchronization could be needed for working with sound for video,
lighting systems in live performance, and even automated theme part attractions. The world of
filmmaking has been dealing with synchronization issues for decades, and the Society of Motion
Picture and Television Engineers (SMPTE) has developed a standard format for a time code that
can be used to keep video and audio in sync. Typically this is accomplished using an audio signal
called Linear Time Code that has the synchronization data encoded in SMPTE format. The
format is Hours:Minutes:Seconds:Frames. The number of frames per second varies, but the
standard allows for 24, 25, 29.97 (also known as 30-Drop), and 30 frames per second.
MIDI Time Code (MTC) uses this same time code format, but instead of being encoded
into an analog audio signal, the time information is transmitted in digital format via MIDI. A full
MIDI Time Code message has the following syntax:
F0 7F device_ID sub-ID 1 sub-ID 2 hr mn sc fr F7
is the status byte indicating the start of a SysEx message.
indicates the use of a SysEx sub-ID. This is technically a manufacturer ID that has
been reserved to indicate extensions to the MIDI specification.
can be any number between 0x00 and 0x7F indicating the device ID of the
thing you want to control. These device ID numbers have to be set on the receiving end
as well so each device knows which messages to respond to and which messages to
ignore. 0x7F is a universal device ID. All devices respond to this ID regardless of their
individual ID numbers.