The heavy hvcc compiler for Pure Data patches. Updated to python3 and additional generators
hvcc
will generate a plugin for FMOD Studio and the FMOD Runtime.
The following features are currently supported.
Whether the resulting plugin is considered a generator plugin, like an oscillator , or an fx unit, is determined by the numbers of input/output channels of pd patch.
A patch without an adc~
object is considered a generator.
See also Multi-Channel Plugins
If no additional parameter type is set, all parameters are treated as float by default.
Examples:
r gain @hv_param 0 1 0.5
r toggle_mute @hv_param 0 1 0 bool
r state @hv_param 0 3 0 int
FMOD_DSP_PARAMETER_TYPE_DATA
is not supported currently.
Fmod Studio recognizes certain parameter units like Hz
for example, which affects how values are
displayed.
For further information see: Plugin Parameters
The how input parameters are mapped to their respective range can be further
customized in the resulting <pluginname>.cpp
file.
An appropriate configuration will be selected at compile time based on the
number of inputs and outputs in a patch (e.g. [adc~ 1 2 3 4 5 6]
will create
a 5.1 plugin). As this information is compiled in, the plugins can only be used
on tracks/groups with a corresponding channel configurations.
In case a of a i/o miss-match, fx plugins will return FMOD_ERR_DONTPROCESS
in
the PluginProcess()
callback, effectively bypassing the plugin.
A corresponding <pluginname>.plugin.js
is generated alongside the build
artifacts.
This file can be used to further customize the appearance of the
plugin in FMOD Studio and needs to be placed into the Plugins
folder along with the plugin binary.
The plugin folder contains a CMakeLists.txt
file which will generate a dynamic
and a static library version of the plugin prefixed with lib
.
The static library can be used on platforms that don't support dynamic library loading such as the Nintendo Switch (see Static Plugins).
From within the directory containing the CMakeLists.txt
use.
cmake -S . -B cmake-build-debug -DCMAKE_BUILD_TYPE=Debug
cmake --build cmake-build-debug
Install CMake Tools and
open the fmod
folder containing the CMakeLists.txt
in VSCode.
Check that the [all]
target is selected and run > cmake build
. The resulting binaries
will be placed in build\<CONFIG>
.