Errrrr.... kinda sorta.... and yes and no...
An asynchronous USB port is a very specific thing... and, of course, only applies to the USB input.
Basically, in order to play a digital audio file or stream, which is really just a list of numbers, you need to add a clock.
Since USB audio data is delivered as packets of numerical data it does not include a clock.
In the old days DACs would "regenerate" the clock by "locking onto the rate the packets arrived and generating a clock that was a multiple of it".
Most used a PLL (phase-locked loop) to generate a clock that was a multiple of the packet rate.
The problem there is that, since USB was never intended to be an audio format, little consideration is given by the computer to delivering packets at a consistent rate.
Most of those early DACs used either multiple PLLs, or some other equivalent filtering scheme, to "even out" the result into a fairly smooth clock rate.
However, the result never really exceeded "pretty good", and was very dependent on how consistently the computer delivered the packets.
This is why early DACs were sensitive to things like computer optimization and USB cable quality.
(And remember that, from the computer's perspective, this was not much of a priority.)
With an asynchronous USB port, rather than "waiting for the data to arrive", the receiving device (the DAC) actively requests the data from the computer.
The DAC then creates its own internal clock to use with the data.
This means that the accuracy and consistency of the data clock no longer depends on the computer or the USB packet stream.
As long as the computer is fast enough supply data when the DAC asks for more everything works out well...
And, as long as the packets arrive in "readable condition", things like jitter, which is a variation in the timing of the packets, shouldn't matter either.
Note, however, that this ONLY applies to the USB input...
In contrast to this an ASRC (asynchronous sample rate converter) operates on the digital data
AFTER it enters the DAC and
AFTER the USB input circuitry.
This enables it to work for all of the digital inputs rather than just the USB input.)
The actual internal workings of an ASRC chip are very complex - and are performed by a powerful DSP engine inside the chip.
The following is a somewhat poetic sounding, but technically accurate, description of what an ASRC does:
At one of its inputs the ASRC chip accepts a digital audio signal and its accompanying clock.
At another input the ASRC chip accepts an "output clock signal".
(This clock signal is provided by a local high quality clock and is totally independent of the clock signal that goes with the incoming audio data.)
The ASRC then calculates a new output signal that is "what the incoming digital audio signal would be if it was at the sample rate of the output clock".(Basically it mathematically does the equivalent of converting the incoming signal to analog then converting the result back to digital at a new sample rate.)
The "cool part" is that, in this process, the original clock is totally discarded, so any jitter or timing errors present on the original clock are ignored.
As a result the signal that comes out of the ASRC is at a new sample rate... but the purity of its clock is
SOLELY dependent on the new clean output clock signal.
(So the ASRC both converts the sample rate and totally re-clocks the resulting output signal.)
The important distinction is that an asynchronous USB input provides a clean jitter-free signal coming into the USB input...
While the ASRC acts on the digital signals coming in from
ALL of the inputs, including the USB input, and the Coax and Toslink inputs...
This does mean that, when the ASRC is enabled, the USB input is being clocked at the DACs input, then re-clocked again by the ASRC...
And it also means that the ASRC works on all of the digital inputs and not just the USB input...
(However, since either alone does a near perfect job of providing a clean clock, you don't gain or lose anything much by "double cleaning" the USB input.)
Also worth noting is that there is a sort of confusion about the menu choices on the DC-1.
"Synchronous" really means "ASRC Disabled" ...
And "Asynchronous" means "ASRC Enabled" ...
The USB input on the DC-1 is
ALWAYS an asynchronous USB input.
Note that, in a DAC, the purpose of the ASRC is to re-clock the digital audio signal.
(I don't think it alters the bit depth... but I'm not totally sure... and it probably does so internally... and it really doesn't matter.)
The ASRC on the DC-1 re-clocks the incoming data to the same sample rate as it started at.
The ASRC on the XDA-2 re-clocks the data to a fixed sample rate of 96k.
(It doesn't really matter, since its purpose is to re-clock the audio to a high quality local clock, and the DAC chips in both units oversample anyway.)
I have an Emotiva Stealth DC-1 DAC. I’ve been told that “ASRC” isn’t the same as having an asynchronous USB input. But since the
absence of ASRC is defined as changing the input to “synchronous,” then what else would ASRC be?
KeithL ?
Thanks - Glenn
Postscriptum: ASRC is, as I understand it, a bit-
depth conversion protocol that operates by interpolation? In other words, if my DAC is locked to 32-bit input but is receiving a 16-bit audio stream, ASRC will interpolate the signal to provide the required 32-bit-depth signal to the actual digital-to-analog converter chip. Is this correct?
But to do that interpolation, again - as I understand it - the incoming signal is buffered, then converted by ASRC, and only then is it forwarded to the converter chip.
This differs from “asynchronous input” in that true asynchronous input buffers the incoming bitstream and then has the option to re-clock the
frequency of the of the stream prior to forwarding it to the converter chip. In other words, if my DAC is “locked” to 88kHz input and the incoming bit-stream is 44.1kHz, the DAC will buffer the incoming signal, and then re-clock it to 88kHz prior to sending it to the converter chip. Is this correct?
So even though my Emotiva Stealth DC-1 DAC
says I have a choice between synchronous and asynchronous USB inputs, the actual choice is between “taking whatever shows up at the DAC input” (synchronous) or else changing the bit-depth (only) via ASRC and even then, only if the DAC is set to a specific input-bit-depth. Is this correct?