1 (edited by etluxperpetuam 2013-03-20 14:15:16)

Topic: Compensating for round trip latency in a mixed I/O environment.


So not to beat a dead horse here, I've seen this issue addressed elsewhere in the forum, e.g. here.

The problem is the improperly corrected for round trip latency (RTL) at digital I/O when using such I/O in a setting where the audio driver's master offset value is set and used for correcting for RTL at analog I/O accurately.

Typically this happens with all cards that have mixed I/O and are not exclusively digital. So the UFX is a perfect example. 12 channels of analog I/O that are spotlessly compensated for and then 8 ADAT channels at 2496 that come in 37 samples "earlier" from the source audio when recorded though an ADAT loopback (not the Loopback on TotalMix, but via real cable). The culprit, of course, is the fact that A) there is no ADDA operation on the ADAT channels, so there is no converter latency involved, and B) DAWs want, and so interfaces report only one global latency value, and this will always be the typically longer RTL of the analog paths.     

Before I go into details and background below; let me ask the question / make the suggestion right up top:

Since we seem to be a small minority of people thinking and asking about this issue; let us do the bulk of the work for solving it. Let us do the required measuring. Only give us a simple sample delay tool in Totalmix which we can insert at the input. Make it part of Hardware Input Settings tab for example. So no advanced pinging tools, or compensation tricks and additional DAW reporting on RME's part. Things could become a bit trickier if the latency of the digital path ends up being greater than the analog path, but first things first: would this be as simple for RME to implement as it seems - a sample delay for Totalmix much like the ones found in some of our DAWs?


OK. So here is the long version for those who are interested:

This issue seems to have come up more through the use of digital I/O in insert paths where people started hearing phase alignment issues and comb filtering. Some people asked for driver level solutions and MC has invariably reasoned that A) this should rather be addressed at the DAW level and B) a driver-level solution could be confusing as well as more trouble than is worth and that this problem plagues only a handful of us picky souls wink

So far so good.

My main interest is being able to record through my ADAT channels simultaneously with my analog channels without fretting the latency difference between their respective paths. And depending on the DAW, there are ways you can achieve such an alignment. With Cubase you can add a sample delay plug-in (I've used a free Voxengo tool) at the input channel and that'll do it - nice and simple even if this requires some manual measurement and some care. Likewise, with Logic you can add the relevant input channel to the Environment and insert the sample delay plug-in that is already part of Logic. This approach guarantees that the sample delay will only come into play during recording.

Now, Pro Tools is a different story. There we don't get to have separate insertion points for recording and playback. So should you insert a time adjuster plug-in during playback, this might keep you going, but you have to always take more care when handling such tracks. Should you duplicate tracks, move audio etc, your playback insert might get forgotten. Also, since you are delaying the signal at playback time and not recording an already delayed signal, your audio time stamp will not be accurate to begin with. I've tried emulating the input delay approach through an Aux Input (Source to Aux via loopback cable, Time Adjuster as Aux Insert, Aux to Destination via internal bus) but I couldn't record the signal for some reason. In any case even if one could solve the issue in PT, these are all patch style solutions.

Previously suggested solutions requested that e.g.:

At least if the RME Driver would report Digital latency (as a user selectable option), Loopback would be close to accurate (1 sample off IIRC due to the routing) and external Analog Loops would be able to be measured with the Steinberg ping tool with a positive offset.

to which MC replied:

And how many trouble would we get adding such an option with all its problems? ... Are you aware that the change from one setting to the other requires you to exit the DAW, restart, ping again? I think you better start a petition to bother ALL DAW software companies to get their act together and react on these real-world problems (different latencies on different I/Os) in a user-comfortable way. And then again - who notices (not measures) these small deviations?

I don't think there's a need for the RME driver to report digital latency. For this, RME would necessarily have to build a loopback ping into Totalmix, and if they wanted to implement the solution in a transparent manner, they would make this tool invisible and under the hood. Then they could be subject to a sh**storm of queries regarding this converter and that delay not being compensated for accurately etc.

Re: Compensating for round trip latency in a mixed I/O environment.

I do agree that the daw makers should fix this. That would fix it for everybody. And your intermediate fix, voxengo, is great. But the only real (pro) solution is identical AD on the input. For example a Raydat with 2/3/4 identical AD converters. Of course only if you need it and can afford it. I don´t and I can´t. But I do use 16 in 10 out plus 8 channels of digital FX through adat.

Vincent, Amsterdam
Babyface pro fs, HDSP9652+ADI-8AE, HDSP9632

Re: Compensating for round trip latency in a mixed I/O environment.

Hey Vincent - thanks for chiming in!

You see, the thing is, I do see the angle where it makes sense for DAW makers to solve the issue.

However, if it could be solved at the TotalMix level (or say the Lynx Mixer to name a worthy competitor), then it would be solved for each and every DAW program out there! This includes Pro Tools, and esp. Pro Tools. Such a solution would be a total blow to the advantage that Avid reserves for its own converters - they are always in perfect sync, whatever the track number. You can't possibly bring in any other converter delay value into play. It's either Avid's hardware delay values or competitors' reverse engineered solutions that mimic Avid converter behavior (e.g. a Mytek w/ PT DIO, or an Aurora w/ LT-HD).

I don't know. I guess the market isn't big for the middle range types; maybe it's the case that once people outgrow UFX grade gear in terms of channel count needs, and if they want to use PT as their main DAW, they just make the switch over into HD or HD Native and be done with it.

But what I'm suggesting would open the door to a simultaneous recording setup with 8 channels of say Mytek ADDA + 8 channels of RME ADDA + 4 channels of say a UA Mic Pre w/ ADDA - across all DAW platforms. So you can grow your setup step by step. From what I can see, on the Mac only Cubase and Logic provide a clearcut means for doing this at least manually. I don't know about Reaper or Digital Performer but I know that PT is a no go in this regard, Reason allows for only ms level overall correction, Live allows for sample level overall correction too but I don't know Live well enough to say whether a per channel input sample delay method would be available there…

I guess I'm taken by this idea mostly because PT is my digital audio recording and manipulation platform of choice, even if not necessarily MIDI. I hate not being able to use all 20 IO of my UFX simultaneously without any worries and negative latencies. It seems that once you go beyond 8-12 channels, and once you start wanting to integrate other converters into your setup, HD Native is currently the most surefire way to go for PT. But I don't want to give up my TotalMix! smile

On a side note, an HDSPe digital solution through high end RME converters with their 9 samples latency at double speed could do the trick too. But once I start planing on paying 3K+ for 8 channels, I would honestly want there to be zero samples of any latency smile

Re: Compensating for round trip latency in a mixed I/O environment.

One thing that many people don't realize is that Core Audio allows audio drivers to specify separate latency figures for EACH STREAM.

Audio interface manufacturers, for some reason, don't implement this feature, and only specify 1 overall latency figure (presentation latency and safety offset, in Apple speak).

: D

Logic 9.1.8 (1700.67) (32-bit) - OS X Lion 10.7.5
Digiface <-> [Fireface UCX & Prism Orpheus - ADAT]

Re: Compensating for round trip latency in a mixed I/O environment.

Wow! Thanks for that - that's good to know! smile

So any way you look at it, it's not 'not possible' to generate an elegant solution to this problem. I still believe solving it at the source is better then leaving it to DAW programmers, where they all come up with separate solutions with different implementations.

Maybe on the Mac side, one could possibly create a tool that taps into Core Audio before and after the DAW to do this kind of sync manipulation.

Re: Compensating for round trip latency in a mixed I/O environment.

I think the reason interface manufacturers don't implement individual stream latency is probably due to the hosts - Logic, Cubase etc.  They seem to only allow for one recording delay/offset, maybe due to the complexity of compensating for different stream latencies.  For instance, when compensating for a round-trip that goes out on one interface (and stream) and coming back on another interface (with another stream running at a different latency).

I'm guessing here though.  Maybe it's the other way around.  Maybe the hosts don't implement different stream latencies because the interface manufacturers don't bother to specify the Core Audio stream latency figures?

: D

Logic 9.1.8 (1700.67) (32-bit) - OS X Lion 10.7.5
Digiface <-> [Fireface UCX & Prism Orpheus - ADAT]