Windows: should you use DirectSound(default), WASAPI or ASIO

From Xylio
Revision as of 14:31, 13 April 2013 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Note: this article only applies to Windows (specifically Windows 7 and above)

The general rule of thumb is: if possible try to select in this order: ASIO, WASAPI, DirectSound (default mode).

  • DirectSound - this is the standard audio mode on Windows (along with MME but we don't use that in FutureDecks). It always works but it almost always works only in stereo mode and outputs only. What this means is that even if you have a soundcard with multiple inputs and outputs, you will most likely get working only 1 stereo output (without the other outputs and inputs). The latency is extremely big (usually between 50ms and 80ms) so you can't properly scratch or do any true real-time work. Also, you can't use timecodes (since you don't have any inputs and the latency is very bad). Getting separate heaphones/speakers signals is tricky since you almost always only get a single stereo output (maybe you can use split mode -- use left channel for speakers and right channel for headphones). You should use this only if your audio device doesn't support the other modes.
  • WASAPI - this is a lot better than DirectSound as it provides less latency (usually between 10ms and 30ms) so it's more suitable to real-time use. It also provides access to both inputs and outputs and multiple channels (if it's properly configured in Windows). There are some problems (like out of sync between outputs and inputs, pops, clicks, stutters, etc) in full-duplex mode (using both outputs and inputs) on some audio devices but in general it works ok. You should use this if your soundcard doesn't have an ASIO device.
  • ASIO - use this whenever you can. This is by far the best audio mode possible in Windows. It provides extremely low latencies (usually between 1ms-10ms) so it's perfect for timecodes, scratching and pretty much anything that you want to be real-time. Unfortunately not all audio devices (soundcards) have a driver for this. You need to check the CD that came with the device or look at the manufacturer's website for a specific driver for your device. Alternatively, you can use ASIO4ALL (a software which simulates ASIO for an audio device without one) but you might get mixed results - it might work perfectly or it may not. You should always choose this interface/mode when possible.

So, once more: use ASIO if it's available for your audio device. If not, use WASAPI and only as a last resort use DirectSound.