Feat. Request: Pro Tools Mix EQ Graph


#1

Now that the cat is out of the bag (https://www.kvraudio.com/news/avid-releases-pro-tools-2018-40094). would be nice if it’ll be available from the wrapper to the AudioProcessor.


#2

Is it adjustable from the AAX wrapper? Logic has something similar, but only the built-in EQ can use it and it’s not part of the AU standard.


#3

I believe the code is already in the wrapper… see getMeterTypeForCategory() and addAAXMeters()

Rail


#4

I believe that EQ curve support is separate from the AAX meters. We would also love to see support for this.


#5

Meters aren’t the same as the curve…

An example of missing implementation is:

virtual AAX_Result AAX_IACFEffectParameters::GetCurveData ( AAX_CTypeID iCurveType, const float * iValues, uint32_t iNumValues, float * oValues ) const

But it does require some work to add it to the wrapper and expose it to the AudioProcessor.


#6

@fabian any chance of looking into this?


#7

Bump. I’d like to see this also!


#8

Hmmm I’m looking into this feature and it’s definitely something that JUCE could support.

However, I’m not super familiar with ProTools: how do I open one of these mix EQ graphs in ProTools?


#9
  1. It requires Pro Tools 2018.1 or greater (so you might need to sign your AAX to actually test it).
  2. From a supported version it is simply selecting within the Mixer Window view to show EQ Curve.

https://www.avidblogs.com/pro-tools-2018-1-mixing-ui/

(look at the video from 0:08)


#10

There is a way to get the Dev build to show the meters (it was in the AAX doc using the options file).

Rail


#11

OK this feature will be on develop shortly with commit 4d0b116.

You support the new eq graph by implementing a new AudioProcessor callback AudioProcessor::getAAXCurve which will return a Curve struct containing a lambda. Here is a usage example:

CurveData getResponseCurve (CurveData::Type curveType) const override
{
    if (curveType != CurveData::Type::EQ)
        return {};
    
    auto sampleRate = static_cast<float> (getSampleRate());
    
    AudioProcessor::CurveData curve;
    curve.xRange = Range<float> (0.0f, sampleRate / 2.0f);
    curve.yRange = Range<float> (-100.0f, 0.0f);
    
    curve.curve = [sampleRate] (float freq)
    {
        return jmax (-100.0f, std::log10 (std::cos (float_Pi * (freq / sampleRate))) * 20.0f);
    };
    
    return curve;
}

#12

I suggest making an API that isn’t AAX-specific.

AU also “has”[0] a similar feature with the kAudioUnitProperty_FrequencyResponse property. And other formats may also add similar features (or already have them).

[0] Even though the standard mentioned it, I’m not aware of support in any host. Logic does display a frequency curve for its own built-in eq but I recall testing many years ago if Logic 9 supported this feature and at the time it didn’t seem so.


#13

Looking at past JUCE code it seems JUCE really tried to keep the description future proof.
Here are some examples with AAX in-mind:

AudioProcessorEditor:

  • setControlHighlight() - AAX only
  • supportsHostMIDIControllerPresence() - AUv3 only
  • getControlParameterIndex() - AAX only

AudioProcessor:

  • AudioProcessorParameter::Category - currently really implemented for AAX.

#14

OK I’ve renamed the method (and a fixed a conversion warning). It will appear on develop shortly.


#15

Has anyone had luck with the Dynamics or GainReduction curve types, or are they even available in Pro Tools? We have a plugin that had a gain reduction meter and we want to try out the graph display, but I can’t seem to get any type to show other than CurveData::Type::EQ.


#16

AFAIK, the other graphs are only supported on Avid’s consoles (like an S6).