aws a écrit :
I have measured such things precisely when the application required it. Its also fairly trivial to "hear" the latency by clapping into a microphone and monitoring it over headphones after it passes through the system. A 10msec difference is quite audible.
A general method for latency measurement of any system is described in this paper:
Matthew Wright, Ryan Cassidy, Michael Zbyszynski, Audio and Gesture Latency Measurements on Linux and OSX, Proceedings of ICMC 2004, Miami
or just connect ãudio input to audio output of the soundcard and take a measure with some patch magics.
___________________________________________________________________________ Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire. http://fr.mail.yahoo.com
On Sun, 17 Dec 2006, Patco wrote:
aws a écrit :
A general method for latency measurement of any system is described in this paper: Matthew Wright, Ryan Cassidy, Michael Zbyszynski, Audio and Gesture Latency Measurements on Linux and OSX, Proceedings of ICMC 2004, Miami
or just connect ãudio input to audio output of the soundcard and take a measure with some patch magics.
Exactly. That's what I said a few mails ago. Try doc/7.stuff/tools/latency.pd ... however it doesn't seem to be super precise. Do you have any ideas on how to make it more precise?
And then how is one supposed to be able to get the above paper? It doesn't seem to be online.
Apart from measuring the echo time of a click like what Miller's patch already does, the only other way I've thought of, is playing a linear chirp, and then mix it with an offset copy of itself using adc/dac as the delay line. This will cause a beat phenomenon, whose frequency can be quite precisely measured (yes?).
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada
Mathieu Bouchard a écrit :
Do you have any ideas on how to make it more precise?
maybe with measuring the phase difference between a periodic signal sent to DAC and the same received in the ADC instead of timing clicks? Or guessing the frequency of differencial waves between both signals, and then getting the latency with some math magics? or filling a table with a [phasor~] signal and counting the number of samples until the signal in the filled table is != 0 ?
___________________________________________________________________________ Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire. http://fr.mail.yahoo.com
On Sat, 2006-12-16 at 20:38 -0500, Mathieu Bouchard wrote:
On Sun, 17 Dec 2006, Patco wrote:
aws a écrit :
A general method for latency measurement of any system is described in this paper: Matthew Wright, Ryan Cassidy, Michael Zbyszynski, Audio and Gesture Latency Measurements on Linux and OSX, Proceedings of ICMC 2004, Miami
or just connect ãudio input to audio output of the soundcard and take a measure with some patch magics.
Exactly. That's what I said a few mails ago. Try doc/7.stuff/tools/latency.pd ... however it doesn't seem to be super precise. Do you have any ideas on how to make it more precise?
the attached patch has sample precision, but it requires some user interaction to give you a result (and [dirac~] from zexy).
roman
I use the cc~ external. The time domain function is not so efficient for large sizes, since it's an O(N^2) algorithm. The freq domain version uses a fourier algorithm, so it uses only O(N*log(N)). use [cc~ 1024] for time-domain where +/- 1024 is the bounds of the cc~ use [cc~ f] for one-block at a time measurements in freq. domain and [cc~ r] for running frequency domain cc~ the frequency domain stuff is actually a cross-covariance, rather than cross-correlation. The peak you get from cc~ will not be very clearly defined, because the loudspeaker has reactive elements, phase shifts, etc.... I'm still thinking about the normalization routine to turn the cross-covariance into a cross-correlation (it doesn't matter if all you're looking for is a peak). I'm not sure how to do it yet I would suggest using the running cc~ with a large enough block size to cover the latency and sound sources that are much much longer than that. You'll probably have to get the latest version from Jamie's flib CVS directory http://pure-data.cvs.sourceforge.net/pure-data/externals/postlude/flib/src/ The "zero" location is blocksize/2, so whatever result you get for the peak, you'll want to subtract blocksize/2.
Chuck
On Dec 16, 2006, at 8:38 PM, Mathieu Bouchard wrote:
On Sun, 17 Dec 2006, Patco wrote:
aws a écrit :
A general method for latency measurement of any system is
described in this paper: Matthew Wright, Ryan Cassidy, Michael
Zbyszynski, Audio and Gesture Latency Measurements on Linux and
OSX, Proceedings of ICMC 2004, Miamior just connect ãudio input to audio output of the soundcard and
take a measure with some patch magics.Exactly. That's what I said a few mails ago. Try doc/7.stuff/tools/ latency.pd ... however it doesn't seem to be super precise. Do you
have any ideas on how to make it more precise?And then how is one supposed to be able to get the above paper? It
doesn't seem to be online.Apart from measuring the echo time of a click like what Miller's
patch already does, the only other way I've thought of, is playing
a linear chirp, and then mix it with an offset copy of itself using
adc/dac as the delay line. This will cause a beat phenomenon, whose
frequency can be quite precisely measured (yes?).
Such a technique would allow for the measurement of jitter as well,
which really should be considered at least as much as latency.
.hc
News is what people want to keep hidden and everything else is
publicity. - Bill Moyers