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 github.com/pneyrinck/vcontrol. You can also download open source utilities at github.com/pneyrinck/vcontrol_utils.
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
set up the module parameters with VControlModuleAddControl(…)
set up a callback function with VControlModuleSetControlCallback(…)
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.
ADDITIONAL NOTE FOR AUDIO PLUG-IN DEVELOPERS
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.