On Tue, 20 Jun 2006, Christophe Osuna wrote: > The current delay with "latency" is equal to a minimum (that depends > on the sound card) plus *two* times the period time. If I disable Yes, it's correct. Basically, you cannot avoid double buffering, so the total latency is: 1) one capture period 2) one playback period (actually being played) 3) moved captured period to playback buffer (not counted) So the latency should be 2 * period plus a hw latency as you noted. Everything is correct. Of course, you may get better latencies if you run "busy loop" on not-loaded system and immediately put captured data to playback stream, but it's not a correct behaviour in *nix. > * why is snd_pcm_link() mandatory? (no sound otherwise) It links playback and capture streams so only one start() is called. On hardware which supports hardware syncing, the DMA operation is started at same time for both stream. > * why two buffers of silence and not just one? You must wait one period to get data from the capture direction and then you have exactly one period time to put these data to the playback. As I said, you can get better results with busy-loop but it's bad implementation (but if you have a spare dedicated machine without other tasks, it might be an option). Jaroslav ----- Jaroslav Kysela <perex@xxxxxxx> Linux Kernel Sound Maintainer ALSA Project, SUSE Labs _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-devel