Jump to content

Latency Compensation and External Effects Routing


fader8

Recommended Posts

Logic Pro 8's plug-in Delay Compensation (PDC), while effective when used in conventional session setups, can be a little cumbersome when integrating external effects devices into your project. Logic's I/O plug-in is an invaluable tool that provides for external effects routing but, unfortunately, Logic has no built in plug-ins for measuring and compensating for any signal path delays that are inevitably incurred in this routing process.

 

There are presently two 3rd party plug-ins that are effective at dealing with the processing delay, Latency Fixer from Expert Sleepers and The Latency Bundle from Artificial Audio. The former is free and the latter is not but it provides convenient features if you do this kind of thing frequently.

 

The PDC system works by receiving process delay reports from each plug-in and, based on where the plug-in is located, will advance track and instrument audio signals or delay aux and output signals to ensure that all signal paths reaching the output are in sync. Generally speaking, this works fine for conventional plug-ins but the I/O plug-in is unique.

 

First, Logic has no way of knowing what the process delay is though your external chain, so you have to measure that manually. The most reliable way is to bounce a single sample pulse that is placed on two tracks, one that goes dry to your outputs and the other that goes through your external signal chain via the I/O plug-in. I've attached a file archive to this post that contains just such a test pulse signal. The resulting bounced file can be viewed in the Sample Editor and the time between the pulses can be measured in samples via the helper pane that appears during a range selection. Once that sample count is determined it can be entered into your latency compensation plug-in which must be inserted on the same audio channel that the I/O plug-in is inserted.

 

(Note that the Latency Bundle plug-ins provide features for doing this automatically using an instrument track. The attached pulse file is compatible with their detection plug-in so you can just paste it on to a track and use it instead. This may be a more robust method anyway if you're dealing solely with audio tracks.)

 

Second, it's important where you've placed the I/O plug-in for this all to work properly. If inserting on a track audio channel for an insert effect, it works fine. However, for send (parallel) effects, there are limitations. Logic's most intuitive workflow implies that the send effect be inserted on the aux return channel, as you would normally do with a natively hosted plug-in. With the present method of PDC, this won't work with external effect routing due to PDC delaying the aux channel signal to the outputs.

 

To achieve an external effects route with full delay compensation you must first create a Bus channelstrip in the environment mixer layer, then insert the I/O plug-in on that bus channel accompanied by your latency compensator plug. Since the bus object's audio is associated directly to each of your track audio sends, the signal is advanced going to your external effects via their output channels. Bingo, that's what you want.

 

OK, that's a lot to swallow so I've provided a graphic below that shows the signal flow for proper PDC operation with an external send effect.

BusVsAux.thumb.jpg.48ec911c55ec023f1046902e060e2892.jpg

Single_Tick.wav.zip

Link to comment
Share on other sites

Fader8,

 

Thank you for that. I have a question regarding external FX.

 

If I have something like this laying about...

 

 

http://www.sweetwater.com/images/items/750/SLAMMaster-large.jpg

 

And/or this

 

 

http://www.dancetech.com/aa_dt_new/hardware/IMAGES/alesis_microverb1_main.jpg

 

... and Since I only have one of each, I want to use them on a few channels, what would be the most efficient way?

 

This is with Logic, a multi out interface, and the various External FX.

 

Using Audio stereo track 1 as the source:

 

Opt #1 - Set Audio 1 output a dedicated pair, i.e. 3/4. (Not with an I/O insert)

 

Hard wire that pair to the comp, and then back to 3/4 in of the interface.

Set Audio track 2 to Input 3/4 and record Audio 1 track w/compression.

 

I could do a few takes/tracks with various settings on the comp and decide which fits best in the mix.

 

Opt #2 - Use Aux/Bus channel strips to do the same thing and deal with latency.

Link to comment
Share on other sites

... and Since I only have one of each, I want to use them on a few channels, what would be the most efficient way?

 

This is with Logic, a multi out interface, and the various External FX.

 

Using Audio stereo track 1 as the source:

 

Opt #1 - Set Audio 1 output a dedicated pair, i.e. 3/4. (Not with an I/O insert)

 

Hard wire that pair to the comp, and then back to 3/4 in of the interface.

Set Audio track 2 to Input 3/4 and record Audio 1 track w/compression.

 

I could do a few takes/tracks with various settings on the comp and decide which fits best in the mix.

 

If your latency isn't much to begin with, ie low buffer, analog gear, etc., then you may not really have to do anything, particularly for reverb. But if you're using the Manley in ANY kind of parallel compression scenario then you have to deal with the latency, no matter how small.

 

A kind of "no-brainer" way to do this, (without having to manually measure/calculate latency every time you change something) would be to paste the "tick" file I provided here near the head of the track you want to re-record. Align/nudge this Tick region so the crown of the tick itself falls right on say, bar 2 beat 1.

 

Now record or bounce the track by itself, being sure to include the tick. Snap the newly recorded region to bar 2 beat 1. In the Sample Editor, zoom all the way in on the tick and set the anchor to the crown of the tick. Viola, now it's in dead perfect sync with the original audio.

Link to comment
Share on other sites

  • 4 weeks later...

Seems so. This is M*****F****ing awesome.

Still sometimes I like to have my I/O's not be the first insert, so I may have to use two busses in that case - first to have inserts before the I/O and then send the output of that bus to a new buss with the I/O as the first plug in.

 

Right?

 

Excellent.

Link to comment
Share on other sites

  • 1 month later...
I would expect this would AT LEAST work in L9, if Apple hasn't come up with a way to deal with I/O latency correctly. According to the new feature list thread, I/O latency is reported in the driver panel. My copy of L9 is on the truck, so I'll know if it works for me sometime soon.
Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

Hi Fader8,

 

Thnx for this great explanation.

 

I have set up all the things in the chain as you showed in your set up.

 

The I\O Plug in routes the signal to the external effect and gets it back on the Aux channel. So at this point it works but there is something wrong with my set up that makes Latency Detector plug in unable to detect any signal. Plug in shows "Detecting..." and nothing happens. It is strange and i have spent few hours looking for the problem in my chain.

 

In my set up i use HDSPe AIO card connected via ADAT with Yamaha 03D digital mixer. So i send signal to the digital mixer then by 03D Aux bus to the Ensoniq DP4+ effect processor. Wet signal comes back on the 03D mixer's channel and it's sent back to HDSPe AIO ADAT input.

 

It looks coomplicated but i can't send and receive the signals directly because of ADAT inputs and outputs. DP4+ has got only analogue in/out. So i need to cross everything on 03D mixer.

 

As i said, the signal IS processed by the effect and gets back to the Logic so the whole chain is working in "some way". I don't uderstand why Latency Detector Plug in not detect any latency and it's still "waiting" for the signal. Also the "Ping" showes a +129 sample offset when clicked.

 

Does it matter with I/O Plug in if i use or not the pair of inputs / outputs like "Inputs 1-2" and "Outputs 1-2" or "Inputs 1-2" and "Outputs 7-8"?

 

Hope it helps to understand my problem better :)

 

Thnx in advance

 

J

Link to comment
Share on other sites

As i said, the signal IS processed by the effect and gets back to the Logic so the whole chain is working in "some way". I don't uderstand why Latency Detector Plug in not detect any latency and it's still "waiting" for the signal. Also the "Ping" showes a +129 sample offset when clicked.

Are you using both Logic 9's ping feature AND Artificial Audio's Latency Detector?

Link to comment
Share on other sites

Are you using both Logic 9's ping feature AND Artificial Audio's Latency Detector?

 

Hmm... i think yes, but what do you mean exactly? AA's Latency Detector IS plugged after I/O Logic 9 Plug in so even if i don't touch this "Ping" switch (set as "0") AA's still "detecting..".

Link to comment
Share on other sites

Hmm... i think yes, but what do you mean exactly? AA's Latency Detector IS plugged after I/O Logic 9 Plug in so even if i don't touch this "Ping" switch (set as "0") AA's still "detecting..".

 

I sometimes can't get a ping with processed audio, so I hardwire the output of my interface to the input. None of my hardware has any latency on its own.

Link to comment
Share on other sites

Hmm... i think yes, but what do you mean exactly? AA's Latency Detector IS plugged after I/O Logic 9 Plug in so even if i don't touch this "Ping" switch (set as "0") AA's still "detecting..".

Detecting what? It needs to here the pulse from its sister plug-in, both directly and from the delayed loop. Be sure you are reading the instructions on exactly how to set up Latency detector. But, you shouldn't need to use it at all if LP9's ping feature is working. If you do use it, you don't want ANY other plug-ins on the channel when setting it up.

 

I haven't up'd to LP9 yet, but I'm not confident, in spite of what the manual says, that the ping feature will work on an aux channel under various conditions.

Link to comment
Share on other sites

 

I haven't up'd to LP9 yet, but I'm not confident, in spite of what the manual says, that the ping feature will work on an aux channel under various conditions.

 

Can you specify conditions? I have a pretty complex routing config with three or four levels of AUX's and the ping works perfectly for parallel processing. There are of course other issues... :roll:

Link to comment
Share on other sites

Can you specify conditions? I have a pretty complex routing config with three or four levels of AUX's and the ping works perfectly for parallel processing.

Sorry, no, not until I install LP9 and see how changes have been made either to the PDC system or how the I/O plug taps audio, ie before or after the aux's PDC delay.

 

You say it's working fine with aux channels, so that's encouraging.

Link to comment
Share on other sites

  • 1 month later...
  • 4 weeks later...

Hi guys, i'm burning my nerves here.. I'd like to know what's exactly is happening on my setup. I'm trying to process mix with Focusrite Compounder. I got it connected to my RME FF800. Output of Compounder is going to Inputs 1&2 of RME FF800, and i'm feeding it from 3 & 4 outputs.

 

This mixer "scheme" is made by following f8's picture, but i'm not sure if i understand it right. I'd like to know this stuff inside out, since i'm hardware maniac.

 

So, basicly when i do realtime bounce, i want to get audio from Compounder. Is that what i'm getting ?. Or am i getting some funkyfancy Paraller processing going ?.

 

http://www.waveformbakery.com/media/images/mixer.png

Link to comment
Share on other sites

  • 1 year later...
Back on this subject. How would one do mono bounce through let say equalizer using this scheme ?.

 

Click on the format button on the AUX Channel Strip to make it mono.

Insert a I/O plug-in (mono).

 

Thanks, addition to this changed Stereo Output to mono :). If someone else pulls hairs out of his head while bouncing.

Link to comment
Share on other sites

  • 1 month later...

To achieve an external effects route with full delay compensation you must first create a Bus channelstrip in the environment mixer layer, then insert the I/O plug-in on that bus channel accompanied by your latency compensator plug. Since the bus object's audio is associated directly to each of your track audio sends, the signal is advanced going to your external effects via their output channels. Bingo, that's what you want.

 

that's what i've done as well, but i can not switch a track solo this way without soloing the stereo out and the busses used, too. any way around that?

 

also, this setup doesn't allow serial routing of effects, as would the i/o-plugin if it were'nt totally unusable, am i right?

Link to comment
Share on other sites

that's what i've done as well, but i can not switch a track solo this way without soloing the stereo out and the busses used, too. any way around that?

I'd have to know your exact routing. Are your solo-safes set up properly?

 

also, this setup doesn't allow serial routing of effects, as would the i/o-plugin if it were'nt totally unusable, am i right?

I use the I/O plug all the time. Be more specific about your requirements and setup. Also, what Logic version?

Link to comment
Share on other sites

that's what i've done as well, but i can not switch a track solo this way without soloing the stereo out and the busses used, too. any way around that?

I'd have to know your exact routing. Are your solo-safes set up properly?

 

also, this setup doesn't allow serial routing of effects, as would the i/o-plugin if it were'nt totally unusable, am i right?

I use the I/O plug all the time. Be more specific about your requirements and setup. Also, what Logic version?

 

hi fader8,

 

my logic is version 9.1.3.

 

setup in the signature as of now.

 

my requirement is simply to be able to route my external gear in like a plugin, just as is easily possible in reaper with the reainsert. Currently, it works ok, and the only obstruction i have is not being able to solo a track which went through the busses. and that's sometimes debilitating. especially because logic is supposedly the best daw.

 

Don't know if this helps, but that's what my setup looks like (hope it's visible enough):

 

->in this session, if i press the solo on channel 11, i get silence. pressing solo on output as well will make channel 10 audible, because it ends in the stereo out.

 

http://img830.imageshack.us/img830/4282/screenshot20110326at948.png

 

 

Btw, i have never heard of solo-safe, what is that?

 

My issue with the i/o-plugin is that everything after the plugin will become unusable. Meaning the volume fader, pan, solo, mute buttons will seize to have any effect. The signal seems to be taken out to the plugin, and might even get in again, but is then routed to the specific output set in the plugin, and only there. Nothing seems to get through to the lower section of the channel strip.

 

Maybe i have a wrong impression of the task it's supposed to do, but if it is the same as with the reaper reainsert, then it utterly fails at that. Reainsert has always worked with my hardware, so only apple comes into question as a source of error.

 

Or should the environment provide some solution? haven't done much there...

Link to comment
Share on other sites

Btw, i have never heard of solo-safe, what is that?

It's what you need to read up on in the manual because it will solve your problem of not being able to solo tracks that use the I/O plug. You will need to solo-safe the output channelstrips that feed your external gear.

 

My issue with the i/o-plugin is that everything after the plugin will become unusable. Meaning the volume fader, pan, solo, mute buttons will seize to have any effect. The signal seems to be taken out to the plugin, and might even get in again, but is then routed to the specific output set in the plugin, and only there. Nothing seems to get through to the lower section of the channel strip.

Then you either don't have signal present at your interface inputs (coming from your effects gear) or you haven't selected the correct input in the I/O plug's for that return signal. Check through everything again. It helps sometimes if you get it working in a new empty project first. Keeps things clear and simple.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...