[Guide] Is I2S really better than USB?

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.

11 Likes

Just as an additional note to this post: because USB does NOT carry a clock signal used for audio, and in fact the data is usually not sent in a constant stream but in chunks as requested by the DAC itself (Which is then buffered in the DAC), USB ‘reclockers’ are of no benefit.

Using higher quality DDCs or SPDIF/AES/I2S ‘reclockers’ CAN provide an improvement if the reclocker’s clock output is cleaner than the clock signal it originally received, but with USB, a USB ‘reclocker’ is basically an audiophile name for a USB repeater.

It will not improve or affect jitter performance at all, and the best that it could do is either help to make a longer USB connection more stable (since it’s an active repeater), or maybe provide some noise filtering/rejection.

But again, given as the JDS synapse is literally $49 and has been measured and shown to be extremely clean, buying expensive USB reclockers is a silly thing to do.

To be honest I do wonder if JDS would sell more Synapses if they advertised it as a USB reclocker…but I’m glad they didn’t

9 Likes

Have you found jitter to be different depending on the sampling rate, i.e., if hqp is better through a ddc or with usb?

It’s not too uncommon for a DAC to have differing Jitter performance at 44.1khz vs 48khz base rates. Mostly because the majority of dacs will have one clock for each base rate and there can be differences between them or In the signal path/implementation of the clocks.

But generally I’ve not seen many instances where Jitter changes much based on higher/lower rates of the same base rate.

If the DAC in question offers galvanic isolation for its USB input (e.g. Schitt Unison USB), is there any further benefit to getting a USB isolator? Or is jitter already minimized in the DAC itself?

Isn’t the jitter in both the measurements above so far beyond the audible realm that comparisons are basically academic? I feel like anything in 2025 that has enough jitter to actually be audible is basically broken.

2 Likes

As mentioned in the post, a USB Galvanic isolator (or any other USB cleanup device/reclocker) won’t help with jitter directly. Since there is no clock signal being provided over USB and the DAC is just running off its own internal clock.

A device like the synapse just prevents noise from getting through to the DAC. Which can then have knock on effects on performance. (This COULD include poorer jitter performance since clocks are relatively dependent on a stable reference voltage, so noise/interference can make them perform worse, but it’s an indirect effect.)

But, if you already have USB galvanic isolation in your DAC, you probably don’t want to use an external isolator as well. The reason being that this then leaves both ends of the USB connection ungrounded and this can make it way more susceptible to connection issues and dropouts.

Another slight issue though is that there are a lot of DACs with “galvanic isolation”, but different approaches. Some DACs have “galvanic isolation” in that they literally just disconnect the ground line.
Some like the Schiit audio products use transformer based galvanic isolation, which will fix ground loops and some other issues, but unfortunately still allows HF noise to pass through. (Hence why some people have reported still being able to hear GPU noise through the Bifrost 2 etc despite it having galvanic isolation on the Unison USB.)
Ideally you want full and complete optical/silicon-dioxide isolation of all lines, data, power and ground, which is what the JDS synapse, Intona, and some DACs internally like the Holo May, Denafrips Terminator, Laiv Harmony etc do.

So the Schiit stuff is a bit of a special situation as it IS galvanically isolated, but not in a way that’ll actually block all noise transfer, so you may still get a benefit using a synapse. But you also might then encounter some connection unreliability. This is usually only an issue at really high sample rates though so it may be best to experiment and see which you find works best.

4 Likes

Simple answer is we don’t know.

Much like distortion, jitter is not a single higher/lower thing, there are different types/frequencies/structures of jitter and phase noise, and the limited studies we have don’t all agree with eachother, have some areas of methodology (or simply available tech at the time, DACs have gotten a LOT better since the 1998 study and so it’s also a big question mark as to whether higher performance modern DACs will not be masking lower levels of jitter in ways older, higher noise/distortion DACs would have done.) that could be improved.

And then we don’t have ANY study as far as I’m aware that looks at the audibility of different types or even just frequencies of jitter.

So for the moment, whilst there comes a point where you can probably say “it’s somewhat unreasonable to assume jitter in the 10ps range could be audible”, we also don’t actually have as conclusive an answer as to when jitter stops being audible as we’d like.

But also, there are many instances where changing the DDC, or using an external 10Mhz clock (which is a bad idea for reasons I’ll likely explain in another post at somepoint but I wrote a bit about it here: Gustard X26 Pro Measurements (F20 Firmware + 10Mhz clock) - GoldenSound ) causes jitter to increase quite substantially.

1 Like