Am 09.12.2012 13:00, schrieb Fons Adriaensen:
Apart from that, syncing cards requires more than just a common
clock, you also need a single 'start' signal distributed in HW
('start' meaning that the next sample will be at position 0 in
the first buffer). If the start signal is just distributed in
software, then no matter how fast this is done there will always
be corner cases when one card sees the start in the current clock
period and another sees it in the next, resulting in a one sample
delay difference. I've even seen this happen between the capture
and playback sides of a single card (which ALSA sees as separate
devices).
That's a property of the audio server and client, resp. ASIO driver and host. I have tested this only extensively under ASIO, and there it seems to be the case that the loop is started with all child devices assumed in sync. From what I understand there is no messaging whatsoever should the sync state of a child device change during operation. When devices are seen independently, as you describe (which is even more the case under legacy Windows driver models), buffers may be filled asynchronously, and it may take several Interrupt cycles until the streaming really starts. In fact this means that there is no common start position at all, with basically any kind of offsets in place.

BR

Sebastian
_______________________________________________
Sursound mailing list
Sursound@music.vt.edu
https://mail.music.vt.edu/mailman/listinfo/sursound

Reply via email to