[Solved] AAX wrapper in Pro Tools v10 - Empty GUI

Hello,

just wanted to know if the actual AAX wrapper available in the latest VST3 SDK (v3.6.12, with AAX SDK v2.3) is supposed to support Pro Tools 10.

I’m asking because 2 of my testers, both with PT10 on OSX 10.9 are facing the same issue: the plug-in works but the GUI is basically empty, nothing is loaded but the audio engine apparently works.
The plug-in is compiled as universal binary.

The AU and VST versions are working correctly on the same system, the GUI shows up fine, so it seems like something related to the wrapper, somehow.
On PT11 and PT12 everything works fine as well, so it seems to be an issue affecting PT10 only.

Am I out of luck here and I’m supposed to ditch PT10 support?
What do you suggest?

Regards,
Federico - Ignite Amps

You can try to check the last VST SDK 3.6.13, maybe it is fixed.
We develop and test the AAX wrapper only on the last Pro Tools versions (for now 12: 2018.7.0)

Hi Federico,

I ran into the same issue. The point is that Pro Tools 10 is 32 bits and the Vst2EditorWrapper / BaseEditorWrapper is hard coded to pass kPlatformTypeHIView (Carbon) as the platform type to the underlying IPlugView::attached() function when compiled for 32 bits while Pro Tools in fact uses Cocoa, so it should acutally pass kPlatformTypeNSView.

As a patch you can try something like this in your view’s attached() implementation, so you don’t have to touch the SDK / Wrapper implementation:

...
auto type = platformType;

auto controller = getController();
if(controller != nullptr)
{
	void *ptr;
	auto host = controller->getHostContext();

	// Override view type in Pro Tools 10 (32 bits) if we're running on Mac OS		
	if(host != nullptr && host->queryInterface(IVst3ToAAXWrapper::iid, &ptr) == kResultOk
	&& sizeof(void*) == 4 && type == kWindowRef)
	{
		type = kNSView;
	}
}

...
// NOTE: Don't forget to pass type instead of platformType when calling into CFrame::open()!

Hope that helps.

Best,
Ray

Awesome! Thanks a lot Ray!
Just got it to work by passing kNSView to the CFrame::open(…) when opening the GUI.

You’re welcome. Glad it helped.