No AAXPLUGIN file/folder created - SOLVED!

I’m trying to build my plugin for AAX. I have Pro Tools 12.

• I have the AAX SDK (newest, 2p2p1) and my JUCE path has been set.
• My build config is set to build AAX (JUCE preprocessor)

When I build the plugin (VS2013), despite there being ‘no errors’, there is no AAX file/folder output - nor is there one ‘copied’ to my AAX directories automatically.

What am I missing?


EDIT: SOLUTION FOUND!

I finally figured it out. There’s a lot of steps from beginning a JUCE project to testing it in Pro Tools, so to help people in the future figure this out, I will describe exactly what I did to get from zero to finish:

#1. Apply/get a developer.digidesign.com account
Although Pro Tools is owned by Avid now, for audio plugin developers, they still use the DigiDesign name (for the time being). Make sure it’s a Digi account and not an Avid one - the avid.developer.com account is only for video developers I read.

#2. Download the AAX SDK
Once your digidesign developer account has been activated, download the latest SDK.

#3. Download Pro Tools Development Build
You need a special version of Pro Tools (the Development Build) to test ‘unsigned’ AAX plugins. Plugins from companies that do not yet have PACE (iLok) licensing purchased are referred to as ‘unsigned’, and normal Pro Tools will not accept these plugins (with an error saying the ‘plugin is not valid’). To get PT Dev build, login to your digidesign developer account, and at the top, go to:

Downloads → Pro Tools-> Development Builds

and download the latest Windows version (make sure you don’t get the Mac DMG!).

  • Note: Pro Tools Development Build needs a special iLok authorization to work. You need to have an iLok2 to run it. If you don’t have the authorization, you need to contact Avid via email to get it. The instructions on how to do this is right next to the download link for the PT development build in small print.

#4. Build the plugin
Make sure you compile your JUCE project as an AAX file, and you link (in the ProJucer/IntroJucer) to where you downloaded the AAX SDK. If all is well there, when you build it, you won’t actually have an AAXPlugin file - it will be a DLL. From what I gather, AAXPLUGIN Files are actually DLL’s in disguise, so you can just rename it. However, getting Pro Tools to recognize it as a plugin is more tricky than that; you need to place this disguised ‘dll’ file in a very specific hierarchy of folders. Here’s the format for that:

(Things ending in ‘/’ are folders - naming of them must be exact except the first one.)

MyPlugin.aaxplugin/

Contents/

Win32/ *(this folder is only needed if you have a 32-bit version included)

MyPlugin.aaxplugin (this is your 32-bit ‘dll’ file renamed)

x64/ *(this folder is only needed if you have a 64-bit version included)

MyPlugin.aaxplugin (this is your 64-bit ‘dll’ file renamed)

Once you have those all arranged correctly, you need to do one more thing - run a DOS command on your folder. AAX Plugin ‘root-folders’ need to be marked as ‘System’. To do this:

  1. Open your master folder (named 'MyPlugin.aaxplugin),
  2. Make sure no files are selected, then hold Shift+Right-Click the empty folder background.
  3. Click ‘Open command window here’.
  4. Type the following command:

attrib +s %CD%

…and push enter.

#5. Put the AAX Plugin in place and cross your fingers!
Move your plugin into the AAX directory, which is:

C:\Program Files\Common Files\Avid\Audio\Plug-Ins
and start Pro Tools Development.

I hope anyone that’s confused finds this post helpful!

3 Likes

I am also experiencing this.

A response of someone whom has experienced this before would be very helpful!

Maybe accept an answer of one who reads:

Just one day old, and several times asked…
ts ts ts :wink:
Cheers

daniel posted something below. Apparently, there’s a utility in the AAX SDK that ‘packages’ everything into a folder and makes it into an AAX plugin. The AAX ‘.DLL’ file needs to be in a directory like:

MyPlugin.aaxplugin\Contents\x64\MyPlugin.dll

The MyPlugin.aaxplugin needs to have a flag set with command prompt:

attrib +s MyPlugin.aaxplugin

… and you need to have the ‘icon’ file and ‘desktop.ini’ file placed into the ‘MyPlugin.aaxplugin’ as well. Check out the links by daniel for more info.

Were you able to compile correctly following these steps?

I’ve been jumping through all the aax hoops today trying to get this to work correctly with Windows and it’s not seeming nearly as seamless as compiling AAX on OS X.

One more thing… I think you need to rename your file from ‘.dll’ to '.aaxplugin’
… but I’m still testing. I’ll let you know.

I am also still testing over here and will let you know how the process goes.

Please let me know if you’re able to successfully open your plugin within Windows PT, and if so what steps you needed to follow to do so.

Thanks for the assistance.

Sure thing - will do

When you compile it, it will output to your YourProject/Builds/vs2013/Release or Debug
It should end with .aaxplugin not dll.
In the aax sdk folder/ utilities, there is a CreatePackage.bat file to create the AAX folder

Unfortunately, that’s not happening for me - I’ve got just a .DLL file.
Maybe it has something to do with me deleting the ‘Post Build Script’…?
Does anyone have a copy of that?

I’m trying… but no luck. The ‘CreatePackage.bat’ is so convoluted and weird - it creates three folders, not in the correct hierarchy though. I’ve got no clue what to do.

I think my binary is bunk - the ‘.dll’ is not actually an ‘.axxplugin’ file perhaps, but I don’t know ;/

2 things I’m going to try:

• Installing VS2015 (so I can get Platform Toolset v140), then rebuilding …
• I remember there being a Pro Tools Development build on the Avid website - maybe I should get that…

Otherwise, I’m f’ing clueless as to why this doesn’t work.
To clarify, PT is now saying that ‘MyPlugin.aaxplugin’ is not a valid 64-bit AAX plugin.

I’m testing right now.
Try finding the .aaxplugin in C:\Program Files\Common Files\Avid\Audio\Plug-ins
This should load in the dev build

From what I’ve read online the CreatePackage.bat file needs to a pre-build script. I apply it as such to the visual studio solution, and it seems not to do much. Oddly when I look at the examples in the SDK and compile them it’s business as usual – very strange!

Has anyone else that is currently reading this recently made a JUCE4+ aax build on a Windows machine?

Rather frustrating!

I made it to the same place today (not a valid 64 bit aax), also left clueless. I’ve stepped away from my windows build machine at the moment, but if you have any luck please fill us in. Thanks so much everyone.

If your folder hierarchy isn’t the same as the demos you’ll have to modify the pre-buid (PreBuildEvent.bat) batch file… or just create the folder(s) yourself manually and then use the CreatePackage.bat steps as a guide on what you need to do.

In your Solution make sure that the extension is set to .aaxplugin and the linker Output is also set to end with .aaxplugin

Rail

1 Like

Is setting the linker & extension in the Project Properties window any different than renaming the file manually after creation?

Thanks

Just read this in the SDK:

The DemoGain plug-in that you just built is not digitally signed, so it will only run in a developer build of Pro Tools or in another host that does not require digital signatures for AAX plug-ins. If you have a developer build of Pro Tools then you can now test the plug-in by installing it and launching Pro Tools. See Install directories section in the Pro Tools Guide document for more information about installing AAX plug-ins for Pro Tools.

So I’m pretty sure you need the Development build of PT to make the plugins, and then, once it’s completed, have it ‘digitally signed’ by AVID to have it run in Regular PT.

AAX Template

Just Rename the Parent folder and then add the Wrapped AAX to Win32 and/or x64 folder.
This works for me

You need the AAX SDK to make the plugins. The Dev Build of PT will run the unWrapped plugins.
Once Wrapped/Signed, then you can open in PT.
So no you don’t need the Dev Build to make the plugins, use for Debugging .