All the streams are processed in chunks and the chunk/buffer/fragment size is a key factor in reliability of the transfer. Small chunks mean small safety margin for the OS to react in time. Have you tried increasing the buffer sizes of your chain? ASIO has a fragment size (flipping between two fragments), WASAPI is similar IAudioClient::Initialize (audioclient.h) - Win32 apps | Microsoft Docs