The command below generates a tone signal out of the speaker and receives it back through the mic. Measuring the phase diff will reveal the round-trip latency.
alsa_delay hw:1,0 hw:0,0 44100 256 2 1 1
hw:1,0 refer to the recording device that can be retrieved from
arecord -l and
hw:0,0 refer to the playback device. Again can be retrieved from
aplay -l .
44100 is the sampling rate.
256 is the buffer size.
256 works best for me. Lower numbers corrupt the test and higher numbers just bring more latency to the table. Don’t know exactly what
output arguments are but
1 respectively works magically for me. I just tinkering around and found these numbers. No other number works for me.
1. Focusrite Scarlett Solo Latency: 2.5ms
2. Shure SM57 Mic Latency: 2.5ms
3. OverAll Delay: 14ms with non-RT mode
You can tinker around the effect of latency with
pactl load-module module-loopback latency_msec=15
To end the loopback mode
pactl unload-module module-loopback
As Always Useful links
Arun Raghavan – Beamforming in PulseAudio
Arch Linux Wiki – Professional Audio, Realtime kernel
Leave a Reply