Download Fidelizer Explore Nimitra
Are you computer audiophile? If so, Fidelizer will help you enjoy the music on computer even more.

Tag Archive for digital audio

The effect of sampling jitter in digital audio and why it’s still not a resolved case in highend audio

Sampling jitter is one of the most misunderstood thing about digital audio. It’s very complexed issue without clear solution and happen in everywhere. Today I’m going to teach how sampling jitter happens in digital audio world and why it’s still a problem in highend audio till this day.

First of all, let’s talk about how sample rate works. PCM will send pulse signal containing bit depth and sample rate. For CD format, it has 16 bit depth and 44100 sample rate. In 1 second, there’s 44100 samples and each sample holds 16-bit information to determine amplitude level.

In ideal world, each sample in CD format should arrive at exact 22.675737 microseconds interval to reproduce analogue signal according to design. But in real world with limitations and errors within hardware and software level cause the gap between each sample to be not the exact 22.675737 microseconds like we expect.

 

May be a graphic of blueprint and text that says 'data November 2004 doc.: IEEE 802. 11-04/1458r0 What IS sampling Jitter in an audio system? ? clock DAC amp Sampling jitter is the variation in the clock timing for the audio signal in ADC, DAC, or asynchronous sample rate converter (ASRC). Ideal sampling Sampling with jittered clock Submission Slide4 Miki et t: al.. Sharp'

 

When transmitting data, those samples will arrive with timing variation. It happens randomly with no predictable pattern how long each sample will arrive before or after the expected interval. This is called jitter and it happens on every single individual sample, thus it’s called sampling jitter.

This kind of jitter is just like a noise in digital audio world. You can’t expect magic anti-jitter trick to eradicate them completely. Some technique like phase locked loop or PLL can work as locking phase of signal to have like exact 44100Hz instead of 44150Hz or 44050Hz. Otherwise, you may have incorrect sampling rate locked like some devices due to lack of proper jitter management.

 

May be an image of digital audio player and text that says 'USB-Audio- KingRex USBDAC uSB-Audio-KingReoxUSBDACUD-38 UD-38 Status: Running Speed: High Connection: via Hub Type: Async Frequency: 192031 Hz'

 

How can we tackle with sampling jitter issue? Can’t we just reclock every single sample and have perfect zero jitter? Well, there’re two big issues about tool we need but don’t have yet.

  1. We need reference clock with exact no jitter at all like 0.0000ppb precision The highest precision clock we can find in audiophile market is around 3-5ppb. For clock in bluetooth and network components, they’re mostly used around 50-100ppm from what I found in stock environment after modding products in my experience. Getting 0ppb won’t be possible anytime soon as a consumer market product.
  2. We need powerful processor to handle whole process under very strict time frame. For 44100Hz as reference, you need to finish analyzing jitter and forward each sample with corrected time with in 22 microseconds. There’s no way you can sync to reference clock and align the deviation then forward corrected time alignment sample in that limited time due to hardware limitations. Even if you somehow can do it with 44100Hz, nowadays people use high-res too so for things like 192000Hz sample rate, all process need to be done in 5 microseconds. And if you were to do this on DSD256, you need to finish it in 85 nanoseconds. None seems possible with today’s technology at the moment.

 

May be an image of text that says 'November 2004 CD Transport doc.:I IEEE 802. 11-04/1458r0 Where to evaluate jitter? Serial data PLL AES/EBU data clock DAC IF jitter amp amplifier non-linearity Sampling jitter Variations on power supply Jitter component evaluation Jitter is typically evaluated by sampling jitter on DAC. AES/EBU IF jitter may increase sampling jitter on DAC. Papers [3] evaluates the jitter components in the output sound from speakers, so that they can estimate the amount of jitter with what we hear, which includes the variations of DAC power supply or the of the amplifier. Submission Slide8 Miki નਾ al.. Sharp'

 

That’s why there’s still many die hard analogue fans who still prefer vinyl over modern digital audio format. Because some problems can’t be resolved completely and even with the best digital audio equipment that cost fortune to own one today, there’s more to invest on analogue domain for better satisfaction.

Some could say $30k CD player is crazy expensive but there’s a guy who’s willing to spend $30k for one cartridge to use with his $100k turntable and $50k pre phono. And for them, digital doesn’t bring what they can enjoy like they do from their vinyl collection, at least not until digital audio is advanced enough to tackle more serious problems better.

 

May be a graphic of floor plan, blueprint and text that says 'November 2004 How to remove jitter? use doc.: IEEE 802. 802.11-04/1458r0) RX buffer fullness Audio/video interface This method introduce a large amount of output jitter Adjust the output rate by looking for the fullness of the RX buffer ΊΧ bufter MAC/PHY 802.11n 802. MAC/PIIY Submission Slide 12 802.11n 802. MAC/PIIY Miki el et al.. Sharp'

 

Some people may introduced silver bullet approached in the past like just buffering it to eliminate jitter. It happened with Async USB before that we have companies claiming using Async USB will eliminate jitter completely with buffering technique but that actually increased output jitter in buffer instead and later on it was proven that you still need high precision clock on Async USB to handle buffering with less jitter. The same goes to ethernet and wi-fi as described in IEEE before by Sharp.

The most effective ways to reduce sampling jitter is to reduce the chance of it happening and scope of range of sampling jitter to happen. For example, if you upgrade clock from precision 100ppm to 10ppm, you’ll likely have less sampling jitter from jittered clock with higher precision. And upgrading components in network circuit can reduce noise that can affect jitter indirectly.

 

May be an image of text that says 'November 2004 doc.: IEEE 802. 802.11-04/1458r0 How to remove jitter ?- ?-use use Sharp S proposal Time stamp Audio/video interface + delay We can achieve high performance due to high precision and high frequency of the time tone signal TX butfer MAC/PHY High granularity timer (50ns Onsprecision High granularity timer 50ns precision) PLL Time Time 802.11n 802. MAC/PIIY tone Submission tone Slide 14 802.11n 802. MAC/PIIY Miki et al.. Sharp'

 

I’m not sure if this will make sense to you but this principle of sampling jitter will happen in everywhere and will affect signal in digital to analogue process to certain degree. From my experience sampling jitter effect was confirmed from my own observation in USB Audio, USB/SATA storage, ethernet, wireless network, and other outputs in DDCs for computer audio.

The only place where I couldn’t detect audible jitter is when I setup WAN bridge from modem to another router. It seems signal before being modulated won’t be affected by jitter as much as signal after modulation. Or maybe problems with network lies in home environment more than from ISP.

So, the easiest solution for network improvement everyone can consider is to upgrade clock module in hardware equipment with higher precision clock and maybe capacitors too with lower impedance to reduce noise in network circuit. I’ll one of my works as example for reference. Inside red box is clock module being upgraded with noise reduction sheet applied.

 

May be an image of text

 

I hope this will help audiophiles understand how digital audio works better based on data from professionals like IEEE and Sharp. I have others but I picked this one as they’re mostly known and respected.

Measuring digital audio qualities of bit-perfect playback with Diffmaker’s correlation depth

It’s been a challenge to measure digital audio’s qualities and most of the time audiophiles don’t know any measurement outside RMAA’s analog metrics and got failed evaluations as you can see below:

 

Fidelizer - RMAA Measurements

 

This was done through pure software environment using VB-Audio Virtual Cable to make sure no hardware’s error is involved. After lengthy research in pro audio’s communities, I found DiffMaker being used in this thread below.

 

Evaluating AD/DA loops by means of Audio Diffmaker – Gearslutz Pro Audio Community

 

DiffMaker was used to test for audible effects of

  • Changing interconnect cables (compensation for cable capacitance may be required)
  • Different types of basic components (resistors, capacitors, inductors)
  • Special power cords
  • Changing loudspeaker cables (cable inductance may need to be matched or compensated)
  • Treatments to audio CDs (pens, demagnetizers, lathes, dampers, coatings…)
  • Vibration control devices
  • EMI control devices
  • Paints and lacquers used on cables, etc.
  • Premium audio connectors
  • Devices said to modify electrons or their travel, such as certain treated “clocks”
  • Different kinds of operational amplifiers, transistors, or vacuum tubes
  • Different kinds of CD players
  • Changing between power amplifiers
  • General audio “tweaks” said to affect audio signals (rather than to affect the listener directly)
  • Anything else where the ability to change an audio signal is questioned

There’s interesting metric called ‘Correlated Null Depth’ that can detect most subtle changes as measurable data. Archimago refers to this metric as below if you’re following his measurement tests.

 

The higher this value, the more correlated the 2 samples are (ie. the “closer” they sound).

 

Now I hope you understand better about DiffMaker and correlation depth. Let’s proceed to the methodology part. After a few runs of Diffmaker’s tests for a few weeks, this was the method I used in final version.

1. Setup master file and audio playback/recording through digital domain. In this case, I’ll use VB-Audio Virtual Cable, foobar2000, and Audacity on Windows 10.
2. Prepare aligned master files with silence added. For basic demonstration, I’ll make 5 samples of aligned/before/after wav files with Audacity at 24/96 format (10ms latency).
3. Route bit-perfect recording from Virtual Cable’s master audio stream with Foobar2000’s WASAPI output to Audacity’s WASAPI input, export audio as before.wav
4. Use free version of Fidelizer at Purist user level with updated foobar2000 configuration from Fidelizer’s User Guide, record again, export audio as after.wav
5. Compare results using Audio DiffMaker with master file as reference.

Testing machine ran on AMD FX8350 with 8 cores 4.2GHz and 8MB cache for L2/L3. I also used high quality motherboard with 16GB RAM and Platinum grade PSU. Here’s the result from my experiment.

 

Perfected master

parameters: 0sec, 0.000dB (L),  0.000dB (R)..Corr Depth: 300.0 dB (L), 300.0 dB (R)

This is ideal result of exact comparison with 300.0 dB of correlation depth

 

Aligned master

parameters: -3.5sec, 0.000dB (L), 0.000dB (R)..Corr Depth: 175.6 dB (L), 174.0 dB (R)
parameters: -4.5sec, 0.000dB (L), 0.000dB (R)..Corr Depth: 168.5 dB (L), 168.6 dB (R)
parameters: -5.5sec, 0.000dB (L), 0.000dB (R)..Corr Depth: 167.4 dB (L), 167.5 dB (R)
parameters: -6.5sec, 0.000dB (L), 0.000dB (R)..Corr Depth: 166.3 dB (L), 167.0 dB (R)
parameters: -7.5sec, 0.000dB (L), 0.000dB (R)..Corr Depth: 172.5 dB (L), 176.1 dB (R)

Average: 0.000dB (0.000-0.000)..Corr Depth: 170.35 dB (166.3-176.1)
Median: 0.000dB..Corr Depth: 168.55 dB

Dropped to nearly 50% of perfect data but still above 150 dB. With 9.8 dB swing range, it’s safe to assume about 5% threshold for evaluation.

 

Before Fidelizer

parameters: -1.581sec, 0.001dB (L), 0.001dB (R)..Corr Depth: 90.6 dB (L), 91.5 dB (R)
parameters: -1.184sec, 0.001dB (L), 0.001dB (R)..Corr Depth: 87.2 dB (L), 87.3 dB (R)
parameters: -1.018sec, 0.001dB (L), 0.001dB (R)..Corr Depth: 88.1 dB (L), 88.1 dB (R)
parameters: -946.4msec, 0.001dB (L), 0.001dB (R)..Corr Depth: 88.3 dB (L), 86.3 dB (R)
parameters: -686.3msec, 0.001dB (L), 0.001dB (R)..Corr Depth: 90.2 dB (L), 87.6 dB (R)

Average: 0.001dB (0.001-0.001)..Corr Depth: 88.52 dB (86.3-91.5)
Median: 0.001dB..Corr Depth: 88.1 dB

Real world result arrived with quite narrowed range. It’s only  5.2 dB between min/max of correlation depth. At least it’s more reliable than aligned result.

 

After Fidelizer

parameters: -563.4msec, 0.001dB (L), 0.001dB (R)..Corr Depth: 104.0 dB (L), 95.9 dB (R)
parameters: -1.025sec, 0.001dB (L), 0.001dB (R)..Corr Depth: 93.5 dB (L), 94.0 dB (R)
parameters: -1.286sec, 0.001dB (L), 0.001dB (R)..Corr Depth: 87.2 dB (L), 87.3 dB (R)
parameters: -1.025sec, 0.001dB (L), 0.001dB (R)..Corr Depth: 88.1 dB (L), 88.2 dB (R)
parameters: -856.4msec, 0.001dB (L), 0.001dB (R)..Corr Depth: 90.4 dB (L), 87.6 dB (R)

Average: 0.001dB (0.001-0.001)..Corr Depth: 91.62 dB (87.2-104.0)
Median: 0.001dB..Corr Depth: 89.3 dB

It started great with over 100 dB but the rest seems to wear down over time a bit because I also opened Chrome to chat in Facebook while during the experiment for daily usage tests. Strict tests for high quality result may lead to faking data abuse from people who can’t do a proper job.

With Fidelizer’s optimizations, we detected 3.1 dB increment of average and 12.5 db increment of maximum correlation depth with general improvements on other metrics too. I shall conclude that there’s measurable improvement with bit-perfect playback in digital audio.

You can also try running performing this test on your own and adjust DiffMaker configuration to show different kinds of data without rounding error or with other standards. Have fun measuring audio software optimizations with DiffMaker!

Regards,
Keetakawee