<p><br>
>> The capture device may already started by other application (e.g. mic peak of pavucontrol), there is some audio already captured by driver but not read by server<br>
>><br>
>> At low latency, usb pointer incremented by number of frames in urb packet but hda intel increment by frames in dma brust<br>
>><br>
>> Do the result different when you use hda-intel as source and usb audio for playback?<br>
>><br>
><br>
> It depends on what delay you mean. The delay I am talking about<br>
> above stays the same, but as already said the individual sinks and<br>
> sources have additional small delays of their own. So moving the<br>
> source from HDA to USB increases the overall latency by about 1ms.<br>
></p>
<p>If the granularity of two sound cards are differenct? Hda  32 frames but usb use 44.1 frames ?? Do you have enough frames to start usb audio when using hda as source after receive 32 frames </p>
<p>><br>
>> It is unlikey module loopback can achieve lowest latency when you cannot control start,  capture and playback of alsa sink and source<br>
>><br>
>> It should have latency higher than snd-aloop,  alsaloop or latency.c<br>
>><br>
><br>
> The low limit of module-loopback seems to be around 5ms end-to-end latency<br>
> for HDA -> HDA. At this point tons of "memblock.c: Pool full" messages appear<br>
> in the log and going below 5ms will always lead to underruns.</p>
<p>#define TSCHED_MIN_SLEEP_USEC (10*PA_USEC_PER_MSEC) /* 10ms */ #define TSCHED_MIN_WAKEUP_USEC (4*PA_USEC_PER_MSEC) /* 4ms */</p>
<p>It is because hda use timer base scheduling which has min sleep and watermark </p>
<p>Are there any difference when enable/ disable timer base scheduling for usb audio? </p>