Tricky AAX plugin handling - SOLVED

I am developing code, which is a foundation for more than 10 (and raising) products - AAX plugins. each having its external content and configuration.

Normally i would have to make separate project for each plugin, building one by one etc.

Then I've come to idea to make physical copies (with a unique name) of my original AAX plugin and then, when plugin is loading in host, supply unique id and name/desc of the plugin to the host.

I've changed some code in juce_AAX_wrapper - i am supplying JucePlugin_Desc, JucePlugin_Name and JucePlugin_AAXProductId dynamically.

Using Pro Tools 11, I have mixed success with this approach:

- my plugins are recognized properly at program startup, they are available on the plugin list, they all have unique product ID, name and description.

- nevertheless, plugins still got mixed, so wrong plugin is actually loaded (always the same), despite showing correct name and ID in plugin window

This is a clear sign, that there is still "something" inside plugin,  which i didn't change so plugins are not being properly recognized. Some kind of additional identification, don't know, can't find anything else related to this in JUCE.


Any ideas or hints, what do you think - what i am missing, is possible to use this kind of approach at all ??



What is missing from your description is whether you are supplying different pointers to the processor and the editor as well... otherwise, you'd just get the behaviour you are seeing now.

No need for that, as each plugin is a separate .aaxfile, so it has only one editor and processor.


For example:

I have 2 plugins (the same .aaxfile with a different name), both supplying unique ID - 




In PT ...

Load A -> OK

Load B -> OK

Load A -> ERROR - it shows B (after this step, B is always loaded, regardless of which plugin is selected)


This points to the confusion, looks like as it would plugin A descriptor somehow be overwritten when B is loaded. 





Maybe it is worth mentioning, that after plugin is loaded, everything works perfect.

The main problem is that PT load different plugin than selected.

Looks like the catch was JucePlugin_AAXIdentifier value

I had a bug when dynamically creating value, so it was always the same - no surprise plugins were randomly mixed, as they have the same identifier.

Thanks for help!