Home Computer Audio Asylum

Music servers and other computer based digital audio technologies.

Right - and the problem was latency (long)

Latency is a delay caused by I/O processing times. With the Windows audio stack, for example, there are delays from the time a sound is recorded to the time a sound is played back. For playback, this is not really a problem. But for a musician or recording artist dealing with multitrack recordings it's a HUGE deal. If you are, for example, adding in a guitar track to a mix, you will be monitoring the mix while playing along with it. In this case, any delays in the recording process cause the guitar track to be laid down at an incorrect position in time - out of sync if you will. This is why people using audio software to record and mix music want fast fast (almost gamer power) computers and use ASIO - to minimize the "latency delay" in milliseconds (ms).

So how does ASIO do it? ASIO streams audio from A to B bypassing the more complex audio stack in (windows) operating systems. Computers have complex audio stacks because they need to - various software and system sounds need different entry points into the stack, and also mixing so that sounds can occur simultaneously. ASIO drivers will map audio streams at the lowest possible level in the audio stack - at the "trunk of the tree" you could say - the "Hardware Abstraction Layer" which is the lowest level at which software can communicate with hardware. This "shortcut path" is why ASIO devices can achieve latencies as low as 1ms which is negligible for most applications.

For audiophiles, the latecy delay issue is a non-issue. For us, ASIO is neat because it allows us the most direct path to the hardware - and avoiding any needless mixing of the bitstream with other streams, intentional or otherwise. If the two streams that would otherwise be mixed have different sample rates, the stream with the lower sample rate would be resampled to that of the higher sample rate and then mixed. It's a myth that modern audio stacks (in windows) resample everything to 48khz. This is an old old version of the XP Kmixer. Newer versions resample the lower sample rate to be mixed to the higher sample rate to be mixed. Still, resampling and mixing when trying to play ONE STREAM ONLY is just silliness - we don't need to do it and we shouldn't if we can avoid it. And it's easy to avoid once you know your specific OS and what software drivers to use.

Kernel streaming is similar to ASIO - but different. ASIO is commonly what they call "single client" - device X hardware inputs into software Y and out on device X hardware outputs. ASIO streams can only be mixed with third party drivers/mixers that support mixing of ASIO streams. So even with an ASIO you can envoke mixing but (wow) you'd need to put some effort into this. I once played streams from Foobar and Winamp using ASIO and got the streams to mix, because I was in a multiclient environment. When the first ASIO streams plays and the second "attempt" at streaming (2nd source) fails ("failure to access ASIO device") you know you're setup is single client. This drives many people (especially home recording artists with multiple I/O boxes) NUTS.

Enter ASIO4ALL. ASIO4ALL is a "bridge" it can bridge together interfaces and software using ASIO, kernel streaming and even WDM driver streams(windows driver model). This is called a "generic" driver, but really the individual components need their own drivers - ASIO4ALL is just a software (realtime) bridge between devices of different stream types.

ASIO4ALL is neat because it not only bridges different types, but it allows mapping to multiple devices of a single type. This is especially handy to get around single-client ASIO devices - so one can map a single ASIO input stream to two ASIO output streams, each on a separate ASIO device. This is a fancy way of saying ASIO4ALL can make a single client ASIO environment into multiclient. It can be buggy, though, because it's generic and the end user has to monkey around a lot with various buffer sizes and latency compensation settings. Sometimes it works like a charm and other times it does not work all that well. It's seemingly very dependent on it's compatability with the device drivers in question. Personally, for audio, I try and avoid using this extra "software bridge" as I have even experienced strange effects like clock-skew problems where streams clocked by different clock sources are linked, but not synchronized. This results in an increasing timing error that eventually leads to a loss of synchronization. This can be mitigated with software (like Virtual Audio Cables) which have a clock speed error adjustment but WOW-WEE now we're getting aweful complicated. It's sure fun to play with though - helps one learn things about what can go wrong and how to fix it.

So that's all I know (and want to know) about ASIO. Some of my lingo may be not 100% correct, but you'll get the jist of it!

Cheers,
Presto


This post is made possible by the generous support of people like you and our sponsors:
  VH Audio  


Follow Ups Full Thread
Follow Ups
  • Right - and the problem was latency (long) - Presto 03/29/1115:30:36 03/29/11 (2)

FAQ

Post a Message!

Forgot Password?
Moniker (Username):
Password (Optional):
  Remember my Moniker & Password  (What's this?)    Eat Me
E-Mail (Optional):
Subject:
Message:   (Posts are subject to Content Rules)
Optional Link URL:
Optional Link Title:
Optional Image URL:
Upload Image:
E-mail Replies:  Automagically notify you when someone responds.