A powerful C++ tool (JUCE-based) for systematic grid-based sampling of VST3 audio plugins across parameter combinations. Unlike Plugin Doctor's interactive analysis, this tool focuses on automated batch measurement of plugins at different settings, generating comprehensive datasets for analysis.
Key Difference from Plugin Doctor: While Plugin Doctor excels at interactive, real-time analysis of a plugin at specific settings, Plugin Analyser is designed for systematic exploration of the entire parameter space. It automatically tests all combinations of selected parameters and input levels, generating CSV datasets that you can analyze however you need.
Available as both a GUI application and a command-line tool.
- Load and test VST3 plugins offline
- Grid-based parameter sampling: Automatically test all combinations of selected parameters and input levels
- Cartesian product generation: Systematically explore the entire parameter space
- Multiple analysis modes:
- Oscilloscope-style time-domain output
- Linear frequency response
- Harmonic distortion / THD
- Static transfer curve
- Static dynamics (input→output level)
- Export data as CSV for analysis in any tool or language
- CMake 3.22+
- Ninja build system
- C++17 compatible compiler
- JUCE 8.0+ (automatically fetched via CMake)
make build-release # Build in Release mode
make run-gui # Build and run GUI application
make format # Format code with clang-format
make clean # Clean build directoriesmkdir build && cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build . --parallelNote: The Makefile uses Ninja by default for faster builds. If you prefer a different generator, you can modify the Makefile or use CMake directly with -G <generator>.
Two executables will be built:
PluginAnalyser- GUI application (recommended)plugin_measure_grid_cli- Command-line tool
Install pre-commit hooks for automatic code formatting:
make install # Install pre-commit hooks
# or manually:
pre-commit installThis will automatically format C++ files and check for common issues before each commit.
Simply run PluginAnalyser and use the graphical interface to:
- Browse and load a VST3 plugin
- View all available plugin parameters
- Select which parameters to measure
- Configure bucket strategies for each parameter
- Configure measurement settings (signal type, analyzers, etc.)
- Run measurements and view progress
- Export results to CSV
plugin_measure_grid_cli --config config.json --out /path/to/output--config <path>: JSON configuration file (required)--out <path>: Output directory (required, created if needed)--plugin <path>: Override pluginPath in JSON--seconds N: Override duration in seconds--samplerate SR: Override sample rate--blocksize BS: Override block size
See example_config.json for a complete example configuration file.
The tool supports the following analyzers:
- RawCsv: Exports raw time-domain samples (oscilloscope-style)
- RmsPeak: Computes RMS and peak levels for input/output (static dynamics)
- TransferCurve: Maps input→output relationship (useful for Hammerstein modeling)
- LinearResponse: Frequency response from noise or sweep signals
- Thd: Total Harmonic Distortion analysis for sine signals
- sine: Pure sine wave at specified frequency (for THD analysis)
- noise: White noise (for frequency response)
- sweep: Logarithmic frequency sweep (for frequency response)
- Linear: Evenly spaced values between min and max
- ExplicitValues: Use exact values from the
valuesarray - Log: Logarithmically spaced values
- EdgeAndCenter: Three points: min, center, max
The tool generates CSV files in the output directory:
raw.csv: Time-domain samples (if RawCsv analyzer enabled)grid_rms_peak.csv: RMS and peak measurements per rungrid_transfer_curves.csv: Input→output transfer curvesgrid_linear_response.csv: Frequency response (if LinearResponse enabled)grid_thd.csv: THD measurements (if Thd analyzer enabled)
MIT License - see LICENSE file for details.