| name | validate-pluginval |
| description | Validate VST3 (.vst3) and AudioUnit (.component) plugins with pluginval at configurable strictness levels. Use when user says "run pluginval", "validate plugin", or wants comprehensive cross-format testing. Does NOT support .clap files. For multi-bus VST3 plugins that crash, use validate-vst3 instead. |
| compatibility | macOS, Windows, Linux. AudioUnit validation only on macOS. |
| metadata | {"author":"Oli Larkin","version":"0.0.1"} |
pluginval
Cross-platform validator for VST3 and AudioUnit plugins.
Plugin Install Locations
pluginval accepts a direct path. These are the standard install locations by format.
AudioUnit (.component) — macOS only:
| Location | Scope |
|---|
~/Library/Audio/Plug-Ins/Components/ | Current user only |
/Library/Audio/Plug-Ins/Components/ | All users |
VST3 (.vst3):
| Platform | User Location | System Location |
|---|
| macOS | ~/Library/Audio/Plug-Ins/VST3/ | /Library/Audio/Plug-Ins/VST3/ |
| Windows | %LOCALAPPDATA%\Programs\Common\VST3\ | C:\Program Files\Common Files\VST3\ |
| Linux | ~/.vst3/ | /usr/lib/vst3/ or /usr/local/lib/vst3/ |
Instructions
- Install pluginval (see Installation below)
- Locate the built plugin (
.vst3 or .component) in your build output directory or one of the standard locations above
- Run at strictness level 5 (recommended minimum):
- macOS:
/Applications/pluginval.app/Contents/MacOS/pluginval --strictness-level 5 /path/to/plugin
- Windows:
pluginval.exe --strictness-level 5 "C:\path\to\plugin.vst3"
- Linux:
pluginval --strictness-level 5 /path/to/plugin.vst3
- If it crashes on a multi-bus VST3, use
validate-vst3 instead
- For CI, add
--skip-gui-tests for headless environments
Installation
Download from GitHub Releases.
| Platform | Setup |
|---|
| macOS | Extract and move pluginval.app to /Applications/ |
| Windows | Extract pluginval.exe and add to PATH or use full path |
| Linux | Extract pluginval binary, chmod +x, place in /usr/local/bin/ |
Verify installation:
/Applications/pluginval.app/Contents/MacOS/pluginval --help
pluginval.exe --help
pluginval --help
Basic Usage
/Applications/pluginval.app/Contents/MacOS/pluginval --strictness-level 5 /path/to/plugin
pluginval.exe --strictness-level 5 "C:\path\to\plugin.vst3"
pluginval --strictness-level 5 /path/to/plugin.vst3
Strictness Levels
| Level | Description |
|---|
| 1-4 | Basic tests |
| 5 | Recommended minimum for host compatibility |
| 6-9 | Increasingly thorough tests |
| 10 | Most comprehensive (may take a long time) |
At levels 5+, pluginval automatically runs auval for AudioUnits and VST3 validator for VST3.
Command Line Options
--strictness-level 5
--skip-gui-tests
--timeout-ms 30000
--output-dir /path/to/logs
--output-filename results.log
--repeat 3
--randomise
--seed 0x374115a
--verbose
--sample-rates 44100,48000,96000,192000
--block-sizes 64,128,256,512,1024
--data-file /path/to/config.txt
--disabled-tests /path/to/disabled.txt
--vst3validator /path/to/validator
Environment Variables
All command line options can be set as environment variables by removing the -- prefix, converting dashes to underscores, and uppercasing. Command line options override environment variables.
export STRICTNESS_LEVEL=5
export SKIP_GUI_TESTS=1
export TIMEOUT_MS=30000
export SAMPLE_RATES="44100,48000,96000"
export BLOCK_SIZES="64,128,256,512,1024"
CI Integration
macOS / Linux
pluginval --strictness-level 5 --skip-gui-tests --timeout-ms 60000 /path/to/plugin.vst3
if [ $? -ne 0 ]; then
echo "Plugin validation failed!"
exit 1
fi
Windows (PowerShell)
& pluginval.exe --strictness-level 5 --skip-gui-tests --timeout-ms 60000 "C:\path\to\plugin.vst3"
if ($LASTEXITCODE -ne 0) {
Write-Error "Plugin validation failed!"
exit 1
}
Reproducing Failures
pluginval uses randomness for some tests. To reproduce a failure:
- Note the random seed from the log (e.g.,
Random seed: 0x374115a)
- Re-run with that seed:
/Applications/pluginval.app/Contents/MacOS/pluginval --seed 0x374115a -s 5 /path/to/plugin
Known Limitations
No CLAP Support
Use clap-validator for CLAP plugins.
Multi-Bus VST3 Plugins May Crash
Plugins with multiple audio buses (multi-output instruments, sidechain effects) may crash pluginval during VST3 validation.
Workaround:
- Use the official Steinberg VST3 validator instead
- Test the AU version with pluginval (usually works)
- Verify with
auval for AU format