TLDR: USB is typically the best option for most modern DACs and you should probably use it even if you have an I2S DDC as you’ll likely get better jitter performance.
If you’ve gone down the rabbithole a bit when it comes to audio source gear, you’ll no doubt have come across DDCs and seen plenty of people talking about how using I2S is better than USB…but is it? Why or why not?
Well, lets first talk a little bit about how DACs actually handle the data they receive.
DACs need two things to function:
- Data, to tell them WHAT to convert
- A clock signal, to tell them WHEN to convert it.
Just having the data is no use if you convert the right samples at the wrong time. The image below shows a (very exaggerated) example of how the same sample data can be converted with incorrect timing, to result in an incorrect analog output:
DACs will have a clock internally, this is a component that produces a fixed frequency output, and is effectively the equivalent of a metronome, telling your DAC exactly when to convert the data. Better clocks will have lower levels of variation in their timing output, and this variation is called “Jitter”.
DACs use a format called ‘I2S’ internally for data communication, which uses one line for the serial/bit-clock, one line for the ‘word’ clock (which tells the DAC whether the data currently being provided is for the left or right channel), and then lines for the data itself:
How does USB work?
When using USB, the DAC is in full control of timing. It uses its own internal clock, and in fact the USB host device doesn’t provide any clock signal of its own and doesn’t typically even feed the DAC data in a constant stream. The DAC communicates with the USB source/host to tell it when to send more data, and this data is put into a buffer.
The DAC’s USB implementation then converts this to I2S format, and feeds it to the DAC according to the timing dictated by the DAC’s internal clock.
The reason the PC/USB source has no impact on jitter is best explained by the analogy of a post-box. If you go out and check your mail every day at 5PM, then it doesn’t matter what time the postman came and delivered your mail (audio samples). As long as it is in your postbox (buffer) by the time you go to check it, you get your mail at 5PM, according to your own watch, every day. In fact even if he delivers tomorrow’s mail early, you can just wait until 5PM tomorrow to open it.
How do AES/SPDIF/I2S work?
BUT, you can also feed a DAC with ‘synchronous’ connections like AES, SPDIF and I2S. Rather than operating ‘asynchronously’ like USB, these feed both data AND a clock signal to the DAC. They are one-way communication methods and the DDC/source doesn’t even know if something is on the other end.
The DAC simply has to convert this data according to the timing set by the clock signal received from the source device. It is no longer using its own clock as the master clock.
This means that if your SPDIF/AES/I2S source device has higher jitter, the DAC itself could perform worse since it is using that clock signal for its operation.
To use the previous analogy:
If your postman knocks on your door and physically hands you your mail each day, and you open it immediately, then if the postman’s own watch is accurate and he knocks on your door at 5PM each day, you’ll get your mail at 5PM each day. But if the postman sometimes comes at 4:30PM and sometimes 4:45, there is variation or ‘jitter’ in when you get your mail.
So why use SPDIF/AES/I2S?
The simple reason is typically compatibility. Some devices don’t have USB output and so SPDIF/AES are sometimes the only option.
In terms of quality, in years past, USB implementations in DACs were…often not great. And this meant that even if they had good clocks, the complexities of managing a buffer, USB communication in general and various other factors meant that using USB would actually get you measurably worse jitter performance than using a decent AES/SPDIF source.
For example here is the crane song solaris’ jitter via USB:
And here is the crane song solaris’ jitter with SPDIF input from the APx555B:
The jitter with SPDIF input is notably better.
This was the main reason why a lot of people found that older DACs did perform better with a good DDC, because…well…they often did.
Why is I2S better than AES/SPDIF?
So why the hype around I2S? Why is it better than AES or SPDIF?
Well, this is because AES and SPDIF encode the clock signal on the same transmission line as the data itself using a method called bi-phase mark coding (BMC). This is a little bit beyond the scope of this post, but a quick summary is that BMC ensures there is always an edge transition in the signal at each period (grey lines in the image), and if the signal also has a transition DURING that period, it’s decoded as a ‘1’, if there is no transition DURING that period, it is decoded as a ‘0’:
This allows you to provide data, and a clock signal on one conductor, but it also means that now, the actual data you are providing can have an impact on the accuracy of the clock signal. Especially when using options like optical TOSLINK as the rise/fall times of many TOSLINK transmitters are not the same.
(NOTE: Word clock is decoded using ‘preample’ data chunks which tells the receiver 'hey this is for the left channel! And the receiver then converts everything to I2S and feeds it to the DAC.)
So enter I2S: simply have the bit clock, word clock and data all on separate lines as we saw in the black/gold image further above. This avoids any data-dependent clock interference, means there’s no ‘decoding’ the DAC has to do on the receiving end to convert SPDIF back to I2S, and the result is typically that the clock signal is kept more intact and you get jitter performance.
I2S IS usually a better option than AES/SPDIF if you have it, but there is still a lingering problem in that you are carrying a sensitive clock signal over an external connection.
Why you should use USB over I2S.
We already discussed how older DACs did indeed often perform measurably better with synchronous inputs due to USB implementations at the time being kinda bad.
But this is really no longer the case. I cannot think of a single DAC I’ve measured in quite some time where USB wasn’t the best performing input, and the reason is often quite simple:
It’s a LOT easier to end up with better jitter performance when you can keep the clock signal path short.
DACs with excellent jitter performance often have the clock extremely close to the DAC itself. This minimises the trace length and allows the clock signal received by the DAC itself to remain more intact. See the Ferrum WANDLA below for example:
Now you could get a DDC with a theoretically perfect clock, absolutely no jitter or phase noise, it’s a gift from God himself. BUT, the moment that clock signal then has to be passed through two physical connectors, a cable that may or may not be the correct characteristic impedance, and across two devices with possibly different ground potentials etc, and you end up with a clock signal that is no longer all that ‘perfect’ by the time it gets to the DAC itself.
Take the Laiv Harmony as an example. They also have the Laiv uDDC, which in terms of the jitter measurements at the output of the DDC itself is excellent, it’s an extraodinarily low jitter DDC which is great, but again, even if we hook this up via I2S to the Laiv Harmony, you’re now carrying a clock signal over an external connection, and so if we go and measure the jitter performance of the Harmony this is what we see:
Via USB:
Via uDDC I2S:
There are additional jitter components visible when using I2S.
Summary:
Jitter performance in DACs is not just about having a good clock, it’s about keeping the signal FROM that clock as intact as possible. Things like encoding the clock in with data on SPDIF/AES, or having to carry the clock signal over an external connection with AES/SPDIF/I2S all have some level of negative impact on the integrity of that clock signal.
With USB, your DAC is in full control of timing, and most modern DACs do achieve better performance with USB than they do via I2S or other inputs.
This post also didn’t even touch on the complexities and possible challenges of systems like PLLs, synchronous buffers or ASRC which all can be used to try to mitigate jitter on the input signal, but the short answer there is that even if you have an infinitely effective PLL, since it’s using the DAC’s own clock as a reference, it’s only ever going to get as good as the inherent performance of the DAC’s clock. And so you might as well just use USB and let your DAC use its own clock directly without those additional challenges.
Whether you use USB, I2S, or SPDIF, the data is always going to get converted to I2S at somepoint as that is what the DAC itself actually needs. And it’s just a question of how to get the cleanest resulting clock signal via I2S, which in practice usually means having the clock as close to the DAC as possible and avoiding any issues with external connectors or multiple devices.
ie: use USB
A USB to I2S DDC and your DAC’s own USB implementation are literally doing the same thing, converting the received data to I2S format, but one of them has to provide a clock signal over an external connection which is not ideal.
There is one other reason why DDCs can provide a benefit though which is noise immunity. Many DDCs do also offer full galvanic isolation internally, which will block any noise from your PC getting through to and possibly affecting the performance of the DAC. So even if you get slightly worse jitter with a DDC some may still find it’s overall better just because they’re now getting the benefits of full noise rejection.
BUT, there are now excellent USB isolators available for not much money. The JDS Synapse is one of the cleanest sources I’ve measured besides the Intona 7055-C, and it’s $49. So you can buy one of these, use USB on your DAC, and be confident you’re getting the best jitter performance possible.
You’ll of course see many people say that X DDC provided a big benefit for them, but my answer there would simply be that it’s either because the noise rejection benefit is outweighing any degredation in clocking (which you can do on USB with a JDS synapse or Intona 7055-C), they are using a DAC which has a sucky USB implementation (unlikely for anything new), OR it’s simply placebo. DDCs can be expensive and so a lot of people will say it sounds better because our senses are fallible and spending money on stuff often leads to a perceived improvement regardless of whether there is any difference, or as is the case with many DDCs; it’s actually slightly worse and we are just saying that the difference must be an improvement.