Loading custom session data from old AAX (non-JUCE) plug-ins?


It looks like the default method for handling loading of old non-JUCE AAX session data is to simply call AAX_CEffectParameters::SetChunk(), which cycles through the parameters, reading them in according to their type. That’s fine, if the old non-JUCE plug-in used that default reading behavior. But we have some plug-ins that had overridden SetChunk(), to read the data differently. Is there any way for our new JUCE-based updates to those plug-ins to read the old data using a custom method? The code in the wrapper only calls our processor’s setStateInformation() function if the chunk type has the correct JUCE ID (juceChunkType). Is there a way to override JUCE_AAXProcessor::SetChunk(), (for AAX plug-ins only)? I don’t see how, given that there does not seem to be a way in JUCE to know that it’s AAX at compile time (because the #define in AppConfig.h overrides the setting in the Xcode project).


There’s under the aax wrapper

#ifndef JucePlugin_AAX_Chunk_Identifier
 #define JucePlugin_AAX_Chunk_Identifier     'juce'

This is only for AAX so if you a have single chunk id you can keep using it and have a different approach for aax by checking plug-in format at runtime.


I’m not sure I understand. I have existing plug-ins in the field, with non-JUCE chunk data. The wrapper’s SetChunk() function first checks if the data contains the JUCE chunk ID. If not, it calls AAX_CEffectParameters::SetChunk() and returns, without ever calling my processor’s setStateInformation() function. Where in the code would I conduct a run-time check that would allow me to modify that behavior?


Did you try adding your projucer a define with your identifier? (that’s why I’ve wrote before."

For example:

 #define JucePlugin_AAX_Chunk_Identifier     'antrs'

under Preprocessor definitions

this should if I get the code right would get your existing plug-ins chunk to AudioProcessor::setStateInformation

from there you can query the wrapperType and branch for VST/AAX/etc…


I’ll have to look and see what exactly is contained in the old AAX chunk data. I don’t know that it’s an ID in that position at all. It might be, but I’ll have to inspect to see. Thanks!