Jump to content

display plugin latency


Ploki

Recommended Posts

Thanks Eric, I'll get AU Lab.

 

one more thing, if I don't turn on latency compensation, does that mean that the plugins that induce latency will delay the sound, but plugins that don't will be un-harmed?

 

Another question, playback is in progress, if I bypass a plugin via automation, will the latency be reduced, or will is the latency compensation calculated upon playback and kept the same until stoping (and reinitiating playback)

 

I'm using Logic for a live thing, and some things are more time critical, and some less. The ones that are less (with pitch shifter) bog down the whole system... and they're never in parallel, nor is timing between channels critical.

however, timing from SOME channels to output IS.

 

 

well, that was more than one thing.

Link to comment
Share on other sites

1. If PLC is turned off everything playing through a latency inducing plug-in will be late. Plug-ins that don't add any latency will of course not delay anything.

 

2. When PLC is set to All a bypass will remove latency from a plug-in is inserted on an audio or a software instrument track but not when inserted on an aux or an output.

Link to comment
Share on other sites

  • 1 year later...
  • 2 years later...

it is perfectly possible to have a midi plugin that produces latency. Its quite probable that not many do.

 

I have one idea for a midi plugin that needs to intentionally create latency. Why would you do that? because you want the midi events to be pushed EARLIER. You can only do that by introducing "look ahead", which requires latency.

 

As a test, If you put a bluecataudio patchwork plugin into the midi slot, and then inside it put an audio plugin that creates latency, the bluecataudio plugin correctly will report the latency to LogicPro...and Logic Pro will adjust its PDC also! But if you hover the mouse over it, you can't see how much latency is coming from it like you can from audio plugins.

 

@skijumptoes. (austin powers villain pose with finger by the side of my mouth....mwwaaaahhhhhhhhh)

Edited by Dewdman42
Link to comment
Share on other sites

also want to say, there is no way with Scripter to report latency in the script. i wish there was. What scripter does is if it runs out of time it starts dropping things. That's why you see it thin out traces to the console sometimes..and even it may drop midi events if it has to, though my personal experience has been that it would take a LOT of midi processing or perhaps a lot of midi notes in a short period of time, for that to happen.

 

But if you need to create and report latency for some reason, and yes I do have one mad scientist reason for it...can't do it with Scripter. you can create latency, but you can't report it.

 

But a custom midi plugin written in C++ could do it. You just wouldn't be able to hover the mouse over the plugin button and see how much latency is being added and reported by the plugin.

Edited by Dewdman42
Link to comment
Share on other sites

Yea I’m sure because I added a script to generate a click I can hear it moved around in time as I adjust the latency reported by the latency fixer plugin. I tested this thoroughly because I plan to write a c++ midi plugin that will rely on this.

 

If I get time later I will write up with pictures what I did. But unless you have bluecataudio patchworks you won’t be able to test it anyway.

 

Midi is no different from audio in the way plugins process events, it’s just data. Midi is just not a continuous stream like audio is but either way plugins are exposed in both cases to a process block of data at a time, which is usually the size of the audio card buffer. they can do whatever they want to do to the data during that process block. But they can’t effect things from earlier process blocks, it’s already too late. And plugins don’t actually get any chance to “look ahead” at anything that is just a marketing term. A so called look ahead plugin actually has to send everything a little bit delayed, so the looking ahead that occurs is on the current incoming stuff while it sends out stuff that it remembers from the earlier process block( albeit delayed). There is the latency. That’s why look ahead plugins have latency and they are able to report to the host how much latency they need in order to “look ahead” so to speak. Then with that reported latency the host will adjust the timing of the track so that the delayed plugin processing will be back on time again, which basically makes it possible for a plugin to look ahead.

 

Midi is no different, if you want to look ahead in order to move events earlier in time, for example let’s say you wanted to write a custom quantizer midi plugin. You would need some look ahead to move some notes earlier in time. And that would involve some latency.

 

So we can easily write a scripter plugin that does look ahead and sends everything later with latency in order to make a custom quantizer, for example. But scripter has no way to report that latency to the host for pdc to undo the look ahead latency. You can add negative track delay for that or you can put an instance of expert sleepers latency fixer plugin on the channel, which reports latency without adding any.

 

But a midi plugin actually written in c++ can properly report latency, as bluecats patchworks mfx does and then you can do midi look ahead processing and it all works but there will latency added by that just like any latent audio plugin would. It all works but floating the mouse currently doesn’t tell you how much. That’s an oversight by Apple.

 

The midi plugin I plan to write one of these days is related to handling orchestral sample libraries that sometimes have different amounts of latency for different articulations which can be problematic. My plugin will be able to look ahead and move some midi events earlier to match the slow attack of some articulations so that everything sounds tight on the grid after pdc

Link to comment
Share on other sites

So for anyone curious...Here are some tests you can do, but you need a third party product to try this, the demo might work:

 

https://www.bluecataudio.com/Products/Product_PatchWork/

 

  1. Create a click track using midi events on a region like this:
     
    clicktrack.thumb.jpg.377a855162a2d1e085cf80a055682c29.jpg
     
     
  2. Turn on Logic's metronome also and play the track. Should sound in sync with the metronome.
     
     
  3. Now download the ExpertSleepers free plugin called Latency Fixer:
     
    https://www.expert-sleepers.co.uk/latencyfixer.html
     
    This plugin will report latency to the host without adding any actual delay.
     
     
     
  4. Put this plugin into an audio plugin slot. Adjust the settings to use something like around .3 seconds. Assuming your project tempo is set to 120, which is .5 seconds per beat, that should result in the metronome and click track being out of sync.
     
    channe1.jpg.5060398a9d5aa45ebf7656e38b37c15c.jpg
    sleepers.thumb.jpg.f28d7ee802ac23785436ca3b6c9bcd93.jpg
     
     
  5. If you hover the mouse over the plugin you will see that its reporting the latency as we have configured it
     
    float1.jpg.2c1ec82c85d0b87dbf894c371f336ca8.jpg
     
     
  6. Now play the track and you will notice two things. For one thing it will sound out of sync. For another thing you will notice that when you press play, the playback cursor will move a few millimeters to the left of beat 1 on the timeline and start playing from there. That is LogicPro pre-queing the track so that midi events will be fed to the mixer early. That is Plugin Delay Compensation (PDC) in action.
     
    So we know PDC is working and that is why the metronome and click track sound out of sync, because we told Logic there is latency using the ExpertSleepers plugin, even when there isn't. So Logic is doing what its supposed to do, playing the click track early and thus out of sync.
     
     
  7. Alright now time to test the midiFX slot. Remove the Expert Sleepers latency fixer plugin from the audio plugin slot. Instead put the blueCatAudio Patchworks MFX plugin into a midifx slot
     
    channel2.jpg.4ac4582957245c0ab687d4fbcec34d90.jpg
     
    Inside BlueCat's plugin you can put any VST or AU plugin you want, including both audio and midi. In this case no audio is processed because LogicPro will not be feeding audio to the plugin. It will only process midi. But inside you can put any plugins you want, including audio and they will basically attempt to process audio even though there is no audio to process. We will use the expert sleepers plugin inside there in order to report some latency to BlueCatAudio, which will in turn report this same latency to LogicPro.
     
    In order to get the midi to pass through, will have to use another midi plugin since BlueCatAudio will not pass through the midi unless a plugin does it. So basically I have setup a parallel processing patch, with a simple PIZ midi vst plugin that doesn't do anything other than constrain the midi to channel 1, and then on the second audio path I have the expert sleepers plugin with some latency configured:
     
    parallel.thumb.jpg.ecb150a6f362cdf3dcc142ca0a7dc974.jpg
     
    Now press play and notice the click and metronome are out of sync again. Just like the previous example, the playhead cursor moves to before beat 1 for PDC correction, as expected and LogicPro is applying PDC since BlueCatAudio is reporting it. However if you float the mouse over the midi plugin button, no latency is shown.
     
    If you don't believe me, remove the expert sleepers plugin from the above setup to remove the latency..and now the metronome and click track will be playing in sync.

Link to comment
Share on other sites

  • 2 years later...
I can't reproduce this behavior in Logic Pro 10.7. I have "Show help tags" ticked, then I inserted an instance of FabFilter Pro-C 2 on an audio track and cranked up the look-ahead time. I hovered over the plugin insert slot on the channel strip and over the GUI, but nothing is happening.
Link to comment
Share on other sites

I don't have FabFilter Pro-C2 so I can't confirm. Perhaps it doesn't cause latency or doesn't report it properly?

If you insert Logic's Adaptive Limiter on a track and hover over the blue insert button it should report a latency. Turn up the lookahead value for more latency.

Alan.

Edit: Also make sure that Help Tags option is ticked in Logic Pro > Preferences > Display > General Tab.

 

1577623581_Screenshot2021-10-31at19_26_44.thumb.png.5dc360341050102585fcd68c0873efb1.png

Link to comment
Share on other sites

I can't reproduce this behavior in Logic Pro 10.7. I have "Show help tags" ticked, then I inserted an instance of FabFilter Pro-C 2 on an audio track and cranked up the look-ahead time. I hovered over the plugin insert slot on the channel strip and over the GUI, but nothing is happening.

 

I noticed I needed to close the extra "Help" tab (the question mark button in the top left) for the help tags to show when hovering.

Link to comment
Share on other sites

  • 2 weeks later...
I can't reproduce this behavior in Logic Pro 10.7. I have "Show help tags" ticked, then I inserted an instance of FabFilter Pro-C 2 on an audio track and cranked up the look-ahead time. I hovered over the plugin insert slot on the channel strip and over the GUI, but nothing is happening.

 

I noticed I needed to close the extra "Help" tab (the question mark button in the top left) for the help tags to show when hovering.

 

Yes, that's what did the trick! The Quick Help tab needs to be closed in order for the latency tool tip to show up.

 

I find that pretty dumb, because the Quick Help tab, when expanded, does not show the same information as the tool tip when you hover over the button, so I don't understand why the two would be mutually exclusive, but that's evidently the way it is :)

Link to comment
Share on other sites

  • 3 months later...

How come that for you guys the tooltip shows samples and the equivalent milliseconds, while for me it shows samples and the equivalent seconds?

 

1664166171_Screenshot2022-02-10at15_43_55.png.59cf9fd66fd4030bf1f130a56e0fc5ee.png

 

Seconds are quite a useless unit in this context because it always shows 0 seconds :lol:. Can I change this to milliseconds somehow?

  • Like 1
Link to comment
Share on other sites

How weird! I've never seen this. :shock:

 

Damn, that can't be good :lol:

 

I would create a new user account on the Mac to see if it's not a preference issue?

 

Alright, I just jumped through the hoops to do that (amazing how many different plugins with their own licensing systems can manage to freeze up Logic's AU validation process even if you abort the scan) and unfortunately, in the new user account, it also shows seconds instead of milliseconds.

 

So I guess what this leaves me with is that it's not a preference issue? But if it's not a preference issue, does that mean there is also no way for me to change it? :lol:

Edited by alexe
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...