Skip to content

Releases: pongasoft/jamba

Version 7.0.1

27 May 17:41
Compare
Choose a tag to compare
  • Use download url/hash in blank plugin

Version 7.0.0

25 May 18:50
Compare
Choose a tag to compare
  • 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 with win32resourcestream.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 your CMakeLists.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), any vst2_sources will try to get compiled and this will no longer work

Version 6.3.0

14 May 17:51
Compare
Choose a tag to compare
  • Fixed NaN issue with stringToFloat by changing its return convention (0 instead of NaN) due to fast-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

27 Apr 17:52
Compare
Choose a tag to compare
  • 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

19 Apr 17:25
Compare
Choose a tag to compare
  • Enhanced AudioBuffer API

Version 6.1.0

15 Apr 18:20
Compare
Choose a tag to compare
  • 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

02 Jun 17:33
Compare
Choose a tag to compare
  • Fixed gtest crash on Apple M1 platform

Version 6.0.0

30 May 17:42
Compare
Choose a tag to compare
  • 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 the VST3Inspector tool
  • Added info command to run the moduleinfotool 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 when VST2 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 use Steinberg::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 and GlobalKeyboardHook::onKeyUp methods have been replaced by
    a single GlobalKeyboardHook::onKeyboardEvent (due to changes in the SDK)

Version 5.1.5

13 Sep 18:05
Compare
Choose a tag to compare
  • 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 of gtest_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

02 Jun 17:32
Compare
Choose a tag to compare
  • Updated loguru to latest (as of master on 2020-03-31)

  • Added missing using types and toUTF8String() methods to XXXParam 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 (using Timer 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.