What's new

Logic Scripter—multiport track delay compensation?

Kent

sleepy member
As the native track delay compensation feature is incredibly limited on MIDI tracks in Logic (i.e., -99 to +99 ticks, which change in length-of-time depending on tempo), I am trying to brainstorm solutions that work with MIDI tracks connected to an AU3 VEP track. (obviously the native feature works fine with Instrument and Audio tracks, but that's not what I'm talking about here).

Does anyone know if it would be possible (even if complex) to use the Scripter, probably set on the AU3 VEP instrument track, to set per-channel/per-port negative delays for the MIDI channels which feed into it? Or would it be agnostic at that point in the chain?

@Dewdman42 @NoamL etc. have you tried anything like this?
 
Well...this is interesting.

The Auto Delay Compensation is now...working? It was greyed-out before, on my old rig and also in this very template. I'll have to dig into why that is.

But: as long as it's working, I should be good to go.

the specific ms track delay is broken though. Take this moment from a 100% quantized Damage 2 performance print (some RR, so the waveforms are a bit variable, but the transient timing is dead-on):

NO DELAY​

Screen Shot 2020-08-12 at 10.40.22 AM.png
A bit behind the beat.


AUTO DELAY​

Screen Shot 2020-08-12 at 10.40.32 AM.png
Nicely aligned!

-99 Ticks (@ 120 BPM)​
Screen Shot 2020-08-12 at 10.40.45 AM.png
As expected, rather in front of the beat.

-250.0 ms​
Screen Shot 2020-08-12 at 10.40.54 AM.png
Exactly where the "no delay" is, although we expect it considerably to the left...
 

Attachments

  • Screen Shot 2020-08-12 at 10.40.45 AM.png
    Screen Shot 2020-08-12 at 10.40.45 AM.png
    17.6 KB · Views: 0
Last edited:
Track delay has been screwed up for a long time in Logic. Not 100% broken, but goofy, buggy, etc. Sure they'll get around to it some eon :grin:
 
you can also use expert sleepers latency fixer plugin to accomplish negative track delay by samples or by milliseconds.
 
ps Scripter can't set negative track delay, you can perform positive track delays, but no meaningful negative track delays because there is no way to report latency to the host from Scripter.
 
the specific ms track delay is broken though. Take this moment from a 100% quantized Damage 2 performance print (some RR, so the waveforms are a bit variable, but the transient timing is dead-on):

@kmaster

i don't think the track delay parameter it's broken at all. it works fine and as expected here. one thing worth noting that might be confusing: you can have a delay in ticks and one in milliseconds at the same time.

also, try not to use a sample library to make those tests, because you don't know how the sample is cut and the instrument is setup etc. try using a synth and e.g. a sinewave or a short noise burst.

1597320260999.png


1597320290653.png


1597320310371.png
 
Last edited:
@kmaster

i don't think the track delay parameter it's broken at all. it works fine and as expected here. one thing worth noting that might be confusing: you can have a delay in ticks and one in milliseconds at the same time.

also, try not to use a sample library to make those tests, because you don't know how the sample is cut and the instrument is setup etc. try using a synth and e.g. a sinewave or a short noise burst.

1597320260999.png


1597320290653.png


1597320310371.png
This is from a MIDI track? Not an Instrument track?
 
what are you talking about then? i thought you were using Kontakt?
I'm talking about a MIDI track (in this case, one of a MIDI Multi instrument) connected to an Instrument (in this case, a VEP server port Instrument—but it could just as easily be a natively-hosted Kontakt, or whatever).
Screen Shot 2020-08-13 at 8.34.17 AM.png



Screen Shot 2020-08-13 at 8.34.52 AM.png

Screen Shot 2020-08-13 at 8.35.32 AM.png

Screen Shot 2020-08-13 at 8.35.57 AM.png
Screen Shot 2020-08-13 at 8.36.42 AM.png

Hope that makes more sense.
 
I'm talking about a MIDI track (in this case, one of a MIDI Multi instrument) connected to an Instrument (in this case, a VEP server port Instrument—but it could just as easily be a natively-hosted Kontakt, or whatever).
sorry, i didn't remember that part. ... you wrote it in your first post. I can't think of a way to test this really quick but if it's not working at all, you should get in touch with Apple. they should know.
 
@babylonwaves they do know, it's a fairly well-documented 'bug'...but it can't hurt to add one more complaint to the pile ;) just looking for another solution in the meantime...
 
Oh! @babylonwaves you did give me an idea that seems to solve one of my problems:

Making the Klopfgeist a track in the Arrange window, and then giving it a positive track delay in ms (it's an Instrument track, so this works), compensates for whatever delay my system is not picking up—looks like it comes to about 22 ms give or take in my case. Now, parts I play in both look and sound "correct" against the grid :)

Hopefully this isn't too premature, but it seems like I've stumbled upon a good idea!

@Dewdman42 would Latency Fixer do the same thing?
 
I kicked those old MIDI instruments to the curb a long time ago and can’t imagine myself ever using them again.
 
There is another possibility here:

My years of marching clarinet have given me a tendency to play considerably, though very consistently, ahead of the beat.

The plot thickens!
 
I have had my doubts about sample accuracy when using environment instruments. I haven’t tested it though.

if the latency is consistent then you can use latency fixer. It basically just sits in a mixer strip and reporte latency without adding any. So if the environment is adding latency then you just report that amount with latency fixer and the pdc engine will do the rest.

I doubt though that the environment is adding significant latency, it’s the instrument you are using thst is doing it. It’s possible that using the environment is blocking pdc from doing what it needs to do, in which case latency fixer would be blocked also.

why do you feel you need to use the environment approach?
 
Top Bottom