Start Developing

Start Developing

It is easy to connect your products to vcontrol and be compatible with the latest, innovative control surfaces. You can download the open source code at You can also download open source utilities at

The following steps will make your module connect to the libvcontrol shared library which connects modules to control surfaces.

add two files to your module project: /module/vcinterface.c, includes/vcontrol.h
option 1 – use a helper class

if your project is an audio plug-in (Audio Unit, AAX, VST, Juce), you can use one of the helpers in /module/helpers to connect your plug-in with one or two lines of code and you are finished.
option 2- use the vcontrol API directly

call VControlModuleCreate(…)
set up the module parameters with VControlModuleAddControl(…)
set up a callback function with VControlModuleSetControlCallback(…)
call VControlModulePublish(…)
call VControlModuleUpdateControlValue(…) any time the module parameters are changed.
respond to the SetControlCallback to set parameters.
there are additional API you can optionally use to provide a richer control experience for users controlling it remotely.


An audio plug-in is a special case for vcontrol because often an audio workstation will have many instances of the same plug-in running, such as an EQ on every track. Any plug-in that can have multiple instances running should create a module array which will be a parent module containing one or more submodules that represent each plug-in instance. A module array allows control surfaces to manage all your plug-ins efficiently. Look at he audio helper classes to see example code.

That’s it to connect your module to the vcontrol system and be controllable by control surfaces.