Minimum reasonable latency Was: Re: ZynAddSubFX was: Re: [linux-audio-dev] some new soundfiles on-line

Jens M Andreasen jens.andreasen at
Sat May 14 10:48:34 UTC 2005

On Sat, 2005-05-14 at 11:58 +0200, Benno Senoner wrote:

> Plus what happens if your speakers are 1m away from the listener ? 
> Another 3msecs added to the total

There is a rule of thumb regarding when you need a conductor, which is
about when the the band exceeds 8 people. It is not the anarchy that
naturally evolves, but the distance between the furthermost band members
causing the problem.
> "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.

Correct, and having my speakers across the room (so I can hear the
tweeters) instead of sitting on top of them adds to the sloppyness of my
playing ability.
> 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).

This is an unreasonable comparison. You simply do not attemt to play
funk on a Böesendorfer. 

.. and 6ms is approaching unbearable. You fall back to 2ms on Mac for
performance reason, no further.

> 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.

There is latency on a piano, yes. But now, listen to Jan Hammers "Red &
Orange" in its first release played on piano and compare that to the one
he did with the Oberheim 4voice. Piano version is sloppy, no? I would
dare say that it is unpossible to reach that kind of perfect timing he
did on synth, using a physical piano.

Latency is not the enemy though. Jitter is.

Jitter is not a problem with a physical grand though (because the
distance to the strings is a constant.) The actual weight is.
> Organ players too.

Yes, big rooms and oscillators living in parallel universes... I can't
do it meself, getting utterly confused, even from the slightly random
left/right panning of the main positive.

But I used to play the clavinet, and therefore naturally excused :)

> 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" ?

The only scientific measure I can quote is kind of old and only measures
"simultanious" versus "not simultanious".

The result of that research was that events happening within a 20ms
timeframe are "simultanious" and events outside of that timeframe is
"not simultanious".

Both you and I know that we'll have to do better than that in order to
produce an instrument that is playable in a relaxed manner.

> 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

You get the hi-frequency attack on contact with surface. The "oomph"
comes later, delayed as you describe.

> (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.
> cheers,
> Benno
> Jens M Andreasen wrote:
> >Clarificaton:
> >
> >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
> >that point. 
> >
> >(yet ...)
> >
> >  
> >
> >>>Lee
> >>>
> >>>      
> >>>

  c[]  //  Jens M Andreasen

More information about the Linux-audio-dev mailing list