Control Pro Tools Loop during playback from an ARA plugin

Hi everyone,

I’m developing a JUCE plugin based on the ARA API. The plugin controls the host transport, including setting the playhead position and the loop range.
I’m encountering a Pro Tools–specific issue related to loop handling during playback.

When playback is already running, changes to the loop region are not taken into account by Pro Tools. Instead, Pro Tools continues to use the loop region that was active when playback started.
This happens in two scenarios:

  1. Loop edited from the plugin
  • The loop region is modified from the ARA plugin.
  • Visually, both the plugin UI and the Pro Tools UI update correctly.
  • However, the actual loop behavior does not change during playback.
  • Pro Tools continues looping the region that was active before playback started.
  1. Loop edited from the DAW
  • The loop region is modified directly in Pro Tools during playback.
  • Visually, Pro Tools correctly shows the updated loop region.
  • However, the plugin UI does not update and still shows the loop region that Pro Tools is actually using.
  • Pro Tools continues looping the region that was active before playback started.

If playback is stopped, loop updates work correctly.
This behavior works as expected in Reaper, so the issue appears to be specific to Pro Tools.

From the code perspective, the loop information retrieved via the ARA Editor Renderer does not update while playback is running.

Is this a known limitation of Pro Tools’ ARA implementation? Would it be possible to force loop updates or refresh loop state during playback in Pro Tools?

Thanks in advance for any suggestions! :slight_smile:

If this works as expected in REAPER then this sounds like it could be an issue specific to Pro Tools. It might be worth contacting Avid’s technical support to see whether this is a supported use-case.

I’ll add about the complexity of ARA worth mentioning.

ARA has multiple roles, JUCE concept of AudioProcessor could end up resulting you having more than one AudioProcessor. You can look at each processor’s role and the ARA specification to better understand what can (and cannot) be done with it. I’d suggest the comments at the main ARA header file.

It might be that one host has the same audio processor for multiple roles which makes it implicitly capable of what you’re trying to do. But it can easily be undefined behavior.

Having said that,

When playback is already running, changes to the loop region are not taken into account by Pro Tools. Instead, Pro Tools continues to use the loop region that was active when playback started.

But is the behavior above works from PT itself? are you able on a basic session to simply update loop points and it’ll respond while playback is running?