Skip to content

Building

eddie_dodd edited this page Sep 9, 2026 · 1 revision

Building

You need the VCV Rack 2 SDK. Point RACK_DIR at it and run make:

RACK_DIR=../Rack-SDK make

That produces plugin.dll, plugin.so or plugin.dylib depending on the platform. make install copies it into your Rack plugins directory.

The two checkers

Neither runs as part of the normal build. Both are there because the things they catch cannot be caught by reading the code.

panelcheck

tools/panelcheck.sh

Parses every panel with Rack's own nanosvg, which is the only parser whose opinion matters, and checks:

  • the page size is 128.5 mm tall and a whole number of HP wide
  • nothing overflows the panel edge
  • the hidden components layer is not being drawn
  • no <text> elements survive, since nanosvg ignores them and the labels would simply be missing

Rendering a panel with Inkscape proves nothing about how Rack will draw it. Inkscape has a full SVG implementation and nanosvg does not.

dspcheck

tools/dspcheck.sh

Builds a small program that drives every module's process() offline and asserts the output is audible, finite, bounded, stereo, and correct across sixteen polyphonic channels and three sample rates.

It links against libRack.dll, so it needs an installed copy of Rack rather than only the SDK.

The sixteen channel case is the one that earns its keep. Polyphony bugs are quiet: a module that shares one delay line across all channels still produces sound, and still sounds like a flanger, and is still wrong.

Regenerating panels

python scripts/genpanels.py

Needs fonttools and DejaVu Sans. See Panels.

Clone this wiki locally