Releases: pongasoft/jamba
Version 7.0.1
Version 7.0.0
- Migrated Jamba to use VST3 SDK 3.7.8 (release notes). Please check other release notes to see what has changed since 3.7.5 (last Jamba supported version).
- As explained in issue #16, Jamba is no longer supporting VST2
- Added a way to patch the SDK by defining the CMake cache string
JAMBA_VST3SDK_PATCH_DIR
(Jamba uses it on Windows/DLL build to fix an issue withwin32resourcestream.cpp
, but you can also use it for your own purposes): by defining this variable, 2 things happen- Jamba copies the SDK inside the build folder
- Jamba copies all the files under
${JAMBA_VST3SDK_PATCH_DIR}
on top of this copy while never modifying a local version of the SDK
Migration suggested
Remove the
option(JAMBA_ENABLE_VST2 "Use VST2" ON)
entry from yourCMakeLists.txt
(and you can clean up any references to vst2 if you want to).Note that if you do not remove it (or set it to
OFF
), anyvst2_sources
will try to get compiled and this will no longer work
Version 6.3.0
- Fixed NaN issue with
stringToFloat
by changing its return convention (0
instead ofNaN
) due tofast-math
option which assumes that there is no NaN in the code. - Fixed invalid
version.h
file generated on Windows - Integrated with GitHub actions in order to do a matrix style testing (which uncovered the 2 previous issues)
- Windows 10 Visual Studio 2019 & 2022
- macOS 11 (Xcode 13.2) & macOS 12 (Xcode 14.2)
Version 6.2.1
- Fixes compilation issues with XCode 14+
- Automatically adds libraries (
LINK_LIBRARIES
) to the universal build (M1 builds) - Removed most warnings coming from the SDK/Jamba
Version 6.2.0
- Enhanced
AudioBuffer
API
Version 6.1.0
- Added support for arrays of properties (see Plugin.h for a full example). For example, you can now write:
// Parameters VstParams<bool, 2> fArrayVst; // State RTVstParams<bool, 2> fArrayVst;
- Upgraded GoogleTest to 1.13.0 (and download a zip instead of cloning the repo)
Version 6.0.1
- Fixed gtest crash on Apple M1 platform
Version 6.0.0
- Migrated Jamba to use VST3 SDK 3.7.5 (introduces breaking changes)
- Requires CMake minimum version 3.19 (SDK requirement)
- Added
inspect
command to run theVST3Inspector
tool - Added
info
command to run themoduleinfotool
tool (new since SDK 3.7.5) - Generate and bundle
moduleinfo.json
(new since SDK 3.7.5) - On Windows, build a module (
.vst3
folder) instead of a DLL whenVST2
is disabled - Use json format instead of xml (new since SDK 3.7.2)
Migration required
InitModule()
(resp.DeinitModule()
) cannot be used anymore (since the SDK now implements them).
Instead, you need to useSteinberg::ModuleInitializer
(resp.Steinberg::ModuleTerminator
) concept.
If your code simply has empty implementations for these functions, you can safely delete them.- You should provide the version of the plugin in the project definition (required by
moduleinfotool
)# From CMakeLists.txt project(MyPlugin VERSION "${PLUGIN_VERSION}")
- The
GlobalKeyboardHook::onKeyDown
andGlobalKeyboardHook::onKeyUp
methods have been replaced by
a singleGlobalKeyboardHook::onKeyboardEvent
(due to changes in the SDK)
Version 5.1.5
- Added support for snapshot
- Processes
Info.plist
through CMake replacement, thus allowing to inject dates, versions, etc... - Processes
Info.plist
through Xcode preprocessing when using Xcode generator - Fixed issue when plugin was generated without Xcode generator (macOS only) which lead to an
Info.plist
without
proper version - Use latest version of GoogleTest (get rid of CMake warnings)
- Use
gtest_discover_tests
instead ofgtest_add_tests
to minimize CMake invocation when building tests - Make sure that
.rc
file gets regenerated properly when resource files change (Windows) - Fixed test issue
Potential breaking changes
Due to the change in
Info.plist
processing, you should replace:<-- File mac/Info.plist --> <-- Replace this (processed only via Xcode preprocessing) --> <key>CFBundleExecutable</key> <string>$(EXECUTABLE_NAME)</string> <-- With this (processed with all generators) --> <key>CFBundleExecutable</key> <string>@MACOSX_BUNDLE_EXECUTABLE_NAME@</string>Note that since Audio Unit plugins are only generated with the Xcode generator, this change is not necessary for
audio-unit/Info.plist
Version 4.4.0
-
Updated loguru to latest (as of master on 2020-03-31)
-
Added missing
using
types andtoUTF8String()
methods toXXXParam
classes -
Added
resetToDefault()
method to all parameters (since a default value is provided when the parameter is created, it is a very convenient way to get back to it without having to know about it and using some global constant) -
Added
ExpiringDataCache
concept (usingTimer
from the VST3 SDK) -
Renamed the plugin file from the blank plugin to
Plugin.h
(instead of the name of the plugin) -
Changed the way the plugin gets registered to the VST3 world (implements the main
GetPluginFactory()
function) with an easier and less error prone syntax:EXPORT_FACTORY Steinberg::IPluginFactory* PLUGIN_API GetPluginFactory() { return JambaPluginFactory::GetVST3PluginFactory< pongasoft::test::jamba::RT::JambaTestPluginProcessor, // processor class (Real Time) pongasoft::test::jamba::GUI::JambaTestPluginController // controller class (GUI) >("pongasoft", // vendor "https://www.pongasoft.com", // url "[email protected]", // email stringPluginName, // plugin name FULL_VERSION_STR, // plugin version Vst::PlugType::kFx // plugin category (can be changed to other like kInstrument, etc...) ); }
-
This new syntax is optional and the old/macro based syntax is still valid and acceptable (new blank plugins will be created using this new methodology). If you want to migrate your codebase to the new factory you can check this commit for the
JambaSampleGain
project as an example.