Jump to content

Automation and PDC is just broken (still in Logic Pro 10.6)


tedannemann

Recommended Posts

(Link to petition for Apple to fix this bug: http://chng.it/bfczxYTh9g)

 

1. Automation in Logic (Pro X 10.4.8) is not plug-in delay compensated on audio/instruments tracks (but on aux tracks/summing stacks).

In other words, once you're working with latency-intensive plug-ins, even instruments (e.g. VPS Avenger) or just being an UAD user, your automation is basically out of order. This is also true for Logic's own Linear Phase EQ for example, no additional 3rd party plug-ins needed. Just automate a low or hi-cut, the automation will be nearly around 100 ms out of time in this case.

 

2. Plug-ins that depend on beat-time information (MIDI synced to the host) are simply not compensated on aux tracks/summing stacks (but on audio/instrument tracks)

In other words, if you are using something like Output's Movement, LFO Tool, Pumper, Effectrix, Cableguys plug-ins... , you name it, on an aux track/summing stack - timing of the beat-time based plug-ins will be out of order. I know several producers using a ducking or gate-effect bus for such effects - timing won't be correct then. This is also true for Logic's own Phat and Step FX for example.

 

3. Side chain signals aren't compensated correctly

The external side chain signal isn't compensated when introducing latency generating plug-ins after the side chain receiving plug-in on audio/instrument tracks (e.g. limiter after compressor with external side chain).

The external side chain signal isn't compensated when introducing latency generating plug-ins before the side chain receiving plug-in on aux tracks/summing stacks (e.g. tape simulation plug-in before compressor with external side chain).

If you are using the FabFilter Pro-L 2 with external side chain triggering for stem mastering for example, the side chaining will be completely out of time moreso when using one of the oversampling options. This is also true when working with Logic's own Linear Phase EQ and Compressor on one track using external side chaining.

 

4. Bounce in Place is not compensated correctly at all

Bounce in Place does not take automation and plug-in delay compensation correctly into account especially when bouncing aux tracks/summing stacks (see above). Pure chaos, depending on what is going on on your tracks and busses. External side chaining is ignored when using Bounce in Place as well. So you have to use the export track or bounce to disk function and drag your files back again into Logic, cubersome.

 

The typical pop/EDM producer who uses ducking plug-ins or classic side chain compression in combination with latency intensive plug-ins basically gets a fuzzy timing. Also every UAD user pretty much is in trouble when using automation in Logic because the workarounds to avoid these issues are almost impossible - or you just don't use automation / side chaining at all. If you add multiple bussing and sends to the equation, it's clear that big mixes in Logic go completely off the rails.

 

This reminds me a lot of Ableton Live from 10 years ago. That was an absolute pain in the ass to work with for complex professional mixdowns at that time. Anyway, all of the above works perfectly in Cubase or Bitwig, for example. Even in Ableton Live (except for the MIDI synced plug-ins), everything is now in time, even if you are working with several hundreds of ms introduced latency in complex routed projects.

 

I think that Logic (Pro X 10.4.8) is by far the worst DAW on the market today in terms of automation timing and plug-in delay compensation.

 

Any thoughts, insider knowledge or solutions on these?

Edited by tedannemann
Link to comment
Share on other sites

I've been in touch with Apple today about the sidechain signal compensation issue and also linked this post and all related issues as they might be all linked to the same code change (adding delay compensation in a code function). They should follow up within a few days I'll let you keep you updated.
Link to comment
Share on other sites

  • 3 weeks later...

I agree with the above, is nearly makes Logic downright unusable for the full scale producing of a project start to finish. Is there any indication from Apple that this will be addressed anytime soon? Is there anything we can do to speed along Apple addressing this issue?

 

Also maybe off topic but are there other major bugs like this in LPX that I should be aware of that I'm currently not? Thanks.

Link to comment
Share on other sites

Just wanted to chime in about PDC. Really having a hard time with it messing up the timing of my tracks. I've just spent the last few hours exploring this issue and it's just really weird. It seems dependent on PDC being set to all "All", which, if it works properly, why wouldn't you want it on "All"??

 

I'm including a file that should make the issue very clear, but I'll try to explain: So you have a multi-output instrument (like Ultrabeat) and you put a latency inducing plugin (like EnVerb) on one of it's output Auxes (let's say it's receiving the kick). Then give that output aux a send to another aux so you can sidechain to it elsewhere, let's say you're sidechaining a noiseGate on a bass track. Even when there is no signal flow whatsoever to that noiseGate's sidechain, the bass track is now pushed out of time. How do I know? I duplicated the bass track (without the sidechain noiseGate) and flipped it's phase and it doesn't cancel.

If you're with me this far, try adding another instance of EnVerb to the original multi-output instrument's track. BAM, bass is back in time. Phase: cancelled.

 

It's just a bug and it probably shouldn't be a big deal to fix, but it is a pretty serious one if you're doing professional work. Let's hope Apple acts expediently.

Latency Test.zip

Link to comment
Share on other sites

Just wanted to chime in about PDC. Really having a hard time with it messing up the timing of my tracks. I've just spent the last few hours exploring this issue and it's just really weird. It seems dependent on PDC being set to all "All", which, if it works properly, why wouldn't you want it on "All"??

 

I'm including a file that should make the issue very clear, but I'll try to explain: So you have a multi-output instrument (like Ultrabeat) and you put a latency inducing plugin (like EnVerb) on one of it's output Auxes (let's say it's receiving the kick). Then give that output aux a send to another aux so you can sidechain to it elsewhere, let's say you're sidechaining a noiseGate on a bass track. Even when there is no signal flow whatsoever to that noiseGate's sidechain, the bass track is now pushed out of time. How do I know? I duplicated the bass track (without the sidechain noiseGate) and flipped it's phase and it doesn't cancel.

If you're with me this far, try adding another instance of EnVerb to the original multi-output instrument's track. BAM, bass is back in time. Phase: cancelled.

 

It's just a bug and it probably shouldn't be a big deal to fix, but it is a pretty serious one if you're doing professional work. Let's hope Apple acts expediently.

 

I just ran your Logic Pro X project here.

 

 

I

Link to comment
Share on other sites

I just ran your Logic Pro X project here.

Open the Mixer and click Ultrabeat to make it active.

 

Okay :idea: :mrgreen:

Link to comment
Share on other sites

Open the Mixer and click Ultrabeat to make it active.

 

Okay :idea: :mrgreen:

No.

 

1) Open the original project.

2) Open the Mixer.

3) Click Ultrabeat. An alert pops-up.

4) Click ok.

5) Press play.

 

1) Open the original project.

2) Open the Mixer.

3) Click Ultrabeat. An alert pops-up.

3a) Take GATE plug-in off first bass track (see last video I just posted)

4) Click ok.

5) Press play, then smile. :mrgreen:

Link to comment
Share on other sites

3a) Take GATE plug-in off first bass track (see last video I just posted)

Do you realize you keep changing the test conditions? The original test describes a flaw when UB is on, and side chained to a gate on the bass track.

 

You replied with a video where UB is inactive. When I pointed out that you need to make UB active, you make it active but mute one of the bass tracks. When I suggest you go back to the original project without modifying anything, you remove the gate. I'm not sure what your point is but it doesn't seem to be in line with the original test.

Link to comment
Share on other sites

Thank you David.

 

Valli, I really do appreciate you taking the time to check things out. Unfortunately, taking the gate off the track is not a solution for being unable to sidechain with PDC enabled for "All". The gate is just a stock Logic stand-in for any plugin you might want to sidechain to an output from a Multi-output instrument, in this case UB, but this could be any Multi-out. I made the test project to demonstrate the simplest way to reproduce the bug, so that hopefully someone can report this to apple and they'll fix it.

 

It's pretty standard to sidechain a compressor on your bass to your kick so you get a little ducking for kick clarity. It's also pretty standard to use a multi-out for your drums so you can mix each drum separately. Combining these two techniques should definitely not break. Any workaround or solution that isn't just 'Apple fixes the problem' is ludicrous for such a standard set up.

 

Interesting aside, PDC seems to actively re-time the affected tracks moment to moment, instead of just using a static time offset. I say this because I am unable to set a delay value on the affected region's settings that will make the test audio cancel again. So there's one potential "workaround" for this that we can scratch off the list of things we definitely shouldn't have to do in the first place.

 

Edit: I may be wrong about the active re-timing. Setting a delay in ticks is just not accurate enough. Moving the region's anchor by samples gets me much closer.

Edited by Kiriel
Link to comment
Share on other sites

...Found a dumb workaround by the way: add an audio track with it's input set to the bus with the signal you want to sidechain, then point your sidechain plugin to the audio track. Essentially, audio tracks instead of auxes. Fine.

 

 

---------------------------------------------

 

Edit: Nevermind.

Link to comment
Share on other sites

I mean, it seems like it's just a goofy bug in how Logic is set to handle PDC on downstream audio channels. Just an, "oops, forgot to account for that scenario" thing. It appears to be trying to intelligently PDC the audio signal of any track that receives it's audio from an (aux) track with latency plugins, instead of just of just bumping that audio signal back at the aux itself before it's sent anywhere. Just a guess.

 

In the course of trying to work around this, I just ran into the "Bounce In Place" flavor of this issue too. Ugh. So, I can't just bounce-in-place my kick for sidechaining, I have to record it to another track, in real time. This brings your workflow to a grinding halt any time you need to rework your kick track, or whatever signal you're sidechaining. Frustrating.

Link to comment
Share on other sites

not sure what you mean by

instead of just of just bumping that audio signal back at the aux itself before it's sent anywhere

 

But anyway, AUX channels are treated kind of like a live channel. They are not directly associated with any particular track region. So Logic can only take delay found in AUX channels and delay everything else to match up with it. audio tracks and instrument tracks are handled by feeding the region data earlier to it.

 

Now when you start getting into complex routing with multiple audio tracks feeding into aux channels or chains of aux channels or side chains, etc.. things can start to get rather complicated quickly and it might even be that its entirely not possible to perform PDC with certain kinds of routing...its just an outcome of digital audio and plugin latency. But we'd need to look at some very specific scenarios in a very detailed way to try to see what if anything Apple could do, if it isn't already doing everything it can do.

 

I'm not debating the fact that there might be problems related to a automation and side chaining in particular that perhaps could be fixed, but I also think lots of times people try to do some complex routing and at some point, LogicPro literally can't correct the PDC, hypothetically of course..

Link to comment
Share on other sites

That's a good point, since the audio isn't being read from the aux track, the aux track can't do anything with the signal until it's received it. So Logic needs to instead move the audio source (in this case, midi) back in time to compensate for the plugin induced latency. With a multi-out instrument though this is very difficult as Logic doesn't know what midi will produce sound from what output. Still, there has to be a clever solution for this, and it certainly isn't to move audio on sidechain receiving tracks out of time. That's silly.
Link to comment
Share on other sites

the side chaining is a problem, no argument. You're not the first to complain about it. But again, I want to understand exactly what are the conditions under which it fails so that we can determine whether its something that is even possible to solve and then we can all submit bug reports if we think so.

 

think about this. Lets say you have an AUX channel that is getting its live audio from somewhere. Another audio channel is getting its audio from a region. They both have latent plugins. Ok, so the audio region is queued early to make the audio channel sound earlier. Fine so far. Let's assume the audio channel is feeding itself through a send into an AUX channel that is adding more latency. OK, so the engine needs to delay the audio channel in order to compensate for the extra delay in the AUX channel, but in so doing, wil it also be now sending its own audio even later to the AUX channel through the send? Same thing kind of applies to side chains. And that is just a simple example, routing can get a lot more complicated...eventually...the PDC simply can't resolve it. You can't always get blood from a stone.

 

But in any case, if there are simple scenarios, and looking at them under a microscope we can identify that LPX could easily resolve the PDC, then we should identify that and report to to Apple. There are a lot of complaints about PDC on this forum and other places, and IMHO, a high percentage of them turn out to be user error or lack of understanding. So if we send a generic bug report to Apple that says more or less "Logic is worst DAW ever the PDC never works right". How much attention will that get from devs? IMHO not much. IF we give them very very specific information about where its failing and we have thought it through completely and think it could be resolved, then we can give them something they can pay attention to and maybe fix.

 

hope that makes sense what I'm saying

 

Instruments could be improved in LogicPro by not using AUX channels for them. They should have a dedicated Instrument extension which are technically not AUX channels, but just multiple instrument outputs on an instrument channel...and then all instrument channels would cause the input midi to be queued earlier as appropriate for any PDC on the instrument channel.

 

They could still probably still do that under the covers even though they call it an AUX channel, maybe a special kind of AUX channel since its not getting its input from a general bus, its getting its input specifically from the output of an instrument plugin.. So totally doable. I would have thought it was doing that already actually... But I haven't really tested for that to see exactly what is happening.

 

I think the automation PDC bugs are definitely a bigger deal IMHO and I can't think of any reason why they haven't fixed that other then people just aren't being assigned to the task somewhere deep inside Apple.

Link to comment
Share on other sites

So looking at your project....

 

I agree, there is nothing that tricky about this routing and there is no reason I can think of why it shouldn't play in sync...

 

Now to try to analyze it.. what is going on..?

 

Theoretically, regardless of whether you have side chaining activated; when the EnVerb latency is added, the two audio channels with bass recorded on them should be delayed by the same amount, play in sync by the same amount as what Enverb is putting out. If they are both playing perfectly we should hear no bass (canceled out).

 

So if I remove the gate from the bass channel, that is exactly what happens. two channels cancel out. Put the gate back, and doesn't work.

 

I have no solution I can think of...its not handling it right.

 

the question is why. One thought I have is that LogicPro is confused by Instrument-AUX channels in some way..handling them like an AUX when it should be handling like an instrument...or visa versa...and meanwhile the side chain on the plugin is assuming its coming from an AUX.. something like that. Not entirely sure... But I agree its a simple case that Apple should have handled better!

Link to comment
Share on other sites

Dewdman,

Thank you for the thought out reply. I'm with you man. That's why I made that example project that I posted. It's the simplest circumstance under which I could reproduce the exact bug I'm referring to, and I think it illustrates the problem more than adequately. Although it doesn't illustrate the other PDC issues mentioned in this thread.

 

...the engine needs to delay the audio channel in order to compensate for the extra delay in the AUX channel, but in so doing, wil it also be now sending its own audio even later to the AUX channel through the send?

 

Right, so that means for every downstream point where the audio signal is split (i.e. sent to an actual output), Logic would have to duplicate the source and entire signal chain thus far, adding a different latency compensation offset according to the latency added prior to that particular juncture. Okay, that's totally untenable.

 

Instruments could be improved in LogicPro by not using AUX channels for them. They should have a dedicated Instrument extension which are technically not AUX channels, but just multiple instrument outputs on an instrument channel...and then all instrument channels would cause the input midi to be queued earlier as appropriate for any PDC on the instrument channel.

 

Yeah, that would certainly help but I believe it would require plugin developers to code for that functionality. As in, the plugin would have to tell Logic what MIDI is triggering audio on which outputs in order for Logic to be able to properly move/retime the midi to account for downstream latency.

 

All of this aside, I am not a DAW designer, I am a musician. As fun a distraction as it is to ponder why it works or doesn't work, it's not our job to figure out how to make it work properly. It's my job to make music, and right now the DAW is hindering my ability to use what I've come to understand is a pretty common workflow. I've done as much as I can to illuminate the issue, short of submitting a bug report I suppose. So I guess that's the next step. Unfortunately it doesn't look like they let you attach a file though, which would be the quickest way to illustrate the issue. That, and they ask you to fill out a survey longer than an online job application.

 

Genuinely curious, do Apple engineers ever check these forums?

Link to comment
Share on other sites

So looking at your project....

 

I agree, there is nothing that tricky about this routing and there is no reason I can think of why it shouldn't play in sync...

 

Now to try to analyze it.. what is going on..?

 

Theoretically, regardless of whether you have side chaining activated; when the EnVerb latency is added, the two audio channels with bass recorded on them should be delayed by the same amount, play in sync by the same amount as what Enverb is putting out. If they are both playing perfectly we should hear no bass (canceled out).

 

So if I remove the gate from the bass channel, that is exactly what happens. two channels cancel out. Put the gate back, and doesn't work.

 

I have no solution I can think of...its not handling it right.

 

the question is why. One thought I have is that LogicPro is confused by Instrument-AUX channels in some way..handling them like an AUX when it should be handling like an instrument...or visa versa...and meanwhile the side chain on the plugin is assuming its coming from an AUX.. something like that. Not entirely sure... But I agree its a simple case that Apple should have handled better!

 

Responded before I saw your post.

Yes, for sure it's weird. Neither bass track should be delayed or delay compensated at all. The one bass channel's only contact with the latent signal is via a sidechained gate plugin. No reason to change it's timing.

 

Try this for extra weirdness though, add an EnVerb to the main ultrabeat track and the bass tracks cancel again.

Link to comment
Share on other sites

Right, so that means for every downstream point where the audio signal is split (i.e. sent to an actual output), Logic would have to duplicate the source and entire signal chain thus far, adding a different latency compensation offset according to the latency added prior to that particular juncture. Okay, that's totally untenable.

 

Well my only point is that AT SOME POINT, the routing complications could make it such that PDC simply can't work it out. I don't think that applies to your example project at all. I think there are certain routing configurations, if we sat here long enough we could think of one or two, that could not possibly play in sync after latency induced in the wrong places, but I also think 99% will never see that situation

 

Instruments could be improved in LogicPro by not using AUX channels for them. They should have a dedicated Instrument extension which are technically not AUX channels, but just multiple instrument outputs on an instrument channel...and then all instrument channels would cause the input midi to be queued earlier as appropriate for any PDC on the instrument channel.

 

Yeah, that would certainly help but I believe it would require plugin developers to code for that functionality. As in, the plugin would have to tell Logic what MIDI is triggering audio on which outputs in order for Logic to be able to properly move/retime the midi to account for downstream latency.

 

No actually plugin developers wouldn't have to do anything other then report latency as they always should be doing. A single instrument plugin reports its latency already and the instrument channel does the right thing. the instrument channel just needs to do the right thing with multi-outs. But I'm actually pretty sure the current solution is already doing that. What i think is maybe a little confused is the side chain input into the plugin. but who knows.

 

All of this aside, I am not a DAW designer, I am a musician. As fun a distraction as it is to ponder why it works or doesn't work, it's not our job to figure out how to make it work properly. It's my job to make music, and right now the DAW is hindering my ability to use what I've come to understand is a pretty common workflow. I've done as much as I can to illuminate the issue, short of submitting a bug report I suppose. So I guess that's the next step. Unfortunately it doesn't look like they let you attach a file though, which would be the quickest way to illustrate the issue. That, and they ask you to fill out a survey longer than an online job application.

 

if you submitted a bug report, they will often times contact you and ask for a project showing the problem. So hopefully they will. You submitted an official bug report right?

Link to comment
Share on other sites

 

Responded before I saw your post.

Yes, for sure it's weird. Neither bass track should be delayed or delay compensated at all. The one bass channel's only contact with the latent signal is via a sidechained gate plugin. No reason to change it's timing.

 

Try this for extra weirdness though, add an EnVerb to the main ultrabeat track and the bass tracks cancel again.

 

well actually no, you want the bass track to compensate for the delay in Enverb. It should be doing that, thusly lining up itself with the delayed enverb output. that should feed into the sidechain in sync because the bass will have been delayed along with it. Both of those audio tracks should be PDC delayed to match the delay of Enverb on the AUX. And cancel themselves out. If you remove the gate plugin completely, that is exactly what happens.

 

And I also tried putting enverb directly on the instrument channel like you did and then the proper delay compensation happens. But in that case, Logic Pro feeds the UB region early so that the audio comes out not-late and thus lines up with the bass track that is waiting for side chain. So it works.

 

Its the AUX channel that has to be late, because its an AUX, I guess...and then the bass channels should ALL be delayed to match that..regardless of the side chain actually. but it seems like in this case, one of the two bass tracks is being delayed to match and the the other one isn't. My money would be on it being because its an instrument-AUX and LogicPro is supposed to be handling it differently but is missing some case.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...