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 period size.
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.
cheers, Benno http://www.linuxsampler.org
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