An introduction to computer audio
Universal Serial Bus (USB) is a serial bus standard to interface devices. USB was designed to allow many peripherals to be connected using a single standardized interface socket and to improve the plug-and-play capabilities by allowing devices to be connected and disconnected without rebooting the computer (hot swapping). Other convenient features include providing power to low-consumption devices without the need for an external power supply and allowing many devices to be used without requiring manufacturer specific, individual device drivers to be installed.
A nice story about the development of the USB interface: The D/A diaries: A personal memoir of engineering heartache and triumph by Hitoshi Kondoh.
USB is a computer bus like any other but for some reason it inspires people to make all kind of funny products.
USB wedding ring
USB audio is very popular.
One of the reasons is that USB audio is part of the USB standard and as a consequence native mode drivers are available in all the popular OS (Win, OSX and Linux).
Connecting a USB audio device is a matter of plug&play.
USB audio is a flexible solution as any PC offers USB.
If you use a laptop this is probably the way to go if you want to improve on the on-board sound card.
The audio is routed to the USB.
This is a matter of choosing the USB audio device in your media player.
The on-board sound card is bypassed; in fact you don’t need a sound card at all.
The USB audio device is your (outboard) sound card.
Today the resolution of USB audio ranges from 16 bit/ 32 kHz to 32 bit/ 384 kHz.
A lot of DACs are still limited to 16 bit/ 48 kHz max.
The data transfer from the PC to the DAC can be done in adaptive or in asynchronous mode.
In adaptive mode the DAC adjust its timing to the rate the data is pouring in.
In asynchronous mode the DAC keeps its timing constant and controls the amount of data send by the PC. By design asynchronous mode eliminates input jitter.
A lot of people think USB audio is limited to 16 bits/48 kHz max.
A lot of (cheap and sometimes not so cheap) USB DACs are indeed limited to this resolution.
This is because the manufacturer decided to use a simple and cheap of the shelf hardware solution.
Another common misunderstanding is the specification of the bus (USB 1,2 or 3) and the USB audio standard (1 or 2).
This standard allows for 24 bits/96 kHz max.
The standard itself doesn't impose any limitation on sample rate.
Class 1 is tied to USB 1 Full Speed = 12 MHz
Every millisecond a package is send.
Maximum package size is 1024 bytes.
2 channel * 24 bit * 96000 Hz sample rate= 4608000 bits/s or 576 Byte/ms
This fits in the 1024 byte limit.
Any higher popular sample rate e.g. 176 kHz needs 1056 bytes so in excess of the maximum package size.
All operating systems (Win, OSX, and Linux) support USB Audio Class 1 natively.
This means you donít need to install drivers, it is plug&play.
All support 2 channel audio with 24 bit words and 96 kHz sample rate
It is downwards compatible with class 1.
USB Audio Class 2 additionally supports 32 bit and all common sample rates > 96 kHz
Class 2 uses High Speed (480 MHz). This requires USB 2 or 3.
As the data rate of High Speed is 40 X Full speed, recording a 60 channel using 24 bits at 96 kHz †(132 Mbit/s) is not a problem.
From mid-2010 on USB audio class 2 drivers are available in OSX 10.6.4 and Linux.
Both support sample rates up to 384 kHz.
It is unclear if Microsoft is going to support USB Audio 2.
You need a third party USB class 2 driver on Windows.
Using High Speed USB for playback †there are no limits in resolution.
The data send over the USB must be transformed to a format a DAC (the chip doing the DA conversion) does understand. This can be SPDIF or I2S.
This is the task of the receiver chip.
Adaptive mode 16 bit units often use the Cmedia or TI (PCM270x) based chip sets. These are not programmable and usually only support 16 bit and 32, 44.1, 48 kHz sample rate.
An example of how this chip-set performs compared with asynchronous USB can be found below.
24 bit adaptive mode DACs needs a programmable design (TAS1020 or other USB Audio Controller).
This chip enables 24 bit/ 96 kHz over USB.
Chips like the TAS1020 are limited to full speed.
You can't do high speed as needed for USB audio class 2.
96 kHz is the upper limit when using native mode USB Audio Class 1 drivers.
A USB audio class 2 or a custom driver is needed to run 176/ 192 kHz and higher.
An example is the Tenor TE8802L by Galaxy Far East Corp.
Today you can buy complete USB-receiver modules like XMOS.
Basically a USB to I2S or SPDIF converter.
A couple of these interfaces can be found here.
Data is exchanged over USB using one of the four possible modes:
Transfer modes explained in detail.
When the computer sends the audio stream to an USB port, if first reads the data from the hard disk and caches blocks of the data in memory.
It is then spooled from memory to the output port in a continuous stream (Isochronous mode).
Data is sent out in frames every millisecond.
This happens whether there is any data in the frame or not.
The rate at which the frames go out is determined by a oscillator driving the USB bus.
This rate is independent of everything else going on in the PC.
In principle this guarantees a constant flow of the frames.
In practice the frames might not be filled properly with data because some program simply hogs the CPU or the PCI.
Anti virus polling the internet at high priority are a well known example.
Isochronous transfer can be done with three possible types of synchronization modes in the USB audio device.
There must be some kind of synchronization between the PC and the DAC to avoid buffer under/overrun.
The clock driving the DAC is directly derived from the 1 kHz frame rate.
This mode was used by the early USB audio devices.
They were limited to 48 kHz and pretty jittery.
In this mode the timing is generated by a separate clock.
A control circuit (sample rate guesser) measures the average rate of the data coming over the bus and adjusts the clock to match that.
Since the clock is not directly derived from a bus signal it is far less sensitive to bus jitter than synchronous mode, but what is going on the bus still can affect it.
It’s still generated by a PLL that takes its control from the circuits that see the jitter on the bus.
In this mode an external clock is used to clock the data out of the buffer and a feedback stream is setup to tell the host how much data to send.
A control circuit monitors the status of the buffer and tells the host to increase the amount of data if the buffer is getting too empty or to decrease if it’s getting too full.
Since the readout clock is not dependent on anything going on with the bus, it can be fed directly from a low jitter oscillator, no PLL need apply.
This mode can be made to be very insensitive to bus jitter.
The warm reception in the audiophile world of asynchronous USB as developed and promoted by Wavelength inspired other brands to offer asynchronous USB DACs .
Asynchronous mode is not better by design but by implementation because you can implement a top quality (low jitter) clock in the DAC.
There is actually a good example of this case of its the implementation of the clock thats important, not the asyncness itself that is important. The recent inexpensive Musiland devices use an asynchronous protocol but then use a frequency synthesizer to generate the local clock rather than use a fixed frequency oscillator. The result is jitter that is actually worse than some of the better adaptive implementations!
The best way to get the most out of a dac chip is to put 2 audio oscillators right next to the dac chip. Buffer the oscillators and send them back to the USB controller to use to create the I2S (or other audio data stream L/R justified, DSP whatever) and this will give you the best response and the lowest jitter.
What many companies are doing is using the Frequency Synthesizer to create the audio oscillators. Basically these are frequency multipliers that can create any frequency and in the case of the TAS1020 down to 4Hz resolution. The problem with a Frequency Synthesizer is that the jitter can be as much as 100x that of a fixed oscillator. When enabling the oscillator in the TAS1020 also adds noise to the audio data stream because of the noise it fixes to the power supplies.
So choose wisely what you buy and ask the correct questions.
It's not about the code... though all of ours is different, it may have an effect on the sound. But more so it has to do with the hardware and how that functions.
J. Gordon Rankin
Not everybody agree that asynchronous is better.
Centrance, manufacturer of adaptive mode solutions, is one of them.
Some manufacturers may lead you to believe that Asynchronous USB transfers are superior to Adaptive USB transfers. This no more true than saying that you "must" hold the fork in your left hand. If you know what you are doing, you will feed yourself with either hand.
Async USB provides a simpler way to implement a low jitter DAC relative to adaptive mode USB. For the cost of a small number of lines of firmware code, you reduce the amount and complexity hardware needed and potentially reduce the cost of the hardware needed for a high quality result. Most thinking engineers appreciate simplicity and the potential for low cost designs that deliver the goods.
You can find plenty of bovine excrement in the marketing of all kinds of high-end gear. Marketing products using buzz words without supporting detail or test results works when the audience is technically ignorant.
Asynchronous USB looks to be the perfect solution.
You configure your PC for bit-perfect output and the DAC takes care of the timing totally independent of the timing of the PC.
But there are posts on the Internet claiming that even in case of an async USB DAC what is happening upstream is still affecting sound quality.
Almost all recent offerings of quality DACs have asynchronous USB input.
One issue with USB is that it sends regular bursts of info like the start of frame packet - "The SOF packet consisting of an 11-bit frame number is sent by the host every 1ms ± 500ns on a full speed bus or every 125 µs ± 0.0625 µs on a high speed bus". If the timing of this shifts or is variable, this could elicit a different & variable reaction from the USB receiver & translate into a different & varying jitter or noise spectrum. Making the PC end as solid & stable as possible without undue processing could be one factor in ameliorating this variation. It might not be the low level of jitter that we notice but the variation in jitter - that's one reason why I say that the measurements we currently run seem not to be capable of picking up these issues or we are not directing them to the correct target for measuring.
Some companies don’t use USB audio in isochronous transfer mode.
They implement their own solution using bulk mode transfer.
Bulk mode is asynchronous by design.
As it is bulk mode,
In case of isochronous mode it is exactly the reverse.
As long as the DAC is the only one connected to an internal hub, bandwidth is in general not the problem using USB high speed mode.
Inherent to a vendor specific solution is that he either supports your OS or not.
The advantage of USB audio is that it is natively supported by Win, OSX and Linux.
However in case of USB audio class 2 on Win you need a third party driver too.
Anyway this solution does audio over the USB without using the USB audio of the operating system.
Jim Lesurf did a nice experiment.
He measured the analog out of a DAC Magic when feed by its own adaptive mode USB and by a asynchronous USB to SPDIF converter (Halide).
The differences between adaptive (USB direct) and asynchronous (Halide) are clear.
According to the author not only measurable but also audible. 
Archimago  measured the jitter performance of a adaptive mode USB and a async mode.
adaptive mode USB
Asynchronous mode USB (CM6631A
Indeed, the jitter performance improves with asynchronous USB
Cable length between full speed devices is limited to 5 meters. For a low speed device the limit is 3 meters.
As the signal degrades proportional to the length of the cable, a short cable is often recommended.
Other says this can put a source of RFI (the PC) to close to the USB-DAC.
As file based audio is gaining momentum and many believe asynchronous USB the way to go there is a growing market for audiophile grade USB cables.
The question of course is why a cable can have any impact on sound quality.
Some say that improved jitter performance of a cable can make a difference.
Others say that the reason we use asynchronous USB is exactly to have zero input jitter at the DAC so all what is happening upstream is irrelevant cable included.
Audiophile USB cables are becoming as controversial as high-end power cords.
The Limitations of digital audio processors and cables create timing
errors known as jitter, which remove portions of the audio signal and
replace them with noise and distortion. Cables tend to round off the
square waveforms of the signal, making them less clear to the processor,
thus increasing jitter. This rounding effect varies greatly among cables
and a truly superior digital audio cable can make great improvements
in sound quality.
Another manufacturer talking some marketing bull shit?
They do have a point.
Digital is indeed sending fully analogue electrons over a wire.
And indeed, the block pulse degrades with the length.
A good digital cable is one who minimizes this degradation.
The USB 2.0 specification lists a maximum cable length of 5 meters (~15 feet). This is marginal with the best of cables, and many "audiophile grade" cables will run into problems even with far shorter lengths. There have been many credible reports of improved sound quality with some cables, but these have almost all been in systems using Class 1 Audio, with a maximum data rate of 12 MHz. When the data rate is boosted by a factor of 40x to 480 MHz, there are very few "audiophile" cable companies that have the tools and experience to ensure good results.
Computer Audio Playback Overview - Ayre
This is an easy test.
Connect your high speed USB device, e.g. a hard disk using your audiophile grade USB cable. If hi-speed mode (480 Mbps instead of 12 Mbps, the old USB 1 standard) fails, it is a bad DIY digital cable not even compliant with USB 2 standards.
A clear and well written step by step guide to setup and USB DAC using XP, Vista or OSX can be found at the Ayre website.
Setup for Win7.
Setup for Vista.
You can check if your asynchronous USB DAC is really asynchronous.
Audio devices supporting asynchronous transfer mode should have an extra 'endpoint descriptor' with
bmAttributes = 0x5 (USB_ENDPOINT_TYPE_ASYNCHRONOUS).
Svyr has more
A simple way to find out is to use the Thesycon USB Descriptor Dumper
Some users complain about dropouts when playing USB audio.
This might be due to different devices sharing the same USB-Hub.
If your audio and your graphics card are on the same hub, the bandwidth required by the graphics might cause the audio to stutter.
Anti-virus programs polling the internet with high priority might interrupt the audio too.
Trouble shooting USB audio is covered here.