Note: this blog post assumes you know what MIDI is.
MIDI Beat Clock, more commonly known as MIDI Clock, is a type of MIDI message which controls the tempo (aka speed) of a given device. Generally, MIDI Clock represents a family of MIDI messages which are used to synchronise multiple electronic musical devices, ensuring they play together in perfect time, just like musicians would.
The MIDI messages used in Synchronization
- MIDI Clock is not a one-off message like “set the tempo to 129 BPM (beats per minute)“. Instead it’s a constant flow of messages which indicate when to move on to the next beat, just like a metronome would do for Live musicians. These “ticks” are sent 24 times per quarter note, which is usually called 24ppq or 24ppqn (24 pulses per quarter note).
- MIDI Start/Stop messages work in pair with MIDI Clock messages, indicating a machine to start or stop its sequence. Combining this and MIDI Clock means two machines can have the exact same speed (thanks to MIDI Clock) and start at the exact same time (thanks to MIDI Start).
- Song Position Pointer and MIDI Continue messages give the possibility to “jump” somewhere in the sequence or simply start a sequence from a given point instead of starting from the beginning.
MIDI Clock vs. Setting the Same Tempo
Consider a setup where you want to synchronise, for example, the Elektron Digitakt II (a drum machine) with the Arturia MiniBrute 2S (an analogue sequencer). The Digitakt can send MIDI Clock to the MiniBrute, which will then align its sequences and patterns with the beat of the Digitakt. If the Digitakt sends MIDI Start just as it starts its beat, then the MiniBrute will start playing in perfect time as well.
It’s important to understand that simply setting the same tempo on the two machines does not guarantee them playing in time. Each device has its own internal clock, and while you might set the Digitakt and the MiniBrute to 120 BPM, their actual “real” BPM might differ slightly (for example the Digitakt could actually run at 119.94 BPM and the MiniBrute at 120.02 BPM). This is because every device uses its internal clock as base for a chosen BPM. As a result, even if both devices start at the same moment and appear to be in sync initially, small discrepancies can accumulate over time, causing them to drift apart.
On the other hand, syncing one to another using MIDI Clock, will keep them in time forever (in theory). When the Digitakt sends MIDI Clock signals to the MiniBrute, the Digitakt’s internal clock becomes the reference clock for both devices, bypassing completely the MiniBrute’s internal clock. Every 24 MIDI Clock “ticks”, both devices move their sequence forward by exactly one beat, it’s as simple as that. So as long as they started on the same tick (using MIDI Start) and that no messages are lost, then they will stay in time forever.
Other Types of Clocks
MIDI Clock is not the only clock used in electronic music.
- Analog Clocks: Modular synthesiser systems often use analogue clocks to synchronise various modules. These clocks are usually represented by a series of voltage pulses rather than digital signals.
- DIN Sync (Sync24): Before MIDI was standardized, companies like Roland and Korg designed their own synchronisation system. One of them is called DIN Sync (also called Sync24) and is used by Roland vintage synthesizers, such as the TR-606 and TB-303.
- DAWs (Digital Audio Workstations) have their own timing which also needs synchronising with the hardware. This is often one of the biggest challenges, and while some may be able to follow MIDI Clock if sent over USB (called USB-MIDI), this is usually not accurate enough and will need dedicated hardware and software to get them in time with the rest.
- Metronomes: For live musicians, metronomes work exactly like a clock – they give a steady pulse that musicians follow, ensuring they stay in time during performances or recordings.
If you want to synchronise many types of machines, software, and musicians, it’s recommended to use a dedicated device to provide all those clocks. It will not only ensure they are in time with each other, but also make your life easier, giving you one point of control for the musical timing. Such devices are called MIDI Master Clocks, or simple Master Clocks. Our device Nome II is one of them, and it provides all clocks mentioned above.
Jitter, Latency, and Other unmentioned subjects
There are quite a few things which have not been mentioned in this blog post:
- MIDI Time Code (MTC) is another type of MIDI message used for synchronisation, which belongs to an entire other family than MIDI Clock. It is MIDI’s equivalent of the SMPTE timecode which is widely used in films and audio synchronisation, but not so much in electronic music.
- MIDI is massively used in computer software, in partcular DAWs. But for MIDI Clock and even MIDI notes which are both time sensitive, this can cause many issues. The MIDI data from computer to hardware will have to be sent over USB, which has its own timing issues. But more importantly, unlike dedicated hardware, computers are busy doing a million other things than handling MIDI, like moving your mouse, refreshing your screen, downloading a file from the net, playing audio in time, etc. This can create jitter and latency.
- Jitter is the precision of a clock, it’s how stable and regular the clock ticks are.
- Latency is a constant delay between two machines. This could be for example if two machines do not agree on which MIDI Clock tick is the first of the sequence, or if there is a constant delay within a machine from when it receives a MIDI Clock tick and the sound is actually produced.
See the blog post about Jitter vs. Latency to learn more about it.
In summary, using MIDI Clock is completely unavoidable as soon as you are handling more than one machine with time-base functions (sequencers, arpeggiators, loopers, etc). It’s an essential tool, it’s simple and reliable, and the best part is there is a high chance your machines already support it! Just configure one as the master, others as followers, plug a MIDI Cable, and you’re ready to sync 🙂