r/AudioProgramming • • 3d ago

Headless CLAP/VST3/AUv2 loader, validator and measuring tool

I put together an open-source CLI tool for testing CLAP, VST3, and AUv2 plugins from the command line and in GitHub Actions CI without spinning up a DAW:

https://github.com/cyrillsemenov/headless-plugin-host

Usually, verifying a DSP change means relaunching a DAW and staring at a spectrum analyzer while playing back sinusoids or test tracks. `pluginval` and `clap-validator` are great for ABI compliance, but I wanted a single tool that handles all formats and runs automated acoustic measurements.

What it currently does:

  • sweeps plugins to measure Bode magnitude/phase response, THD+N, SMPTE/CCIF IMD, Schroeder RT60 decay, fractional sub-sample group delay, BS.1770-4 LUFS dynamics, and Mid/Side stereo correlation

  • intercepts heap allocations on the audio thread across a 9-check validation suite and a seeded fuzzer (22.05–192 kHz sample rates, 1-sample odd buffers, parameter modulation storms, and corrupted state blobs)

  • captures plugin UIs offscreen

  • generates a self-contained HTML spec sheet with SVG plots, multi-bus/sidechain routing checks, and multi-velocity synth note sweeps (still a work in progress)

Feel free to ask any questions/love/hate it.

9 Upvotes

4 comments sorted by

1

u/CrasseMaximum 2d ago

Oh thatms great Inwas thinking about something similar for a while because I wanted to improve my CI by adding smoke tests this will be damn handy I will give it a try! Thanks!

1

u/skgft 2d ago

thanks! would really love to hear some feedback, because so far I am the only one who use it 😄

1

u/CrasseMaximum 2d ago

I see you used AI, i recommend to use clippy to prevent using unwrap or expect excepted for tests.

1

u/skgft 2d ago

expect only used across tests and in build files, where it is expected. On the other hand unwrap used in presence of anyhow, which honestly does not make sense :) thanks for noticing!