What Is MIDI Sync?
MIDI Sync, short for MIDI Synchronization, is used when MIDI machines need to synchronize their timing. For example a sequencer and a drum machine, or two sequencers.
Table of Contents
When To Use MIDI Sync?
The solution is to make all your MIDI machines use the same timing source as a reference. One machine is designated as the timing master and transmits timing information to the other MIDI gear in your network. Other devices are designated as slave devices and set to use an external timing source.
If the timing master knows the position in a song is exactly at 0 hours, 2 minutes, 03 seconds, and 27 frames into the song it will transmit 00:02:03:027 to the other MIDI gear. Your sequencer will usually display this time format indicating the current playback position within the song. So the slave devices can maintain their position within their own stored sequence.
By this method, the internal timing of the master device is communicated to all slave devices. Slave devices are set up to use an external timing source instead of their own internal clocks. SMPTE, MTC, MIDI Clock Sync, MMC, and SPP are the communications protocols that can be used to do this.
As ever you need to minimize delays due to MIDI chaining. Synchronizing devices should be placed next to the master device in any MIDI chain. If several devices are to use the synchronization code then use a star network layout, rather than a daisy-chain network. It should be noted that all setups are not suitable for more than 1 slave device.
Overview of MIDI Synchronization
There are 3 main areas of MIDI synchronization:
- Real-Time Sync
- Musical Time Sync
- Control Sync
SMPTE (Society of Motion Pictures and Television Engineers) is a timing sync used in Film and Video. Currently, the SMPTE code is embedded within the digital video so that no sync tracks are required. With analog tape recorders, SMPTE was “striped” onto the last track of a multi-track tape recorder. On playback, the SMPTE track is transmitted to a sequencer using a standard audio cable to connect to a MIDI interface and so control the sequencer.
MTC (MIDI Time Code) is a timing sync transmitted as a series of MIDI messages that tells MIDI MIDI slave devices exactly what time it is at any given moment in hours, minutes, seconds, and frames within the MIDI master device. MTC is effectively an SMPTE timecode being transmitted down a MIDI cable using the MIDI message format. It is sent in quarter-frame intervals as MIDI system-exclusive data.
Musical Time Sync
MIDI Clock is a timing sync similar to MTC. MIDI clock sync was originally used to tell devices when to start, stop, continue and match the tempo of the master device. This is perfect for making synths and samplers synchronize effects, LFOs, and delay time. MIDI clock also passes tempo information which is important when synchronizing time-based sound sources such as arpeggiators and drum loops.
SPP (Song Position Pointer) is musical timing optionally transmitted with MIDI clock signals. SPP is based on bars, beats, and subdivisions of beats down to “ticks” (also called clocks). Ticks are the finest MIDI resolution of any MIDI device. SPP is sent every 6 clocks or ticks as System Exclusive Data. For some devices that is all you need and you don’t have to use MTC, which is based on hours, minutes, seconds, frames, and quarter frames.
MMC (MIDI Machine Control) is a control sync intended for remotely controlling the transport controls on multi-track recorders and sequencers.
If the multi-track is the MMC master, when you press “play” on the multitrack, the sequencer will start. If you make the sequencer the MMC master, pressing “play” will start the multi-track.
MMC only triggers the transport controls and sends a locate point information. No timing information is transmitted. Commands are effectively “Go to”, “start”, “stop”, “rewind”, and “fast forward”. To complete the set up send MTC from the MMC slave to the MMC master device.
Using MIDI Sync
The sync features available on any device are pretty varied, and the implementations on specific machines can also vary in adherence to the MIDI standard on early devices. All this means that you will likely have to experiment with the exact MIDI sync setup that will work for you.
Usually, MTC is used for synchronizing sequencers and multi-track recorders, and for controlling synths MIDI clocks are used. Many multi-track recorders will not use MIDI clocks, many drum machines won’t accept SMPTE, and some devices won’t use MMC. Some can be an MMC master but not a slave. Usually, there is one combination that will work, but don’t bank on it. Synch mechanisms on some devices do not work at all.
Always confirm your sync needs before you buy any gear that needs to use synchronization in your setup.
Musical time-based synchronization is useful for entirely musical systems, but it falls short of suitability for real-time applications like film or video.
MIDI Synchronization In More Detail
System Realtime Messages
MIDI clock is a part of a group of messages called “System Realtime” messages:
- F8 Timing Clock – A Timing Clock message is a status message sent to sync the timing between machines.
- FA Start – Start will cause synchronized machines to begin playback from the start of the song
- FB Continue – Continue signals slave devices to playback from the point the song stopped
- FC Stop – Stop will halt playback in slave devices.
Set “ticks per quarter note” to be the same on both master and slave devices.
As you can see this is a very basic form of MIDI sync, but it is often enhanced using SPP.
Song Position Pointer
SPP is a system common message. An SPP message tells slave devices their current location in the song. SPP is useful when there are loops or jumps within a song sequence. The SPP is stored in terms of the number of MIDI beats from the start of the song, so it relates to musical time, not real-time.
SPP uses two data bytes. As the MSB of data bytes must be zero that leaves 14 bits, or 16,384 MIDI beats, to represent the song position.
SPP is often used along with a song select message, F3, to tell devices like drum machines which song/pattern to playback.
MIDI Time Code
MTC has two functions:
- A way to distribute SMPTE/EBU timecode in a MIDI network
- A way to distribute set-up messages
As mentioned earlier SMPTE/EBU timecode represents time in hours, minutes seconds, and frames. There can be up to 24 hours and the number of frames varies according to the video standard that the time code is normally associated with.
To transmit this as MIDI it is converted into a standard MIDI data format: status byte, data bytes.
There are two MTC sync message types:
- Quarter-Frame Message – running time code
- Full-Frame Message – one-time time code updates (used in high-speed tape spooling)
Quarter-Frame Messages use status byte F1. In timecode, frame is too much information to be contained in one standard MIDI message, so the data is split into 8 separate messages.
Full-Frame Messages use Universal Real-Time Messages, part of the System Exclusive message group. In addition to continuous timecode updates one-time general updates where one full frame is transmitted as one ten-byte message. Set-up messages contain information about locations of cue points, event starts, recording drop-ins, and outs, etc. Full Frame
Message format also includes user bits, often used for labeling tapes with information about their origin but can contain anything.
Would you like to join in the discussion about recording, music production, or music technology? For that matter, just about any music-related subject? Then join our music community!
You might also find our Music Production and Recording Board particularly useful.
To help you to understand specific terms, take a look at our Music Glossary. It has extensive descriptions of music technology terms and concepts. It also contains entries about music theory and terms from across the music industry including music marketing and music promotion.
Become A Contributor To The Songstuff Music Library
Are you a qualified entertainments lawyer? Or perhaps you have in-depth knowledge about tour management? Are you an experienced band manager? Or perhaps a booking agent? Would you be interested in helping musicians to build their skills and understanding by contributing demonstration videos, reviews, articles and tutorials to the Songstuff music library? We rely upon musicians, and people working within the music industry, being willing to contribute to our knowledge base.
As well as contributions to our music library, we feature contributions in our site blogs and social media portals. In particular, we add video contributions to the Songstuff Channel on YouTube.
Please contact us and we can explore the possibility of you joining our contributors asap.