Minimum reasonable latency Was: Re: ZynAddSubFX was: Re: [linux-audio-dev] some new soundfiles on-line
sbenno at gardena.net
Sat May 14 09:58:45 UTC 2005
Since we cannot increase the speed at which the sound travels and even
DACs add some latency (1msec or so)
I see any effort to reduce latency below 2-3msec quite useless.
We know that halving the number of frames (soundcard period size) we run
the audio software at is doubling the IRQ rate
and you can quickly achieve a point where a significative chunk of CPU
is burnt in the IRQ handlers.
It could change if CPU get considerably faster but then you begin to hit
other limits, eg
the PCI DMA minimum transfer sizes which limits your minimum soundcard
Plus what happens if your speakers are 1m away from the listener ?
Another 3msecs added to the total
"latency between hitting a key and hearing the sound".
If you move the speakers another 50cm away from the ear ? Another
1.5msecs delay get added.
Humans are more sensitive to differences than to absolute values.
Eg in physics you feel the acceleration but not the speed.
So if you take into consideration the real latency between hitting a key
and hearing the sound it's made up of several
components. You could try to do a test, compare the latency you feel
between having the speakers at 1m and 1.5m away from
your ears (blind A/B test). I guess it's not that easy to figure it out.
Plus if you are playing a blazing fast hardware synth over a midi master
keyboard we know midi adds 1.1msec per
note-on command. If you play an eg 8 finger chord, assuming you hit all
keys the very same moment,
the chord is spread over an interval of 8.8msecs and the 8th key starts
to sound 7.7msec after the 1st key.
Yet the whole world is using MIDI keyboards all over the place.
I heard Peter Gabriel uses a Powerbook with a multi GB sample (PMI
postpiano) that is streamed from disk,
it uses the NI Kontakt player and it cannot certainly achieve
unreasonably latencies (I think Mac users usually
get good performance at 3-6msecs).
I've read a real piano has some latency too (AFAIK in the range of a few
msecs) so they are already "used" to latency.
Organ players too.
I think the idea of achieving 0msec latency is simply crazy and a waste
of resources, every natural instrument has
a builtin latency and it's certainly not in the usec range. Humans are
more sensitive to jitter but jitter can be minimized
using MIDI timestamping and higher priority midi sensor threads so it's
not an issue in PC based synths/samplers.
Plus due to the nature of the sound, low frequency oscillations take
longer to get recognized since in theory you
need to hear a full cycle of the wave to "measure" the frequency.
at 100 Hz it means 10msec ... an eternity for your standards :)
Of course some instrument players, especially those that play percussive
sounds are more sensitive than
others, but the question is how small is this time ? Is there scientific
data around that can state:
"if latency of the virtual percussion instrument is higher then X then
the instrument is unusable for 30% of professional musicians" ?
Take a drummer: that's the distance between the human and the pads ? up
to 70cm ?
time between "pad triggered to drummer hearing the sound" = ? 2msecs of
air travel + time to to excite the pad.
I'm not an expert in the field but I assume that if you hit a pad with
the stick the pad first goes down, then the elasticity of the pad
comes into play , absorb the kintetic energy of the stick, which is
bounced back and at this point the drumpad starts vibrating
(albeit for only a short time). Of course you hear the first half cycle
too, when you push the drumpad down with the stick, but
the question is what's the time it takes for the drumpad to bounce the
stick back and start sounding ?
It would be interesting if someone that knows more on the matter (eg
measuring the latency sensitivity of drummers) could
give us his opinion on the matter.
Jens M Andreasen wrote:
>The good people across the street at Clavia, who actually do commercial
>synthesizers, considers anything but "now" to be slowish. Their sense of
>"now" is somewhat below 0.3ms
>Untill we get hardware keyboards that measures the impact at rock-bottom
>(like a clavinet), there will always be an oily slur between the player
>and the loudspeakers. Having the trigger point in mid-space (as for
>contemporary keyboards) isn't excactly helpful, and this is also where I
>get the 0.3ms approximation from. It simply ain't worth it to go below
More information about the Linux-audio-dev