Help with ASIO4ALL unpredictable behaviour
I've recently purchased an Akai LPD8, and after installing ASIO4ALL V2, it seems that only one program can produce audio at any given time. Worse yet, even though I've unchecked "Allow applications to take exclusive control of this device", I still can't get Reaper to produce audio without restarting it and closing Foobar. Any help you can give is appreciated!
update: I managed to reduce latency to 20ms by using the Microsoft Sound Mapper as my device. This is a vast improvement over the 54ms I was getting out of WaveOut. Still, proper ASIO functionality would be greatly appreciated.
Posted Jun 4, 2012, 8:10 PM UTC · edited
53
I think the nature of ASIO is that is allows direct access to the hardware and only one program can use that at a time. This is pretty typical ASIO behavior from what you're describing.
Well, I suppose if you're after perfect response time, it makes sense. Maybe I'll use Sound Mapper for drafting, and ASIO for recording the final cut.
Pretty typical behavior for ASIO4ALL because it needs to bypass the Windows audio mixer in order to write data straight to the sound card's audio buffer. Mixing the ASIO audio with the application audio is complex and would slow things down on cards that already struggle with small buffer sizes because their drivers are too slow.
A sound card with proper ASIO doesn't have this problem, because the ASIO driver speaks to the hardware and can send a separate audio stream. This is mixed in with the regular Sound Mapper stream in the DSP on the sound card itself.
Mixing asynchronous streams is easy in a DSP because all the audio blocks from the driver are fed into the DSP, one sample at a time, at the current sample rate. The DSP has one input per audio stream, so that all concurrent samples are available for generating the next output sample. The DSP performs processing (simple addition in this case) and sends the final sample to the DAC, or a digital output, for playback.
Consumer cards often lack a DSP and can't do any processing on their own, so mixing and effects must be implemented in the driver software. It really isn't ASIO4ALL's fault that some extreme measures must be taken to even get acceptable performance at all.