Questions about using the Juce 3.0.5


#1

Hi ,

 

I just upgraded my projects from juce 2.0.40 to juce 3.0.5 to get new features.

Two questions:

1) My build setting on Mac/Xcode is universal(32/64). I found that the file size of my built/output product on Mac is almost halved compared with my build using the old juce. Is that a normal scene I should expect?

2) This is an important one, though AU, RTAS and vst are wokring fine now. My AAX builds on Mac and Win cannot generate audio after the upgrade, they can be launched in PT10 and PT11. Either AAX 32bit on PT10 or AAX 64bit on PT11 is not giving any audio. 

I am still debugging right now, waiting for PACE to give me a Pro Tools development build license... I post these stuff here just in case anyone can have some insights.

 

Some follow up: I replaced the juce 3.0.5 AAX wrapper sources(the two files, .mm and .cpp) with the juce 2.0.40 AAX wrapper srcs. Then the AAX plugin has its audio back. I will still wait for the PT dev build license to take a debug and have a look.. I also tried the juce 2.1.5's aax wrapper, which has no audio registering, like the case in 3.0.5.

 

Some more follow up of my debug findings, the PROBLEM is in: 

AAX_Result UpdateParameterNormalizedValue (AAX_CParamID paramID, double value, AAX_EUpdateSource source) override

This function is called by PT. 

Using the aax wrapper of juce version 3.0.5, this function is called by PT after my parameter initialization and set them all back to 0...The value in here is always 0. I monitored the values when the host first gets parameter values from me. I used 

parameter->GetValueAsFloat(&testa);

parameter->GetNormalizedDefaultValue();

parameter->GetNormalizedValue();

 

in the function 

addAudioProcessorParameters()

And the values it got and added to the wrapper are correct. 

Using the aax wrapper in version 2.0.40, this function is also called but the values are correct. They are the right values it firstly required from the getParameters() from my processer.

 

So why the wrapper in 3.0.5 always has value=0 passed in UpdateParameterNormalizedValue() hence set all params back to 0..

Do I miss some steps?

Thanks!

 

s


#2

Ok, There is a new function I did not override in my AudioProcess, which is:

 

getParameterDefaultValue(int index);

 

The default of this returns all 0 to the host.

 

And the current aax wrapper overrides the

AAX_Result GetParameterDefaultNormalizedValue (AAX_CParamID paramID, double* result) const override

 

And this is called by the PT when launching the plugin. So all my parameters are 0 on startup.

 

Why not make the getParameterDefaultValue(int index); a pure virtual function to let the compiler notify us its existence..

Thanks jules.