Posts Tagged ‘receiver’

A Cheap & Easy Method for Measuring Optical S/PDIF Audio DAC Latency

Tuesday, June 22nd, 2021


Since writing this blog post I have created the AV Toolkit, which is designed to accurately measure S/PDIF Audio Latency using the technique that is described in this blog post. I recommend this new toolkit instead.

Original Blog Post

In a previous post, I described a method of measuring HDMI audio DAC latency using a computer’s sound card and a Wii U. This post describes a similar method for measuring optical S/PDIF audio DAC latency using a cheap and widely available USB audio DAC as a signal generator. I strongly recommend you give my previous post a read before reading this one to give some context for this approach.

Finding a Signal Generator

Because my Wii U test method resulted in such consistent results, I hypothesized that there might be an integrated circuit out there that would output optical S/PDIF and analog audio at the exact same time. If this was the case, it could act as a signal generator for measuring optical audio DAC latency in the same as the Wii U can be used for HDMI audio.

After some quick shopping, I decided to settle on the LiNKFOR USB DAC Audio Converter which can be purchased for only $22 USD. I found it was available on Amazon (as well as, AliExpress, and various marketplace sellers.

This USB audio DAC uses the Cmedia CM108B, which is able to output synchronized audio to analog RCA, analog headphone, RCA S/PDIF, and optical S/PDIF at the same time.

LiNKFOR USB DAC Audio Converter ‎ULKDAC070 with Cmedia CM108B

Verifying Output Synchronization

I wanted to be sure that this audio DAC did, in fact, output audio at exactly the same time through the analog outputs and the optical S/PDIF output. To test this, converted the digital optical signal into a digital voltage signal that I could compare more easily with the analog voltage signal of the RCA/headphone output.

I found the EAPLRAA4 Fiber Optic Receiver, which would make this conversion from optical to voltage with a delay of only 120 nanoseconds in a worst case. The datasheet for this receiver came with a “General application circuit”, which made wiring it up extremely easy:

EAPLRAA4 with 3V general application circuit

Now that I can represent the optical signal as voltage, I was able to simply wire it up to my 192 kHz sound card to use as a sort of makeshift oscilloscope. 192 kHz is not a high enough frequency to capture the digital S/PDIF signal in detail, but enough to get a gist of when a change has happened. In the future, I may repeat this test with a proper mixed signal oscilloscope or logic analyzer, but for now I feel these tests clearly show the accuracy of this test method.

Here’s what it looked like at different zoom levels when I played a 4800 Hz tone that turned on and off through foobar2000 in WASAPI exclusive mode:

Although I don’t have enough detail to decode the S/PDIF signal, there seems to be enough detail to show clearly that the different outputs are very closely synchronized by this Cmedia chip, making it ideal for this latency measurement method.

Testing Optical S/PDIF DAC Latency

The test process and hardware for measuring optical S/PDIF DAC latency is virtually identical to the process used for measuring HDMI audio DAC latency with a Wii U, so I will not reiterate any of those details in this post. The only differences are:

  • The optical output of the LiNKFOR USB DAC is used instead of the HDMI output of the Wii U
  • The RCA or headphone output of the LiNKFOR USB DAC is used instead of the analog RCA output of the Wii U
  • The LiNKFOR USB DAC must be connected to a computer. Simply play any audio file you want with the LiNKFOR USB DAC as your output device. (Note: On Windows, it seems like the USB audio device, called “Speakers”, is disabled by default when you plug it in. Simply enable it in your sound settings to use this as your output device.)

During these tests I discovered that there was one quirk with the LiNKFOR USB DAC: the analog audio output seems to be inverted compared to the source and optical audio output. This is not a problem, but is something to be aware of if you are using this method for measuring latency.


I only tested a couple of receivers that I have on hand and included existing latency measurements using my Wii U method:

DeviceSignalSettingAudio Latency
Marantz NR17111080p 60Hz 2.0 StereoDirect6.0ms
Marantz NR17111080p 60Hz 2.0 StereoStereo6.0ms
Marantz NR17111080p 60Hz 5.1 SurroundDirect6.2ms
Marantz NR17111080p 60Hz 5.1 SurroundMulti Ch6.2ms
Marantz NR1711Analog RCA StereoDirect0.0ms
Marantz NR1711Analog RCA StereoStereo0.0ms
Marantz NR1711Optical S/PDIFDirect4.9ms
Marantz NR1711Optical S/PDIFStereo7.9ms
Sony STR-DH5401080p 60Hz 2.0 StereoPure Direct56.5ms
Sony STR-DH5401080p 60Hz 5.1 SurroundPure Direct13.1ms
Sony STR-DH540Analog RCA StereoPure Direct13.0ms
Sony STR-DH540Optical S/PDIFPure Direct55.8ms


The Cmedia CM108B is only capable of outputting 44.1 kHz and 48 kHz 16-bit PCM audio over optical S/PDIF. Although many other formats may be transmitted over an optical cable, this format is common and valuable to test. Please let me know if you have any recommendations for other widely available optical audio DACs that would be better suited as a signal generator!

Home Theatre Receiver Subwoofer Offset

Sunday, May 30th, 2021

When testing receiver audio latency, I noticed that some receivers were able to extract low frequencies of an analog stereo source to send to a subwoofer with zero delay to the left and right speakers. This took me by surprise, because I expected the low frequencies for the subwoofer to be digitally extracted from the analog source signal, which would take some amount of time. This lead me to suspect that there might be an offset on the subwoofer’s output compared to the output of the left and right speakers when extracting low frequencies to create a 2.1 output from a 2.0 input.

I tested a few receivers for an offset on the subwoofer’s output and the results were interesting. All receivers seem to have some amount of an offset to the subwoofer, even when operating in Direct 5.1 mode where there is a dedicated subwoofer channel in the audio stream. This offset, as I suspected, was almost always larger when the receiver needed to extract low frequency sounds, i.e. from a stereo input.

Left and LFE channel output from a Denon AVR-S650H that is given a 5.1 input with the exact same audio stream sent to all channels
Left and LFE (subwoofer) channel output from a Denon AVR-S650H that is given a 5.1 HDMI input with the exact same audio stream sent to all channels

I expected that the Audyysey speaker calibration on my Marantz receiver would be able to detect this offset and correct it by calibrating my subwoofer position to be a further distance, thus adding a delay to other speakers. Unfortunately, it seemed to only detect a 0.6 foot difference, which may have been partially due to my physical speaker placement, and did not negate the offset entirely. Strangely, only when operating in small speaker stereo mode, my subwoofer offset measurements for this receiver are much higher than other modes, but also much lower than expected with the distance setting applied. Put simply, further testing is needed to understand this subwoofer offset behaviour and how it is resolved by speaker calibration.

Speaker distances calculated by Audyysey.
Speaker distances calculated by Audyysey. During calibration, my Front R and Subwoofer were placed directly beside each other, approximately equidistant to the calibration microphone.

Here’s a full list of my measurements for a few different receivers in CSV format and in a Goolge Sheet.

While I was reviewing these measurements, I took note of some other behaviours that the receivers had. One of the receivers, the Pioneer VSX-933, defaulted to an inverted phase on its subwoofer output, but only for some input types/sound modes.

Pioneer VSX-933 sometimes inverts subwoofer phase
Pioneer VSX-933 sometimes inverts subwoofer phase

Also, all but the older Sony STR-DH540 filtered its subwoofer output with a low pass filter when it was configured to have large speakers and a dedicated subwoofer channel on the HDMI input.

Almost all receivers filter their subwoofer output
Almost all receivers filter their subwoofer output

For some receivers, especially the Marantz NR1711, the subwoofer output was very noisy with high frequencies when extracting a LFE channel from a stereo input.

Marantz NR1711 subwoofer output is very noisy
Marantz NR1711 subwoofer output is very noisy

One last behaviour I found quite interesting was a modification of the low frequency sound in the left and right channels when extracting a LFE channel from a stereo input. It seems as if the low frequency sound wave is compressed at the beginning of output. This type of behaviour existed in all receivers that I tested, but it was least notable in the older Sony STR-DH540.

All receivers would compress the low frequency output of their main channel when separating a subwoofer LFE channel
All receivers would compress the low frequency output of their main channel when separating a subwoofer LFE channel

There are many challenges of making a good DAC, especially one that can separate out an LFE channel from stereo with minimal delay. I don’t know why these behaviours are common and I also don’t know if they may effect sound quality and crossover behaviour in a real-world situation. Regardless, it seems that even a simple “Pure Direct” mode on a receiver with a dedicated LFE channel on your input signal may result in slight offset between main and LFE channels.