AAX GetModifiers 12.5 Win


Can anyone else with Pro Tools 12.5 on Windows verify that the Option/Alt modifier isn’t getting returned correctly in Component::mouseDown() which I believe should get the mods correctly using the AAX GetModifiers().



Win/PT modifier fixes in JUCE 4.1
Command + Arrow key not working in Pro Tools

Yup was able to re-produce this. It also seems that when using Ctrl+Shift, JUCE only detects Shift. I’ll attempt a fix tomorrow.

Also,… and I should probably know this,… is it somehow possible to debug ProTools AAX plug-ins on Windows. Protools always closes complaining about an attached debugger. Debugging works on Mac.


Thanks Fabian,

Check out the Avid dev thread titled: Ensuring correct modifier-click behavior in Pro Tools

I’ll check the 12.4 Dev build/Debugger and get back to you.




I just tested with PT 12.4 Dev and quit while attached… and it quit cleanly. I’ll send you a PM with my debug options.

I was able to debug and step through my plug-in’s code. Make sure the plug-in matches the code in the debugger and all the symbols have been loaded.



You can’t start PT from Visual Studio directly but it should be possible to run PT Dev and attach the debugger. There’s also a digioptions setting to show a popup before the plugins are loaded in case you need to debug the plugin initialisation.


Thanks, that was it!


OK. Please try the develop branch for a fix.


Hi Fabian,

Since I’m stuck on 4.0 until the MultiBus/AudioProcessorGraph is fixed… I merged this into my local copy of JUCE and it tests great.

The only caveat for Alt+click on a slider (or similar) – the plug-in must be clicked on first to get focus before it’ll respond to the Alt-click to reset a slider (or similar) to default.




Hmm that’s strange. I’ll have a look. Also, please know, that multibus fixes are in the works so you’ll soon be able to update.


These seem broken in 12.8 on Windows 10 :roll_eyes:



Oh no not again… the AAX modifier key madness is really the single worst aspect about the AAX SDK. I’ll investigate.




So the modifier keys still seem to work for me in 12.8. You are talking about the focus issue, right?


If it’s the focus issue that you are talking about: are you sure that non-JUCE plug-ins can correctly register the modifier keys when clicking on them when they are not focused? JUCE is correctly calling AAX_IViewContainer::GetModifiers but it simply returns zero on the first click.


No, I have a custom ComboBox in my plug-in and in the parent component:

 void COutputComponent::comboBoxChanged (ComboBox* comboBoxThatHasChanged)
     if (comboBoxThatHasChanged == m_pOutputMenu)
         ModifierKeys mods = ModifierKeys::getCurrentModifiers();


         if (mods.isAltDown())
           // In PT 12.8 on Windows 10 I'm not getting here

           CPlayerAudioProcessor* pProcessor = m_pParent->getAudioProcessor();
           if (pProcessor != nullptr)
                 pProcessor->setAllOutputs (m_szOutput);

I debugged and on mouse move when you check the modifiers it’s not picking up the Alt key reliably… I’ll keep digging. (The VST works fine on the same system).




OK I’m really stumped on this one: in doesn’t seem to be specific to AAX. If you run the standalone version of the plug-in, I get the same result on Windows. The modifiers are not picked up correctly in mouseMove events.

In JUCE the modifiers only get updated when the system sends us key down and key up events. However, since some change in Windows 10, the key down event (WM_KEYDOWN) for modifiers is only sent once the modifier is released (?!?). It is then immediately followed by a key up event. For some reason, when running the plug-in as a VST, everything seems to work correctly.

Has anybody seen this before and can point me to some workaround. It turns out that it’s also really hard to google.


Hi Fabian,

I’m just putting out another fire related to Waves plug-ins… I had to modify the JUCE VST scanner code to deal with a single (out-dated) WaveShell bundle crashing causing all the rest of the Waves plug-ins to be ignored… but that’s another issue and I’m almost done with the patch.

I’ll look into this later today.

Thanks for looking into it.



So I took the Plug-in demo and added a ComboBox to it and it’s detecting the Alt key and other mod combos I use okay in the comboBoxChanged() callback in Standalone.

I see the same behavior as you do where the system only send the plug-in the ALT key on key up… but if you click a mouse button while you have a modifier depressed… then it works… which is fine for my use.

I’ll now try and build the demo as an AAX and test it.

The answer to the Key Down issue may be answered using LowLevelKeyboardProc ?





So in the AAX using


in the comboBoxChanged() callback doesn’t work… but if I check the mods in the actual ComboBox derived class’ mouseDown() and mouseUp() using the MouseEvent mods variable the mod state is correct… so I’ve just created a few boolean class variables to get the mods’ state(s) in the comboBoxChanged() and that’s working on all platforms.




So I did a comparison between my plug-in and Waves C6 and the stock PT EQ…

The non-JUCE plug-ins respond immediately to an Alt+click, where with my plug-in I have to Alt+click twice (once to get focus and then to reset).