‹header›
‹date/time›
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
‹footer›
‹#›
First start with a refresh of some classic physics….
In my opinion too many people only focus on the latency for their audio application. It is nice to get sub 1ms latency but does it mean? Using headphones instead of sitting 3m away from your monitors does also instantly improve your latency with a whopping 9 ms. If latency is extremely large this will result is poor usability for the performing artist. Remember that the human brain seems to capable to manage this since people can play pneumatic or electro-pneumatic church organs, which have very high latency!
In reality there are more important timing related issues which need to be considered. As we all know the human brain uses the information from both ears to determine where the sound came from using the difference in arrival time. To get proper imaging the delay should be as constant as possible. More important, and definitely a challenge for MIDI like systems is that variable delay changes the timing of when notes are heard. Jitter on a drum track results in a different ‘groove’ or ‘feel’.
The same applies for the delay between different sources, which is typically more of an issue for software systems.
Remains one question… Everyone seems to chase low latency…. Why? Low latency is of
In this example setup we have an audio workstation which plays a MIDI to an external synth and plays an audio file. The sound from the file is mixed with the synth and a microphone. The resulting mix is played through the monitors and recorded using the DAW.
First of all; we need to define our target at which we want to sound everything together. Since we are interested in the mixer’s output we’ll use that.
•The mixer adds some delay, d1 to all our sources. in case of this analog desk this more of a theoretical issue though
•The microphone adds some more due to acoustics
•The playback stream is more interesting for us. We have buffering in the application, ALSA library, PCI buss and D/A converters
•Flow is similar for the MIDI stream, but in this example the MIDI device is relatively slow; a thing to consider!
•Similar to monitoring (including acoustic delay) and recording, where we again see the effect of buffering etc.
•
Adding a 2nd external midi device gives an interesting situation. The 2nd device faster than the 1st, resulting in different delay. Special handling in the MIDI dispatcher is required to compensate for this.
•
Some conclusions regarding delay management.
The whole deal in synchronisation is alignment of different streams. These streams would typically be your audio data or midi events, but could be anything else. -Important is to define an alignment point, usually the start of your song, recording etc. -Identify your unit of measure on one stream (e.g.. Quarter notes, samples or sample frames) -Do the same for your second stream. If synchronised, the alignment point and all individual anchor points should match -In this example you’ll notice that the 2nd stream is not keeping up with the 1st stream
-
-
By adjusting the media speed, e.g.. Number of beats per second, or samples per second etc. of the second stream the reference points can be aligned and synchronisation achieved. In this example, where m is larger than n, the stream needs to played faster.
•Which is done at the purple section of the stream.
•
A nice example of this kind of synchronisation using manipulation of the media speed can be seen with DJ’s that are beat mixing: they adjust the pitch control of their decks to align the records’ rhythms. In software systems the same can be done by using a derived clock using a software PLL (phase locked loop). An example of this outside musical applications is NTP (network time protocol).
•