This project is a VST implementation of the A/B Audio Switch rack extension. You can check the A/B Switch documentation directly.
This project is connected to the VST Development Notes blog post series.
- Upgraded to Jamba 7.1.3 / VST3 SDK 3.7.12
- Removed support for VST2
Note
This version is not released because there are no new features or bug fixes, and since
it removes support for VST2, it is not released at the moment.
master
has been updated to the latest version of Jamba / VST3 SDK so that it compiles with
more recent versions of macOS / Windows.
- Use of jamba framework and VST SDK 3.7.0
- Use of
ParamImageView
for LED status lights - Added support for Audio Unit
- Added support for Apple Chipset / universal build on macOS
- fixed memory allocation in the real time processing issue
- fixed soften status not being saved
- Now builds on Windows as well
- the logic is fully implemented: switching between A & B, optional cross fading (soften feature), ability to name each input, LED audio on status light
- the UI is now similar to the rack extension UI
- see A/B Switch documentation
- the logic is fully implemented: switching between A & B, optional cross fading (soften feature), ability to name each input, LED audio on status light
- no "pretty" UI
- see VST Development Notes (3.6.9) - Part 4 for details
- the plugin has a small UI with text and a switch to toggle between input A and B
- the basic logic is working => toggling between A and B actually toggles which input is copied to the output
- see VST Development Notes (3.6.9) - Part 3 for details
- the plugin uses SDK 3.6.9
- the plugin compiles while depending on the SDK (following this other project vst3-again-sample)
- the processing part is doing exactly what the vst24-hello-world plugin is doing: simply removing 3dB by multiplying every sample by 0.5 (as a way to check that the processing part is being executed properly)
- the controller part (UI) is a black square and by right clicking in it you can enter the inline UI editor that comes built-in with VSTGUI 4! (if compiled in
Debug
mode). - see VST Development Notes (3.6.9) - Part 2 for details
Check the Jamba README file for instructions on how to install and configure the VST3 SDK.
The following steps describes how to build the plugin:
- Invoke the
configure.py
python script to configure the project - Run the
jamba.sh
(resp.jamba.bat
) command line to build, test validate...
For simplicity I am creating the build at the root of the source tree, but can obviously be outside the source tree entirely by running the script from anywhere
> ./configure.py -h # to see the help
> ./configure.py
> cd build
> ./jamba.sh -h
For simplicity I am creating the build at the root of the source tree, but can obviously be outside the source tree entirely by running the script from anywhere. Note that PowerShell is highly recommended.
> python configure.py -h # to see the help
> python configure.py
> cd build
> .\jamba.bat -h
These are the parameters used by this plugin:
| ID | TITLE | TYP | OW | TRS | SHA | DEF.N | DEF.S | STP | FLG | SHORT | PRE | UID | UNS |
-------------------------------------------------------------------------------------------------------------
| 1000 | Audio Switch | vst | rt | | | 0.000 | A | 1 | 1 | Switch | 4 | 0 | |
-------------------------------------------------------------------------------------------------------------
| 1010 | Soften | vst | rt | | | 1.000 | On | 1 | 1 | Soft | 4 | 0 | |
-------------------------------------------------------------------------------------------------------------
| 1020 | Audio On | vst | rt | x | | 0.000 | Off | 1 | 2 | | 4 | 0 | |
-------------------------------------------------------------------------------------------------------------
| 500 | Label A | jmb | ui | | | | Input Label A | | | | | | |
-------------------------------------------------------------------------------------------------------------
| 501 | Label B | jmb | ui | | | | Input Label B | | | | | | |
-------------------------------------------------------------------------------------------------------------
This project uses loguru for logging.
GPL version 3