squz.sh

A simple shell script for Pro Tools Mac computers to help identify which Pro Tools AAX plugins use the JUCE plugin framework. squz.sh just searches for any case-insensitive occurrence of the string "JUCE" within Pro Tools AAX plugin executables. We are assuming that seeing at least one "JUCE" string in a plugin executable is sufficient to identify a plugin as having used the JUCE tooling.

The script also reports if a plugin appears to use the Blue Cat Plug 'n Play framework. It does this by detecting a case-independent occurrence of the string "AngelScript".

Installation

Click here to download the squz.sh script.

Download the squz.sh script. Copy it wherever is convenient, make the script executable, and run it from that location. For example to just test run squz.sh if it was downloaded to the standard Downloads folder then in Terminal.app type the following: (the $ is the shell command prompt, which will likely be different on your computer, don't type that).

$ cd ~/Downloads
$ chmod +x squz.sh

And to check squz.sh works:

$ ./squz.sh -v
Plug-Ins                                 Juce PnS arm64 x86_64 i386 Manufacturer       Short Version          Version
---------------------------------------- ---- --- ----- ------ ---- ------------------ ---------------------- ----------------------
SPL Free Ranger                                         x86_64      plugin-alliance    1.17.1                 1.17.1
BC Phaser 3 AAX(Mono)                         pns arm64 x86_64      bluecataudio       3.42                   3.42
SignalGenerator                          juce     arm64 x86_64      avid               22.12.0.326            22.12.0d326
...
LittlePlate                                       arm64 x86_64      soundtoys          5.3.9.16828 Authorizat 5.3.9.16828
SciFi                                    juce     arm64 x86_64      avid               22.12.0.326            22.12.0d326
Boom                                                    x86_64      wizoo              1.2.1.18799            1.2.1.18799
Eleven Lite                              juce     arm64 x86_64      avid               22.12.0.326            22.12.0d326
PultecEQP-1A                             juce     arm64 x86_64      avid               22.12.0.7              22.12.0d7
BC Gain 3 AAX(Mono)                           pns arm64 x86_64      bluecataudio       3.44                   3.44
ProSubharmonic                           juce     arm64 x86_64      avid               22.12.0.7              22.12.0d7
Youlean Loudness Meter 2                                x86_64      youlean            2.4.3                  2.4.3
Vacuum                                                  x86_64      wizoo              1.2.1.18823            1.2.1.18823
...
bx_rockrack V3 Player                                   x86_64      plugin-alliance    3.8.1                  3.8.1
Superior Drummer 3                       juce           x86_64      toontrack          3.3.5                  35000
BC PatchWork Synth AAX                        pns arm64 x86_64      bluecataudio       2.61                   2.61
moogerfooger RM                          juce     arm64 x86_64      avid               22.12.0.7              22.12.0d7
Tape Echo                                juce     arm64 x86_64      avid               22.12.0.7              22.12.0d7
AIRLo-Fi                                                x86_64      wizoo              1.2.0.18799            1.2.0.18799
AIRDistortion                                           x86_64      wizoo              1.2.0.18799            1.2.0.18799
...
WaveShell1-AAX 14.0                               arm64 x86_64      wavesaudio         14.0.155               14.0.155.156
AIRReverb                                               x86_64      wizoo              1.2.0.18799            1.2.0.18799
BIAS FX 2                                juce           x86_64      positivegrid       2.5.1                  2.5.1.6560.Release
EZdrummer 3                              juce           x86_64      toontrack          3.0.5                  34589
BC Gain 3 AAX(Stereo)                         pns arm64 x86_64      bluecataudio       3.44                   3.44
Precision Time Delay                     juce     arm64 x86_64      eventide           3.7.13                 3.7.13
Precision Time Align                     juce     arm64 x86_64      eventide           3.7.13                 3.7.13
UltraChannel                             juce     arm64 x86_64      eventide           3.7.13                 3.7.13
...
BC FreqAnalyst 2 AAX(Stereo)                  pns arm64 x86_64      bluecataudio       2.42                   2.42
Dither                                   juce     arm64 x86_64      avid               22.12.0.326            22.12.0d326
AIRStereoWidth                                          x86_64      wizoo              1.2.0.18799            1.2.0.18799
Saturation Knob                                         x86_64      softube            2.5.55 (b10267 ab56621 2.5.55
BC Triple EQ 4 AAX(Stereo)                    pns arm64 x86_64      bluecataudio       4.44                   4.44
BF-3A                                    juce     arm64 x86_64      avid               22.12.0.7              22.12.0d7
Melodyne                                          arm64 x86_64      celemony           5.3.0                  5.3.0.011
Trim                                     juce     arm64 x86_64      avid               22.12.0.326            22.12.0d326
Flanger                                  juce     arm64 x86_64      avid               22.12.0.7              22.12.0d7
BIAS Pedal                               juce           x86_64      positivegrid       1.0.0                  2.3.4.5549.Release
...
---------------------------------------- ---- --- ----- ------ ---- ------------------ ---------------------- ----------------------
92 JUCE plugins out of 151 (60%)
17 PnS plugins out of 151 (11%)
---------------------------------------- ---- --- ----- ------ ---- ------------------ ---------------------- ----------------------

Usage

squz.sh -[uvhV] -[c|t]
-u Unused. Report on plugin files in the "Unused" plugin folder instead of the standard plugin folder.
-v Verbose. Also displays plugin architecture, plugin manufacturer, and version.
-h Help. Displays this help/usage information.
-V Version. Display the version of squz.sh and exit.
-c Comma. Output comma-separated values (CSV) suitable for importing into spreadsheets. Each field is double quoted.
-t Tabs. Output tab-separated values suitable for importing into spreadsheets. Each field is double quoted.

About JUCE

JUCE is a popular framework for multi-platform audio plugin development. Many plugin developers utilize JUCE to develop AU, VST, and AAX plugins with minimal porting effort between plugin types. With the transition of Avid Pro Tools to natively support Apple silicon it has become interesting to understand which AAX plugin vendors are using JUCE and if that overall seems to allow developers to migrate to native Apple silicon AAX support faster than other developers.

JUCE is owned by Pace, the company that also develops iLok products.

About Blue Cat Plug 'n Script

squz also prints if a plugin appears to have been build using Blue Cat Plug 'n Script (PNS) tooling. It does this by detecting the case insensitive occurrence of 'AngelScript' string.

Known Problems and Limitations

The rows are sorted in default find(1)/filesystem order, which is likely not helpful. It's better to sort the output using a separate script or to load the CVS or tab-separated output into a spreadsheet and sort there.

This script may not correctly detect if plugins were developed using JUCE or Plug 'n Script or not. It might be possible for a developer to remove/obfuscate any strings, although that seems unlikely. Using strings like this is likely the easiest way to detect plugins using JUCE, for example there does any JUCE linker symbols visible in the plugins.

If Waves Audio plugins are installed the WaveShell will be listed as if it is a separate plugin.

The plugin version is from the plugin's plist CFBundleVersion value. The plugin short version is from the plugin's plist CFBundleShortVersionString value. With Apple software CFBundleShortVersionString is supposed to represent the marketing version of a released product, and CFBundleIdentifier is intended for internal software development use, but not all vendors follow this.

The plugin manufacturer name is derived from the part of the CFBundleIdentifier com.<organization>.<software name>. This results in manufacturer's names that are missing spaces and because developers use inconsistent naming they have all been converted to lowercase. In some cases this also results in older company names appearing for some manufacturers, for example "digidesign" for Avid, and "wazoo" for Air Music Technology.

The previous versions of this script misidentified Softube AAX plugins as supporting arm64 when they did not. This was fixed in version 1.1.2.

License

squz.sh is licensed under the MIT open source license. See the script source for details.