Solved: Console Interchannel Latency

A place for software, hardware and DSP-based audio gizmos. All things code and the hardware that runs it. Time and amplitude are described in bits and pieces here. Links to interesting gizmos and software.
Post Reply
User avatar
mediatechnology
Posts: 5437
Joined: Sat Aug 11, 2007 2:34 pm
Location: Oak Cliff, Texas
Contact:

Solved: Console Interchannel Latency

Post by mediatechnology »

I recently decided to license the YMEC analyzer.
I also use Visual Analyzer and AudioTester and each has their strengths and weaknesses.
YMEC compliments them nicely.

While testing YMEC in the oscilloscope X-Y mode I discovered what appeared to be a large phase error between Left and Right in A/D D/A loopback.

This is the 1 kHz error I saw:
Image

At 10 kHz the phase error is huge:
Image

The X-Y goinometer plots I've done in the past used the Velleman DSO.
I don't normally measure phase but have also seen this error in Visual Analyzer's oscilloscope.
I wasn't sure if the error was real or simply VA behaving oddly.
With YMEC showing similar phase errors I decided to investigate.

The D/A outputs had no phase error so the error had to be in either A/D conversion or in downstream processing.
I looked at a 10 kHz recorded file in Cool Edit.

Image

The offset is exactly two samples with a 96 kHz sample rate...

The EMU-0404 I use is ancient but for an internal sound card the performance justifies keeping it.
For higher-performance measurements I use the TI PCM4222 A/D evaluation board and SPDIF.
I do not like external USB interfaces.
USB is asynchronous and unless externally-powered the convertors have many compromises to meet power budgets.

The EMU-0404 uses the TI PCM1804 A/D and AK4395 D/A which were decent performers in 2005 and still OK today with an E-E DR of about 108 dB A-weighted.

A quick look at the PCM1804 data sheet provided no warning of a 2 sample offset.
I couldn't imagine an A/D having that built in.

This lead me to the Patchmix DSP console required to use the EMU-0404.
Notice how the left and right analog input channels are on two separate modules.
Every single preset supplied has them split.
In fact I had never seen a stereo analog input and didn't know one was available.

Image

I began to suspect that the latency was internal to the console and decided to try ASIO routing to YMEC.
If an ASIO Insert is plugged into the Left channel it feeds both ASIO 1&2. The right channel can only have ASIO 3&4 assigned.
This creates a problem in that ASIO 1 is usually Left and ASIO 2 Right with most applications including YMEC and AudioTester.
The ASIO conflict caused me to look and see if there was a stereo analog input strip similar to SPDIF In.
There is.

In the past I had always used presets and modify them.
I decided to build a module from scratch which led me to discover this input option:

Image

"PCI Card In In L/R" creates a stereo module:
Image

The above examples do not have ASIO routing and instead use WDM/MME.

So does a stereo input solve the 2 sample latency?
Yes it does.

10 kHz X-Y with no interchannel latency.

Image

ASIO also works as expected with L&R sent on ASIO1&2 or any other ASIO pair.

I haven't tried moving the right channel down the console frame to see if the latency increases by 2 samples with each position.
I suspect it does because the console may internally use a TDM architecture.

I now know why EMU provided a stereo input module for analog inputs but am curious why they didn't provide any preset that includes it.
Each sample rate has a preset for "RMAA" testing which should have used a stereo module but didn't.
The people who wrote the DSP code knew about the phase error but it looks like the people who wrote the presets didn't.
I'm glad I found it.

One of the things for Test and Measurement I like about Patchmix is that routing can be done entirely in the channel strip.
I almost never use the right-hand side of the console at all.
With ASIO routing the A/D can feed the analyzer directly.
Post Reply