# How are plug-ins distinguished in Pro Tools?

**URL:** <https://forum.juce.com/t/how-are-plug-ins-distinguished-in-pro-tools/29711>\
**Category:** Audio Plugins\
**Created:** [October 4, 2018, 6:54am UTC](https://forum.juce.com/t/how-are-plug-ins-distinguished-in-pro-tools/29711 "2018-10-04T06:54:32Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![stian](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/stian/32/17_2.png) [@stian](https://forum.juce.com/u/stian)\
**Post date:** [October 4, 2018, 6:54am UTC](https://forum.juce.com/t/how-are-plug-ins-distinguished-in-pro-tools/29711/1 "2018-10-04T06:54:32Z")

</div>

Does anybody have any insights on how Pro Tools identifies AAX plug-ins? We’re releasing new versions some of our plug-ins and we’ve made many changes “under the hood”. Backward compatibility is a requirement and the new versions recall the last settings fine in other hosts. The AAX version, however, is said to be missing in Pro Tools when I try to reload a session with instances of the earlier versions. The AAX identifiers are the same and interestingly, I do get the settings recalled when I reload the new version in the same insert slot in Pro Tools. It would be great to get rid of the “Missing plug-in” message, though. What else could Pro Tools use to separate plug-ins apart from the AAX identifier?

---

<div class="post-metadata">

**Author:** ![otristan](https://avatars.discourse-cdn.com/v4/letter/o/f0a364/32.png) [@otristan](https://forum.juce.com/u/otristan)\
**Post date:** [October 4, 2018, 7:59am UTC](https://forum.juce.com/t/how-are-plug-ins-distinguished-in-pro-tools/29711/2 "2018-10-04T07:59:09Z")

</div>

There are plugin identifier but an identifier per bus flavor as well.  
There has been some order changes in this in latest Juce version.

---

<div class="post-metadata">

**Author:** ![stian](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/stian/32/17_2.png) [@stian](https://forum.juce.com/u/stian)\
**Post date:** [October 4, 2018, 8:19am UTC](https://forum.juce.com/t/how-are-plug-ins-distinguished-in-pro-tools/29711/3 "2018-10-04T08:19:52Z")

</div>

Thank you very much, Oliver! Do you know if it is possible to override the bus order to get it working? Or are we trapped if we want to use the newest version of JUCE?

---

<div class="post-metadata">

**Author:** ![otristan](https://avatars.discourse-cdn.com/v4/letter/o/f0a364/32.png) [@otristan](https://forum.juce.com/u/otristan)\
**Post date:** [October 4, 2018, 8:33am UTC](https://forum.juce.com/t/how-are-plug-ins-distinguished-in-pro-tools/29711/4 "2018-10-04T08:33:04Z")

</div>

## Change

JUCE now generates the AAX plug-in bus layout configuration id independent from  
the position as it appears in the Projucer’s legacy “Channel layout  
configuration” field.

## Possible Issues

ProTools projects generated with a \< 4.3.0 JUCE versions of your plug-in, may  
load the incorrect bus configuration when upgrading your plug-in to \>= 4.3.0  
versions of JUCE.

## Workaround

Implement AudioProcessor’s getAAXPluginIDForMainBusConfig callback to manually  
override which AAX plug-in id is associated to a specific bus layout of your  
plug-in. This workaround is only necessary if you have released your plug-in  
built with a version previous to JUCE 4.3.0.

## Rationale

The new multi-bus API offers more features, flexibility and accuracy in  
specifying bus layouts which cannot be expressed by the Projucer’s legacy  
“Channel layout configuration” field. The native plug-in format backends use  
the new multi-bus callback APIs to negotiate channel layouts with the host -  
including the AAX plug-in ids assigned to specific bus layouts. With the  
callback API, there is no notion of an order in which the channel  
configurations appear - as was the case with the legacy “Channel layout  
configuration” field - and therefore cannot be used to generate the AAX plug-in  
id. To remain backward compatible to pre JUCE 4.0.0 plug-ins, JUCE does  
transparently convert the legacy “Channel layout configuration” field to the  
new callback based multi-bus API, but this does not take the order into account  
in which the channel configurations appear in the legacy “Channel layout  
configuration” field.

---

<div class="post-metadata">

**Author:** ![stian](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/stian/32/17_2.png) [@stian](https://forum.juce.com/u/stian)\
**Post date:** [October 4, 2018, 8:39am UTC](https://forum.juce.com/t/how-are-plug-ins-distinguished-in-pro-tools/29711/5 "2018-10-04T08:39:51Z")

</div>

That’s perfect – thanks again! 🙂

---

<div class="post-metadata">

**Author:** ![stian](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/stian/32/17_2.png) [@stian](https://forum.juce.com/u/stian)\
**Post date:** [October 4, 2018, 9:29am UTC](https://forum.juce.com/t/how-are-plug-ins-distinguished-in-pro-tools/29711/6 "2018-10-04T09:29:57Z")

</div>

And it works again – what a relief! 😊
