Different apps present the WASAPI Exclusive/shared option in different ways.
Push vs. event refers to two slightly different ways of implementing a WASAPI client. It only matters for reliability/latency and does not affect bit-perfectness.
That points to a bug in Multitone where it is not actually using WASAPI Exclusive even though the "shared" option is unchecked. This is what I suspected all along.
@pkane?
The device doesn't matter. CAudioLimiter
always runs on
all shared streams (unless you used
my hack to remove it system-wide), i.e. WASAPI Shared, DirectSound, and MME. CAudioLimiter
never runs on exclusive streams, i.e. WASAPI Exclusive, Kernel Streaming, and of course native ASIO.
No, that's not how it works. What is more likely is that the specific format Reaper is trying to use is not supported by the hardware device/driver (Topping in this case). It works in shared mode because Windows will convert to a supported format automatically. It could also be a limitation in Reaper, i.e. there is something it doesn't like about the behavior of the Topping device in exclusive mode (I don't know, could be that it can't negotiate a buffer size, could be anything). Basically it looks like an incompatibility between Reaper and the Exclusive mode of that specific device. Other apps might behave differently and might be able to open the Topping device in WASAPI Exclusive mode.