AudioBuffer & AAX


#1

Inside my plugin’s processBlock function, i need to detect empty buffers (silence).

float maxVal = buffer.getMagnitude (0, buffer.getNumSamples());

So if maxVal is zero, buffer is empy. This is working perfect with VST format for example.
Unfortunately, this is not the case with AAX - when buffer is empty, instead of zero i get value 2.1684e-019.

I guess this is because Pro Tools are using fixed-point format? If so, what is the best way in JUCE to convert fixed-point values to floats? Am i missing something?

Thx!


#2

It’s not because of fixed-point; TDM was fixed-point but AAX is floating. Here’s the actual root cause, from the Avid dev forum:

The “silence” signal which Pro Tools routes to native (i.e. non-HDX) signal chains includes a pulse with value 2^-62 every 32 samples. You can use this level as your silence threshold. Alternatively, you can use -144 dB, which is the canonical threshold considered as silence for Pro Tools features such as Dynamic Plug-In Processing and Track Freeze.


#3

Thank you very much !!!