dechamps / FlexASIO

A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME.
Other
1.35k stars 72 forks source link

High callback timing error in VB-Audio ASIO Test #232

Open dechamps opened 4 months ago

dechamps commented 4 months ago

VB-Audio ASIO Driver Tester currently looks like this in FlexASIO 1.10a with the default config:

image

That doesn't look great. Presumably this could affect timing/sync in ASIO host applications, or perhaps even cause glitches.

I suspect this problem has always been there and is not a regression. My best guess is this is a consequence of the way PortAudio buffer adaptation works - especially since this test is full duplex. That being said, maybe there are ways to improve on this, e.g. by strategically aligning buffer sizes, or by improving PortAudio's internal logic.

dechamps commented 3 months ago

I have a suspicion this may be caused by PortAudio/portaudio#775: if the capture cursor can only advance in increments of 31.25 ms, then that would explain these "hiccups" as the ASIO buffer size is an awkward multiple of the actual granularity of the underlying DirectSound backend.

dechamps commented 2 weeks ago

My best guess is this is a consequence of the way PortAudio buffer adaptation works

Relevant: https://listserv.cuit.columbia.edu/scripts/wa.exe?A2=2409B&L=PORTAUDIO&D=0&S=b&P=557492