Electronic music - notes on audio latency
Contents
Why latency exists (the long version)
Hardware, and the nature of digital audio
Why larger buffers are generally useful
On drivers and APIs
Windows APIs
Some history
On ASIO wrappers
This article/section is a stub — probably a pile of half-sorted notes, is not well-checked so may have incorrect bits. (Feel free to ignore, fix, or tell me) |
ASIO usually refers to native ASIO, a driver talking directly to the sound hardware and exposing the ASIO API, much of the point being ignoring windows's sound architecture completely.
ASIO wrappers are different. They open a sound card via a regular Windows sound API (in practice typically WDM/KS or WASAPI), force settings that are lower latency, and present it via ASIO API.
Yes, this is counter to ASIO's shortest-path-to-the-hardware principle.
And yes, you will only get latencies that were always possibly to get from that underlying driver API anyway.
So why add a layer?
Convenience, mostly. Having one central place to configure a small-buffer, possibly-exclusive way to these existing APIs means figuring out those settings just once, in the wrapper's settings, rather than for every DAW-soundcard combination you have, which is usually more work, and the config details may vary somewhat between DAWs which can be more fiddly and/or confusing.Sso using that wrapper can also be easier to explain to people.
There's also some DAWs/software that ignore everything not ASIO, sometimes just because they have a divide and conquer approach: Figure out low latency in something external, and talk to that. (Some supply such a wrapper themselves)
There's a few more useful reasons hiding in the details, like
- you can often force WASAPI card to be fairly low-latency without exclusive mode, which means you don't have to dedicate a sound card, to a DAW that only talks ASIO. Which is pretty convenient e.g. when playing piano on a laptop on the go.
- some ASIO wrappers can talk to on sound cards for input and another for output (at the cost of slightly higher latency), which DAWs talking native ASIO will typically refuse to do (for latency reasons).
As far as I can tell
- FL Studio ASIO (a.k.a. FLASIO) is a WASAPI wrapper.
- Comes with FL studio, also useful in other DAWs
- can talk to different sound cards for input and output
- ASIO4ALLv2 is a WDM/KS wrapper.
- needs to force exclusive mode
- can talk to different sound cards for input and output
- "Generic Low Latency ASIO Driver" is similar to ASIO4ALL but with different options
- from Steinberg, comes with Cubase
- MAGIX ASIO - (verify)
And there appear to also be ASIO multiclient wrappers, basically ASIO in ASIO.