MIDI Clock Swing

The ability for a MIDI Clock to "swing" is a feature request that comes up from time to time.

I'm writing this to get my thoughts out from both an engineer's and musician's perspective, since I often find myself torn as to whether a MIDI Clock should swing at all.

First off, it'll help to define "swing".  In music it generally refers to a style of playing that comes from a sense of leaning into a push/pull relationship to the rhythm.  Or another way to think of it:  It's straight and it's triplets at the same time, but it's also neither.  (I know, glad I could clear that up, right?)

But that's not exactly the "swing" I'm going to be talking about.  I'm referring to the making of music with sequencers, where algorithms are used to try and mimic this feel.  It's a subtle distinction, but an important one since this article is about MIDI Clock.

Let's talk about clock briefly. Reading this right now, there are clocks and timers working behind the scenes on your device to keep everything in motion and happening.  It could be the scrolling of the text on this page, an animation graphic you see somewhere else on your screen or the music you may be playing.

Let's use the example of an animation to join the discussion between clock and swing.  Say there's an infinitely bouncing ball animation.  The ball could be moving in a linear way:  It goes up and down at the same speed, and at the top it changes direction in a instant.  It's following the timing of a linear clock, but it's not very convincing as a bouncing ball.  Instead, to be convincing, the ball must slow down on its way up, seem to hang for just the briefest time, and then speed up on its way down.  That is similar to having a swing algorithm.

Here is the really important part:  The clock on your computer is not slowing down just to show the swing in that animation.  The clock remains steady.  The application of swing is a much higher level concept which relies on always having that steady clock as its reference.  What would happen if the clock itself "swung" and the animation simply followed along?  This would work for the animation, but there would be all sorts of unintended consequences throughout the rest of the system since other components rely on the clock as well.  They would also be effected by the clock's swing.

Relating this to MIDI Clock

So, MIDI Clock's main purpose is to send a steady rate of clock "pulses", based on the tempo, at a frequency of 24 PPQN (pulses per quarter note).  The equivalent of 64th Note Triplets.

It's definitely not as low-level as the clock I was discussing above, but the intention of MIDI Clock is similar.  The MIDI Sequencers that are listening to a steady stream of MIDI Clock data can decide for themselves whether to "play it straight" or add an algorithmic twist for swing.  They can even do more than simply move timing around, they can add an algorithm to the note velocities as well, which is also a very important part of going after a feel.  MIDI Clock can't do that by itself.

MIDI Clock is also global, which means any alteration of its timing is going to be acted upon by any other device listening in the MIDI signal chain.  Just like the animation example, there could be unintended consequences.  You can't guarantee that every device will know what to do when it perceives an "unsteady clock" once the clock starts swinging.  Especially if the device has anything to do with playing or recording audio files while following MIDI Clock, which some devices like audio loopers do.

So why did I say I was torn by this?

It sounds pretty clear from an engineering point of view.  But making music gear isn't just engineering.

There are couple factors that make it less clear.  There are products out there that have added, or at least attempted to add, swing to an outgoing MIDI Clock signal because it is technically possible, if not completely logical.  Prospective buyers see that and it sounds like a good idea.  And they want to check if competing devices will do the same.

MIDI Clock also runs inside a closed-system.  It can be tested with a musician's selection of gear and can't effect anything beyond that, so it may be possible that all their gear reacts well enough to a MIDI Clock that is swinging and simply does what the user wants.

And the other factor is my own musician side.  If I have a device or a sequencer that I really want to use, but it doesn't have its own swing feature, maybe having the MIDI Clock swing instead is a suitable method for a last resort.

So I do think if there is enough demand, I could find myself adding swing to the output of a device like CLOCKstep:MULTI.  As of this writing though, it's not on the roadmap.

(BTW, I purposely avoided addressing sync methods that rely on advancing steps (aka:  Pulse Per Step) or lower resolution signals that target specific gear.  Those signals are not global, they can be routed only to the gear that you want, and the gear following that sort of signal has a very good chance of acting predictably.)

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.