-
Notifications
You must be signed in to change notification settings - Fork 20
Quick Start Guide (Integrated)
This Quick Start is aimed at developers who have a CMake build process which builds a CLAP and want to extend that to build wrappers for that CLAP in other formats. If you create your CLAP using other means, please see our quick start for standalone wrapping
First, Clone clap-wrapper or make it a submodule of your project.
Then add the clap-wrapper tools to your cmake build path with configuration choices. The following will add clap-wrapper and use CPM to download all the required dependencies. Please note if you choose this option it will download the VST3 SDK which may have license considerations for your project.
set(CLAP_WRAPPER_DOWNLOAD_DEPENDENCIES TRUE CACHE BOOL "Download Dependencies")
add_subdirectory(clap/clap-wrapper)
You will have a target which builds a CLAP. From this we can infer most of what we need to build a VST3, AUv2, and standalone, but you still need to add and in some cases configure explicit targets.
set(VST3_TARGET ${PROJECT_NAME}_vst3)
add_library(${VST3_TARGET} MODULE)
target_add_vst3_wrapper(TARGET ${VST3_TARGET}
OUTPUT_NAME "Your Plugin Name"
SUPPORTS_ALL_NOTE_EXPRESSIONS TRUE
)
You can now build your ${PROJECT_NAME}_vst3
target and a working VST3 will result. The VST3 will try to load your CLAP
from the default CLAP locations, so to work will need the underlying CLAP installed or in your CLAP_PATH
search path.
The wrapper does way more than this. This quick start misses some of our more interesting options, namely:
- It doesn't create a standalone
- It doesn't create an AUv2 on macOS
- The VST3 loads the resulting CLAP dynamically; but there are other strategies to make fully self contained plugins
- You can configure a variety of VST3 and AUv2 options like your IDs and features either through CMake or through extensions.
Each of these are in our expanded developer documentation (Under development).