Best practice for syncing plug-in to another program?

Hi all,

I am working on an AAX plug-in that syncs to another program - a video player. So the purpose of the plugin is to provide transport info like play, stop and seek information. My current problem is that seek is unreliable - sometimes it’s spot on and sometimes it’s off by at most a second and a half.

I’m using the AudioPlayHead CurrentPositionInfo struct currently and it’s working well. I have confirmed that it’s sending very close to accurate second (translated into millisecond) data, so that isn’t the problem.

So THE PROBLEM MUST BE that I’m sending info using TCP. I’m looking for suggestions on how to best send the information I receive from AudioPlayHead CurrentPositionInfo to my video player.

As always, thanks!

Do you send via real network or via loopback device? Maybe test without the video player and simply display the number in the other program. Video players often use buffering, that may play tricks on you.

I’m using loopback. I’ve confirmed what you’re suggesting, in that the correct time is sent from my plugin to the server. I’m thinking that amount it’s off by (which isn’t a static number) may be due to how long it takes Pro Tools to execute the plugin and then play. Hmmm. Confusing stuff. Thanks for the suggestions.

To be more specific about my problem, I have confirmed that my video player is receiving the correct millisecond information from Pro Tools, via CurrentPositionInfo. The player is still somewhere between spot on and three quarters of a second off from Pro Tools.

My video player accepts seeks in milliseconds (it’s been built upon a third party player). Anyone have any ideas outside of implementing something like midi time code?

Sorry, I don’t understand:

  • correct like in sync with ProTools → problem in your player…
  • correct like in sync with your player? → Do you refresh the display of the numbers fast enough? I would really try to uncomment any player routines for narrowing the problem, as I would say it’s prime suspect…

Good luck

Hey, thanks for the reply. In my player I can confirm that it is receiving the correct millisecond information from Pro Tools, but it is not in sync. I’ve narrowed down the problem to TCP so the answer looks like it is implementing MTC or another time code.