Colin Fraser, maker of Cirklon, wrote a nice post on the Sequentix forum as answer to the question if anyone knows how the Cirklon compares to other machines for timing accuracy. I’m just copy and pasting here, but I found it an interesting read.
Hope he doesn’t mind…
I feel an essay coming on...
Before starting work on Cirklon, I did a fair amount of research into timing, so I think I have a pretty good take on it.
I'm open to debate, so long as it's based on empirical evidence (e.g. double-blind listening tests) and not just an assumption that a linear improvement in timing precision leads to a linear increase in perceived tightness.
There are two important factors in the tightness of a sequencer - the internal accuracy of the timing of output events, and the minimum transmission latency.
The most significant of these for a hardware MIDI sequencer is always going to be transmission latency.
I found timing differences between multiple notes that are supposed to be playing at the same time are much more audible than variations in the timing of a regular single note.
MIDI takes just under 1 millisecond to send a note message, or 0.64ms with running status.
MIDI gets an unfair amount of blame for bad timing, IMHO. A 0.64ms timing spread between ‘simultaneous’ notes is not going to be audible unless the attack times of the sounds are close to or shorter than the delay.
When you’re dealing with a synth sound, the oscillators across different voices at different pitches will be at different points in their phase, so even at super fast attack times there would be a variable amount of note-on click across different voices that will mask MIDI timing spread.
Practically speaking, many MIDI synths add more processing latency than the MIDI delay anyway.
Where MIDI does fall down is with percussive sounds. Triggering simultaneous drum sounds with varying MIDI delay will often lead to phasing effects changing the character of the combined sound.
Even if it’s not audible as a timing error, you can hear it as a tonal change.
That’s why I trigger my drums with the dedicated drum trigger output with synchronised trigger pulses (boards will be available soon).
The way to get the best timing from MIDI is to use as many MIDI busses as possible and spread instruments across them.
The fewer notes that are being sent on each MIDI port, the lower the average delay on each one is, and the closer together all the notes on one beat will be.
For a sequencer with multiple ports, you should start with a single instrument on each port, and when/if you need to start doubling up, try to mix a synth that is more often used for pads or less attacky sounds, with a monosynth that might be doing snappy or precussive stuff. And keep the monosynth on a track with higher processing priority. On Cirklon, tracks are processed in ascending numerical order.
Assuming the internal timing accuracy is not a factor, I think it fair to say that in real terms (i.e. actually making music with it, as opposed to doing a laboratory analysis of timing), the MIDI sequencer with the best timing accuracy is the one with most independent MIDI outs. That puts Cirklon ahead of most other hardware sequencers.
I’m not aware of anything with more than 5 ports other than the Yamaha QX1, or a custom MIDIBox sequencer.
Coming to the internal timing accuracy, there are different approaches to timing events in a sequencer, and the approach used will affect the underlying timing precision.
I’ve seen the results of the timing tests on Inner Clock’s site, and there’s some very useful information there.
But, given that we’re using MIDI, and listening to the results with human ears, there’s a point at which improving timing accuracy offers no further benefit.
A typical pair of human ears will be separated by about 6 inches.
The extra distance that sound must travel to the far ear, if it is coming directly from one side of the listener, is about 8 inches - the length of the path the sound wave takes round your head.
This leads to what is called ITD - interaural time delay. It is in the order of 0.75ms for a typical head.
This time delay is used by the auditory system to extract spatial information.
That’s why a binaural (dummy head) recording sounds so much more 3-dimensional than stereo - our ears use both amplitude difference and ITD to localize sound.
Stereo mixing usually only uses amplitude.
The upshot of this is that rhythmic deviations around or below your maximum ITD can not be perceived as a temporal difference.
ITD information is encoded as spatial information before it passes up the auditory system, so the perceptual timing resolution at higher levels cannot exceed it.
You can demonstrate this very easily. Put your head halfway between a pair of speakers, with a rhythmic sound playing.
Move your head 6 inches nearer to one of the speakers.
Your head is now 1 foot closer to one of the speakers than the other, so you are hearing the sound from the nearer speaker almost 1 millisecond in advance of the other speaker.
Did you hear a spatial change, or did you hear the drum sound coming from the nearer speaker with an echo in the other speaker ?
I did various a/b listening tests to see what level of rhythmic error I could reliably detect in a rhythm, and I couldn’t reliably identify an error of 1 ms.
Note that this is purely the ability to discriminate a timing error in a regular pattern of isolated sound events.
On that basis, I set the heart-beat period of the Cirklon sequence engine at 250us - at least 4 times better than I could hear.
Tempo is calculated to a much higher precision (1/65536th ms), but the timing of individual events is quantised to a 250us window, such that typical timing jitter is in the order of 125us before MIDI delay.
If you’re interested in testing your own hearing, I can upload some test sounds and point you to the WinABX double-blind audio testing software.
The CVIO output on Cirklon has a much higher bandwidth than MIDI.
For that reason, I chose to deliberately delay sending of the data to the CVIO until after the MIDI data had a headstart.
This is so that a MIDI receiving instrument with minimal processing latency is likely to be in closer sync with any gates being triggered on CVIO on the same tick.
The change of state of the CVIO gate outputs is synchronised across all outputs for the same clock tick, since the simultaneous triggering of sounds was found to be so important.