The No.1 Website for Pro Audio
 Search This Thread  Search This Forum  Search Reviews  Search Gear Database  Search Gear for sale  Search Gearslutz Go Advanced

Tips & Techniques:Plug-in Delay Compensation with Protools LE / MP

Manually Compensating for Plug-in Delay in
Protools LE and MP

Jeff Markham
Techbreakfast


As of Protools 7.4, automatic plug-in delay compensation remains an option
only in Protools HD.

This tip/trick covers how to manually compensate for plug-in delay in LE and MP.



What is Plug-in Delay and Why Should I Care?
When you insert a plug-in into your signal path, it takes some amount of CPU cycles
in order to do its task. Sometimes, the algorithm is computationally intensive or
requires a wide buffer of samples in order to do its job. In these cases, a plug-in
may not be able to do all its work in "real time", meaning it will delay the
re-introduction of the processed path until some future time. Usually, this is measured
in either samples or milliseconds. This is known as Plug-in delay or plug-in latency.

Many plug-ins do not introduce latency and do their processing in real time. However, some
do.

Should you care? If you're using a DAW that has PDC built into it (and most do),
you don't care. If you're using Protools LE or MP (which don't have it), then you might.

Usually if a delay is short (50 samples or less), the delay that is introduced
is very short ( delay = (samples_delayed / sample_rate) * 1000 ). Let's say I've got a plug-in
that's delaying my path by 700 samples and I'm using a 44100 sample rate. The delay of this would be:

delay (ms) = ( 700 / 44100 ) * 1000
or 15.87ms

Does it matter? .. depends on the track or the aux path. If the path is going to a delay or reverb as
a processing element . then the delay probably doesn't much matter. But .. if it's on a percussion or
bass track where timing and feel could be impacted, then you should care.

Audible artifacts occur when the delayed signal path is re-introduced with the rest of the
tracks at some summation point. If there is some of the undelayed
signal (from mic bleed, etc.), you may hear a slap echo effect or some weird sounding phase /
comb-filtering effects that make the signal sound thinner and/or have the stereo image altered.
As you'll see in our second example, one of the plugs is introducing a delay of over 8000 samples ... which
would equate to a delay of over 180ms. That's going to be definitely audible .. and not in a good way.

How Can I Tell If A Plug Introduces Delay?
In Protools, go to the mix window and go to the bottom of the track
where the volume is display .. press the Command key and then the left
mouse button two times .. it should say "Dly" ... that's the delay in samples.
If you're lucky, it will say "0" ... Remember you can use the "Alt + Command" to toggle
all the tracks.

Note that if you have more than one plug in your insert chain, the delay is
the cumulative total through inserts A->E.

A Simple Scenario

First, I'll direct you to the Qt movie I did a while back . which is a fairly simple
PDC scenario .. but should get you warmed up for a more gnarly case.

Please see the following movie:

http://techbreakfast.com/tutorials/PT_LE_Delay_Comp.mov

A More Involved / Realistic Scenario


Please consider the following mix:



Please note that the following tracks inject delay

Code:
[LIST=1]
[*]Vox Pitch --> Waves Ultra Pitch -->8239 Samples
[*]Rhythm Gtr --> Izotope Ozone 3 --> 749 Samples
[*]Lead Guitar --> Waves GTR3 ToolRack --> 64 Samples
[*]Drum Sum --> Waves L2 --> 64 Samples
[*]OH Sum --> McDSP ML4000 --> 51 Samples
[/LIST]
Step 1: Find the Slowest Path to your output interface

In manual PDC, the first step is to find the slowest path through the
mix. In this case, it is the Vox Pitch track with the whopping
8239 samples of delay. Everything will have to be delayed by
this amount in order to get line up at the A1-2 interface.

As I mentioned, I often get out a piece of paper and draw out the routing
paths through the mix. It really helps to visualize and strategize
where you will want to insert delays. If you have a complex bus routing,
this becomes a necessity.

Divide and Conquer
If you have a complex mix, it's best to line things up in
groups. For example, line up all the drums first .. and then move on
to other logical groups of instruments. Existing summation busses / Aux
Tracks are natural places to insert delays into your mix. Resist the temptation
to slap a time adjuster on every track .. you can usually reduce the number of
places you need to insert delays if you use aux tracks with delays (and routing
busses) strategically.

Breaking the problem down into sub-problems makes the whole process
more manageable.

Getting the drums to line up
So, let's treat the drums as a sub-problem.

Please notice that the drums are using a summing buss (Drum Sum).
The OH are summed together with an ML4000 that will delay the
overheads before hitting the DrumSum buss. So, we'll start by getting
all the drums to be line up first.

So, in order to get the drums to line up, we're going to have to delay
everything that's not going to the OH sum path by 51 samples. I do this
by creating an aux track (TADJ 51), slapping a TimeAdjuster Short plug-in on the new
aux bus. Then route everything that's not going to the OH sum bus
to this new delaying bus (also named TADJ 51). I route the output of the
TADJ track to the Drum Sum bus.





Now, everthing will arrive at the Drum Sum bus on time. You'll remember that the L2
on the Drum Sum will add 64 samples of delay as it goes to the A1-2 interface bus.
We'll deal with that in a minute .. but for now, all the drums are lined up, so
we don't have to worry about this group of tracks anymore.

Guitar Tracks

Let's start with the Rhythm Guitar track .. you'll notice that Izotope's Ozone
is injecting 749 samples of delay.

Can you trust the numbers? Not Always

Some of you might be thinking Gee, I didn't think Ozone had any delay .. I've never
seen any delay when I check the tracks?


And you would be partly right .. Ozone does not report the delay it injects to
your hosting app unless you enable an option. So, by default, it's injecting
delay in to your mix .. but, like your girlfriend, it's doing things behind
your back and not telling you. Not that this has ever happened to me.

To get it to confess ...

Under Options you'll see ...



Clicking on the Delay Compensation ... button, you can turn it on .. and you should..



It's important to note that Ozone (and Trash too) don't do any delay compensation
themselves, they just report the delay they introduce to the hosting app. So the
control name is somewhat of a misnomer.

Plugs that Lie
There are some plugs that just plain lie about the delay. Luckily, they
are a rarity ... but if you're hearing some funny stuff going in the time
field (slaps, comb-filtering effects, etc.) be sure and check your plugs.

You can usually figure them out by bouncing to track and looking at the
two waves forms .. usually, it's pretty obvious.

Irony of Ironies

Time adjuster lies to Protools when you bypass it! ... A major annoyance
when you get into automation and it's effect on PDC. When you bypass
TimeAdjuster , the plug-in delay goes to zero ..
although it still reports the delay setting.

You have to disable (Control + Command Left Click) the plug altogether to have
PT report the true delay on the insert path. Sigh.


Back to the task at-hand ... Guitars

So, I'm not good at math in my head .. so I use have a trusty Calc laying about
on my desktop to bring up. We're going to want to line up the rhythm guitar
to the longest path to the A1-2 Interface ... which is the Vox path and
the 8293. So we're going to have delay the Rhythm Guitar track by
8293 minus 749 ....




So .. we're going to put a Time Adjuster Long on the Rhythm Guitar track and set it to 7490 samples



Hit the enter key ..(and sometimes you have to move the plug-in dialog to
get PT to repaint the right value )....

Notice the delay jumped by 4 samples when you added the Time Adjuster Plug!
This is important because you should note they delay of the track *before* you put
the Time Adjuster in ... otherwise, you'll be off by 4 samples. Not that I've
ever done this mind you.




Ok ..so the Rhythm Guitar is now lined up...

Next, we do the same with the Lead Guitar .. we need to add (8239-64) samples
of delay or



Bass Guitar Track .. and a limitation

So, we need to delay the bass guitar by 8239 samples (since it has no delay
on the track). We could make an aux buss and route all 0 delay tracks to this
aux track. But since the bass is the only one that has a 0 delay routing, we'll
just slap a time adjuster on the track directly.

Now .. here's where you'll notice a limitation. The TimeAdjuster Long has a
max delay of 8195 samples. So, you'll need to use two time adjusters
to get it to line up .. a TimeAdjuster Long, followed by a TimeAdjuster Short.



I can hear you Sonar, Cubase, Nuendo, Reaper, Logic, Audtion, etc. users out
there snickering at this point .. and it's very unbecoming ;-)


And back to the drums

Ok , the last thing is the drum summation bus which we need to delay to get
it to line up on the A1-2 interface.



Ok .. now everything is lined up to max delay of 8239.

Automation and Manual Delay Compensation

If you use automation in your mix to enable / disable the bypass
of inserts or to change the settings of an insert, you may be altering
the plug-in delay.

For example, if I were to by-pass Ozone at some point in the mix, I would
also have to automate the sample delay of the time-adjuster on that
track too.

Also, different settings in Ozone have different amounts of delay. So, if I
were to change the parameters in Ozone such that they affected the delay through
it, I would also have to adjust the time adjuster to match.

Sound like a pain-in-the-you-know-what? It is.


Summary
So .. remember to check the delay of your tracks on LE and MP. If you're
lucky, you're not using any delay injecting plugs .. but unfortunately, some
of the coolest ones do.

One alternate strategy (if a delay is on a audio track) is to duplicate the playlist,
apply the effect as an audio suite effect and then nudge the track back by the
delay. This works reasonably well if you're not making a lot of tonal changes before
it hits this particular insert.

I don't particularly like nudging tracks around as it's too easy to forget.

A Closing Plea
Dear Digidesign R&D team ... do not listen to your management or marketing
teams when discussing features and their priority. Auto PDC is your highest
priority without question.

By introducing PDC in LE and MP, you're validating your self-worth and
professional reputation in the Digital Audio field.

We will be eternally grateful (or until the next major audio advancement or
cool feature is introduced, which ever comes first).

Sincerely
Jeff
jeff@techbreakfast.com
Contributors: mw, jmarkham
Created by jmarkham, 26th March 2008 at 07:45 AM
Last edited by mw, 27th March 2012 at 03:05 PM
Last comment by pogs on 28th March 2009 at 09:53 PM
2 Comments, 47,290 Views



(2) Comments for: Plug-in Delay Compensation with Protools LE / MP Page Tools Search this Page
Old 26th March 2008
  #1
Lives for gear
 
peeder's Avatar
 

Old 28th March 2009
  #2
Gear Head
 
pogs's Avatar
 

Delay view in mixer - don't trust number

If you do delay compensation you can't do it only reading data from mixer (delay view) cause for some plugins it is not correct. So you need manually find delay compensation time for every plug.
Reply

Bookmarks
Page Tools
Search this Page


Posting Rules
You may not create new articles
You may edit articles
You may not protect articles

You may not post comments
You may not post attachments
You may not edit your comments

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off