Feature Request: Short AAX plugin names

projucer

#1

In Pro Tools, AAX plugin names can be severely shortened in certain views, resulting in abbreviations that are only a few characters long. For example, “Ghz Vulf Compressor 2” could be shortened to “G2” in the narrow mix view. For that reason, AAX plugins can provide multiple shortened name strings so that the plugin name will be shortened to more useful abbreviations (ex. “VC2” instead of “G2”), but Juce does not currently support this.

I’d like to request an additional jucer field, something like JucePlugin_AAXShortNames that would allow us to specify multiple shortened AAX plugin names, similar to JucePlugin_AAXCategory (where multiple categories can be combined via the | operator).

The modification to the AAX wrapper could be something like this (in getPlugInDescription()):

String shortNames (JucePlugin_AAXShortNames);

while (shortNames.isNotEmpty()) {
    descriptor.AddName (shortNames.upToFirstOccurrenceOf ("\n", false, true).toRawUTF8());
    shortNames = shortNames.fromFirstOccurrenceOf ("\n", false, true);
}

I’ve used “\n” for delimitation here, but anything could work.


#2

Sounds like a reasonable request. Just a quick question: is it well-known what the string lengths are of the shortened strings that ProTools uses? I’m asking this because VST2 also wants shortened strings. We could solve the issue in both backends by adding the following callback to AudioProcessor:

virtual String getShortenedPluginName (int maxStringLength);

In the AAX wrapper I could then register several names with different lengths. Something like this:

for (auto strLength : {2, 3, 5, 7}) // <- let me know which name lengths ProTools uses
    descriptor.AddName (pluginInstance->getShortenedPluginName (strLength).toRawUTF8());

What do you think?


#3

I’ll chime in saying that probably it is not needed to know which exact lengths are used by Pro Tools: you could simply loop strLength from 2 up to the length of the full name of the plug-in.

I hope Pro Tools will be smart enough to cope with the probably duplicated names that will be returned by getShortenedPluginName() for that range of values.

Disclaimer: it’s just an idea, I haven’t actually tested this or experience about this specific issue.


Displayed names in PT insert slot
#4

Hi Fabian, thanks for the response! As far as I know, the shortened string lengths are totally arbitrary in Pro Tools (especially for any control surfaces that might display the plugin name). In practice, we provided something like this, which seemed to cover most situations:

"Ghz Vulf Compressor (VC2X)"
"Vulf Compressor (VC2X)"
"VC2X"
"VC"
"V"

I like the getShortenedPluginName callback idea but do think it’d be nice to be able to provide as many names as needed, rather than have JUCE ask for a predefined set. Perhaps we could return a StringArray instead?


#5

Small naming OT: perhaps it could be better to avoid the “plugin” word in the method name.

I know that the inclination to identify the AudioProcessor with a plugin is strong, particularly because it is used as the incarnation of the least common denominator among all different plug-in wrappers, but there are other contexts (e.g. AudioProcessorGraph) where they live a life on their own.

In those cases, having to ask an AudioProcessor for its shortened plugin name would feel kind of weird.


#6

OK this is on develop now.


#7

Thank you!!