• Stars
    star
    115
  • Rank 305,916 (Top 7 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A lightweight VST2/3 framework

Jamba - A lightweight VST3 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 VST3 plugin. Jamba has been designed to help in building VST3 plugin, not to replace it: you are still writing a VST3 plugin, not a Jamba plugin.

Check the Jamba website for more details.

Run Tests (macOS) Run Tests (Windows)

Features

Bootstrap

  • 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 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

Getting Started

Check the Quickstart section to getting started.

Latest Release

7.0.1 | 2023-05-27

Release notes (local)

Release notes (web)

Development

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.

Plugin Description
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 VST3

History

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.

Misc

  • This project uses loguru for logging (included under src/cpp/pongasoft/logging)
  • This project uses the VST3 SDK by Steinberg Media Technologies GmbH

Licensing

  • 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.

More Repositories

1

glu

Deployment Automation Platform
Groovy
519
star
2

vst24-hello-world

This project contains a "Hello World" style application for building a VST 2.4 plugin
C++
35
star
3

vst-sam-spl-64

A free/open source VST2, VST3 and AudioUnit plugin to easily split a sample in up to 64 slices
C++
34
star
4

vst3-again-sample

Example of a self contained VST3/VST2 plugin that is not part of the SDK
C++
24
star
5

gradle-plugins

This project contains a set of useful gradle plugins
Groovy
20
star
6

kiwidoc

A fresh way to browse and search javadoc
JavaScript
17
star
7

re-edit

RE Edit is a free and open source WYSIWYG editor for the UI of a Rack Extension - https://pongasoft.com/re-edit/
C++
15
star
8

re-cmake

CMake based build framework for building Rack Extensions which are audio plugins for Reason, the Reason Studios DAW
CMake
11
star
9

re-cva-7

CVA-7 is a free rack extension for Reason, the music DAW produced by Reason Studios. It is a utility which lets you analyze a CV signal in various ways
Lua
9
star
10

jamba-sample-gain

Documentation plugin for Jamba framework: a simple gain plugin for VST2/3
C++
6
star
11

re-mock

Testing framework for rack extensions (for Reason DAW by Reason Studios)
C++
5
star
12

re-ab-switch

A/B Switch is a free rack extension for Reason, the music DAW produced by Reason Studios. This 1U utility lets you switch with one simple click between 2 audio inputs and independently 2 CV inputs.
C++
5
star
13

re-common

Common code used across pongasoft rack extensions (for Reason DAW by Reason Studios)
C++
4
star
14

vst-ab-switch

A/B Audio Switch VST plugin
C++
4
star
15

re-blank-plugin

Blank Rack Extension (for Reason Studios DAW) | Example usage for re-cmake
CMake
4
star
16

re-ab12-audio-switch

A/B 12 Audio Switch is a free rack extension for Reason, the music DAW produced by Reason Studios. This 2U utility lets you switch between 12 audio stereo inputs using various approaches.
Lua
3
star
17

vst-vac-6v

VST (2 & 3) plugin to analyze and control the peak volume of a signal
C++
3
star
18

re-quickstart

This project is the code that drives the "Rack Extension - Quick Start" dynamic section - https://pongasoft.com/re-quickstart/index.html
Kotlin
3
star
19

re-vac-6

VAC-6 is a free rack extension for Reason, the music DAW produced by Reason Studios. This 2U utility lets you analyze and control the peak volume of a signal.
C++
2
star
20

glu-contribs

Scripts, tutorials, miscellaneous contributions to glu
Groovy
1
star
21

pongasoft.github.io

HTML
1
star
22

re-ab12-audio-out-switch

A/B 12 Audio Out Switch is a free rack extension for Reason, the music DAW produced by Reason Studios. This 2U utility lets you split one input into 12 audio stereo outputs using various approaches.
Lua
1
star