Platform specific Manufacturer and Plugin Code?

Hi all,

Is it possible to define the 4-character Plugin and Manufacturer Code for each plug-in platform (AAX/VST/AU) separately?

I started my plug-in development with AAX and didn’t care enough about those.
I used uppercase only for manufacturer and mixed upper/lower case for the plugin code.
Now, moving on testing VST and AU, I realize that AU require the first character being upper case and the other three lower case. Otherwise it won’t get loaded by hosts (tested with Garageband).
If I change both IDs to the required format, my AAX plug-in won’t be backward compatible anymore.

Any hint would be much appreciated.

Thanks,
Stefan

I think you’ll need to create unique projects if you want unique plugin codes. If you’re using CMake this is relatively simple.

Okay thanks Rory. I’m still using Projucer but may considering moving to Cmake eventually.

I used to do similar using the Projucer. I wrote a series of Python scripts that would parse each of the Projucer files (they are just XML data), update various entries, and then generate all the projects for me. It was a pain to get going, but once it was working I rarely had any issues with it. Now I use CMake and the situation is much easier.

There must have been another problem with your testing before. There are no upper/lowercase rules.

Our manufacturer ID: reFX
Our plugin ID: NEXU

Everything works just fine and has been working fine for the last 16 years with those IDs.

Your problems must come from somewhere else.

There is in AudioUnit, the manufacturer code needed one uppercase letter

yes, with the hardcoded exception of ˋapplˋ.

How random is that? Why? So Apple decided to intentionally LOWER entropy on purpose? WTF?

1 Like

Surprised? - SCNR

I tried to find an official statement, but only found a discussion on apple.com:
https://developer.apple.com/forums/thread/38058

Things to definitely avoid:

Don’t use all lowercase - reserved for Apple.

Don’t use ‘Demo’ - reserved for Apple Sample Code.

Don’t use ‘DEMO’ - ‘DEMO’ used for type, subtype or manufacturer is ignored by the system and will result the following console spew - “Can’t register component with ‘DEMO’ type, subtype, or manufacturer.”

At least it’s the accepted answer, and I remember I was bitten as well. When this hint fixed it for me I didn’t investigate further…

1 Like