Jamba - A lightweight VST2/3 framework
Jamba is a set of helpers (classes, concepts, build files, etc...) built on top of the VST SDK to provide a lightweight framework to build a VST2/3 plugin. Jamba has been designed to help in building VST2/3 plugin, not to replace it: you are still writing a VST2/3 plugin, not a Jamba plugin.
Check the Jamba website for more details.
- generate a fully buildable, testable, editable and deployable plugin (see Quick Starting Guide)
- automatically download dependencies
Build & Deploy
- simple script to build, test, validate, edit and install the plugin from the command line (see jamba.sh (.bat)
- build a self contained plugin that depends on the VST3 SDK
- optionally builds a VST2 compatible plugin
- optionally wraps the VST3 plugin into an Audio Unit plugin (macOS)
- build a universal plugin for Apple Silicon support (macOS)
- easily adds resources (images) in a cross platform way
- easily write unit tests for your project
- build on macOS and Windows 10
- package your project as an archive (zip file) for production release
C++ classes & concepts
- pick and choose which feature is useful to you (lots of options to override/change the default behavior)
- define your VST parameters in one location (inherit from
Parameters) and use both in real time processing (RT) and GUI code
- define typed VST parameters (ex: a boolean (
bool) parameter, a gain (
Gain) parameter, etc...)
- use typed VST parameters directly in RT processing code as well as GUI code
- use Jamba parameters for handling non VST parameters (ex: a label/text string cannot be represented by a VST parameters). Jamba parameters can be automatically saved/restored part of the state
- use Jamba parameters to easily exchange messages between RT and GUI (both directions) in a thread safe fashion
- easily create custom views with their creators (so that they appear in the GUI editor)
- easily use multiple parameters in a custom view (ex: a custom display which displays a gain value (parameter 1) in a color depending on parameter 2)
- store/read state in a thread safe fashion (includes version to allow easy state upgrade)
- Jamba Views
Check the Quickstart section to getting started.
5.1.4 | 2021-02-06
In order to work on this project itself (not a plugin), you need to clone this repository and install the VST3 SDK as described in the requirements section. In addition to the unit tests (under
src/test), the embedded
jamba-test-plugin plugin constitutes the main source of testing.
Although this project does not contain a great deal of tests, it is being heavily used (and as a result tested) by the plugins it has been designed to build.
|vst-ab-switch||A/B Audio Switch VST plugin|
|vst-vac-6||VST (2 & 3) plugin to analyze and control the peak volume of a signal|
|vst-sam-spl-64||A free/open source VST2, VST3 and AudioUnit plugin to easily split a sample in up to 64 slices|
|jamba-sample-gain||Documentation plugin for Jamba framework: a simple gain plugin for VST2/3|
This project was created to abstract the common patterns and solutions to many questions implemented across the VAC-6V and A/B Switch vst plugins. Check Announcing Jamba blog post for more details.
- This project uses loguru for logging (included under
- This project uses the VST3 SDK by Steinberg Media Technologies GmbH
Apache 2.0 License. Jamba itself can be used according to the terms of the Apache 2.0 license.
Note that the primary goal of Jamba is to help build a VST3 plugin and as a result you should check the Steinberg License in order to determine under which terms your plugin needs to be licensed.