Jump to content

MIDI track delay parameter bug?


rogerdp

Recommended Posts

Track delay settings in the parameter box on MIDI tracks seem to be ignored in some circumstances...

I'm using a large orchestral template, with multiple sample libraries housed in Vienna Ensemble Pro instances on my slave PC. The instruments receive MIDI info via 'External MIDI' tracks, routed via Multi-Instruments and Port switches in the Environment to multi-timbral software instruments for each VEPro instance, using aux tracks for the grouped audio returns.

I've noticed that Region delay parameters on the MIDI tracks work as expected, but Track delay settings are ignored. Whereas on solo software instrument tracks, both parameters adjust playback timing. I've confirmed that this is a general Logic issue by setting up a software instrument track (Electric Piano) and then controlling it from an External MIDI track (routed from a multi-instrument in the Environment). I've checked this behaviour both in Logic X and Logic 9 and the MIDI track delay settings never seem to have any effect.

Is this a known issue and is there a workaround? It is really valuable to be able to set default track timing offsets when synchronising multiple sample libraries and this has to be done at the MIDI send stage, because those are the only tracks which control individual instruments (as opposed to the grouped aux returns). This is a separate issue from plugin delay compensation, because the timing offsets relate to differences in attack times between articulations and libraries, rather than to signal delays.

Of course it is possible to retrospectively apply Region delays to each MIDI track, but a) this is a laborious workaround and b) the Region delays can't be set in ms, only in ticks (i.e. varying with tempo).

Any advice would be gratefully received!

Thanks,

Roger

Link to comment
Share on other sites

Incidentally, I'm aware you can set a default 'MIDI thru' delay for tracks, which new regions will then inherit, but this doesn't solve the problem, in fact it can make things worse:

The delay is still set in ticks, not ms; if you drag and drop regions between tracks they retain the delay setting from the source track and it becomes very difficult to see the settings for each region.

By comparison, Cubase has a simple 'Track Delay in Milliseconds' slider, which is exactly what I need for my template.

Link to comment
Share on other sites

I've confirmed that this is a general Logic issue by setting up a software instrument track (Electric Piano) and then controlling it from an External MIDI track (routed from a multi-instrument in the Environment). I've checked this behaviour both in Logic X and Logic 9 and the MIDI track delay settings never seem to have any effect.

I've just repeated this test on a MacbookPro with no other hardware connected. The result was the same: MIDI data on the software instrument track responds to both Track and Region delay settings for that track. But if you use a separate MIDI track to play the same software instrument (connected via the Environment and moving the MIDI data to the new track) then the behaviour changes: Region delay on the new track works fine, but Track delay has no effect.

Link to comment
Share on other sites

rogerdp said:
My interface (Unitor8) is indeed outputting timestamp info.

It's just been pointed out to me that MIDI Monitor needs to be in Expert Mode (in Prefs > Display), otherwise MIDI Monitor displays it's own fake timestamp rather than '0' when it receives a zero timestamp.

When I output MIDI using an External MIDI track (not External Instrument track), with Expert Mode on in MIDI Monitor, the 'Time' column in MIDI monitor shows '0' for all timestamps, so I don't think timestamps are being sent for External MIDI tracks. The same 'zero' timestamp happens for the Legacy External Instrument plugin (which presumably means Logic 9's External Instrument plugin doesn't send timestamps either?).

However, Logic X's new External Instrument plugin (non-legacy) does cause timestamps to be sent.

I'll have to test a few things before I post back on the track delay not working. It may or may not be related to timestamps. Long story short, the track delay doesn't always work, so I've observed the same thing as you, but others have reported it working in Logic X. I'll need to do some testing to determine when/why it does/doesn't work.

Link to comment
Share on other sites

Thanks again for your help RedBaron. I also raised this on the VSL forum (https://vsl.co.at/community/posts/t41007-Logic-X-MIDI-track-delay-settings-ignored-by-VIs#post246182) and 1offby posted this comment:

Quote

I have also tested this behavior and have reported to Apple over the course of the past year. They are aware of the issue; whether it will be resolved is unknown.

I think it is completely Apple/Logic related, not 3rd party software. 

My findings for Logic:

External MIDI Tracks: MIDI Track Delay works for positive number delays up to around 60 MS. Negative number delays are unreliable, but may work up to around -30 MS

Software Instrument tracks using the "External Instrument" plugin: All live MIDI input (like playing a MIDI keyboard) is delayed by approximately an audio buffer size. On playback positive and negative number track delays work up to about +/- 250 MS: Note the transport must be stopped and started for a user change in Software instrument Track Delay to take effect.

Link to comment
Share on other sites

  • 5 years later...

yes this is a bug. Everyone that cares needs to make sure to report this to apple, I can't believe its still there, its a rather obvious and bad one.

I did some tests...the midi delay parameter does not function for external midi tracks, at all...yes..

but also it does not function for non-external, normal multi-timbral tracks either.

if you setup a new multi-timbral instrument using LogicPro's new instrument wizard, for example, you can create a 16 part instrument channel with 16 midi tracks feeding it.

If you set the delay parameter of each of those, they will appear from the track inspector to have individual delay settings, but unfortunately they are all linked internally and following a single value. The last track to change the delay parameter setting, changes the one single internal setting and that is the value they will all follow.

So track delay basically is useless with multi-timbral tracks in LogicPro. Doesn't work with that approach, and doesn't work if you try to use environment based midi tracks either... broken...

Link to comment
Share on other sites

  • 3 months later...

Same issue on my system. The only way track delay work is when applied to single instrument channel strips inside of Logic. Has anyone found a workaround so pre-delay can be used on multi-instruments housed in VEPRO?

Thanks

The current system is a 7,1 16-core Mac Pro.

Link to comment
Share on other sites

Hi Jrich,

My workaround is to route audio outs for each type of articulation (long, short, legato) to a separate audio channel in VEPro. Then I use Expert Sleepers LatencyFixer plugin on each audio track and set delay in there.

Logic’s PDC takes care of the rest.

It’s a maddening workaround and unacceptable in 2021, but here we are.

Meanwhile, I bought Cubase cross grade in the last sale...

Good luck!

Marcus

Link to comment
Share on other sites

Thanks for the tip marclawsonmusic!

I did discover last night that if you change the TRACK DELAY setting from "MS" to "TICKS" on Logic's external instrument objects (Single and multi) the delay function gets sent to instruments connected to them (both inside and outside of Logic). For example, I was able to set a negative TRACK DELAY value in Ticks on midi channel 3 of a multi-instrument object connected to Port 2 of an instrument in VEPRO 7. I also had success using TRACK DELAY in TICKS with a multi-instrument connected to an instrument channel strip that lived in Logic.

This felt like a small victory.

Link to comment
Share on other sites

  • 2 years later...

Hi, almost 3 years passed and still this problem with track delay in Logic seems to be unsolved.

I just tested the idea to use ticks instead of msec and it indeed it worked. But unfortunately it is no real solution, as the right setting for a library in ticks is always depending on the BPM of the song.

I can't believe that Apple still has got no solution for this. And I am wondering how all Logic Users handle this problem when using orchestral sample libraries.

Is there any new idea about this?

Thanks for reading 

Frank

Link to comment
Share on other sites

6 hours ago, Dewdman42 said:

Te using expert sleepers latency fixer plugin mentioned earlier in the thread 

Thanx, but in my case it is like this:
If you are unable to break the individual articulations out to separate audio channels, then the next choice would be to use Scripter to adjust latency, in conjunction with ExpertSleepers for lookahead.

But I have no idea how that works, or how to set this up.
Is there any tutorial, or another explanation for this?

Link to comment
Share on other sites

there is a free plugin called expert sleepers latency fixer.  Find it.  forget about scripter right now.  If you're just wanting a track negative-delay that actually works, then just put expert sleepers on the audio track that is late.  Your audio is late due to latency in the attack of the sample.  the plugin isn't reporting latency to the host, but its late nonetheless due to the nature of the sample attack.  Latency fixer does one thing, it reports latency to the host.  so whatever audio track you put it on, just set that time, and it will report it the host (Logic Pro) and then logicPro will use plugin delay compensation to automatically slide the timing around around of everything in your project until its not late anymore.

If you're using a multi-timbral instrument, then obviously you'll have to separate each part that you intended to neg-delay separately...to separate AUX channel outputs, and then put expert sleepers on each of those AUX channels.

note however, when you use expert sleepers on AUX channels it does not actually cause the midi to be fed early, it will cause all other tracks to be delayed to match up, so it will cause you to experience a lot of laggy latency, you don't want to do that while you're still tracking parts in, but once you're in mix down phase it will be fine.

 

Link to comment
Share on other sites

3 minutes ago, Dewdman42 said:

there is a free plugin called expert sleepers latency fixer.  Find it.  forget about scripter right now.  If you're just wanting a track negative-delay that actually works, then just put expert sleepers on the audio track that is late.  Your audio is late due to latency in the attack of the sample.  the plugin isn't reporting latency to the host, but its late nonetheless due to the nature of the sample attack.  Latency fixer does one thing, it reports latency to the host.  so whatever audio track you put it on, just set that time, and it will report it the host (Logic Pro) and then logicPro will use plugin delay compensation to automatically slide the timing around around of everything in your project until its not late anymore.

If you're using a multi-timbral instrument, then obviously you'll have to separate each part that you intended to neg-delay separately...to separate AUX channel outputs, and then put expert sleepers on each of those AUX channels.

note however, when you use expert sleepers on AUX channels it does not actually cause the midi to be fed early, it will cause all other tracks to be delayed to match up, so it will cause you to experience a lot of laggy latency, you don't want to do that while you're still tracking parts in, but once you're in mix down phase it will be fine.

 

Thank you for your explanation.
I will try this out 👍🏼
 

  • Like 1
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...