Skip to content

Releases: pongasoft/jamba

Version 5.1.4

13 Sep 18:04
Compare
Choose a tag to compare
  • Fixed issue #11: create-plugin.py instructions point to wrong configure script
  • Fixed issue #10: jamba is for python 3.7+

Version 5.1.3

04 Jan 19:21
Compare
Choose a tag to compare
  • Fixed compilation issue on Windows

Version 5.1.2

02 Jan 19:26
Compare
Choose a tag to compare
  • Added support for Apple Silicon / universal build and macOS target deployment (no code change)
  • Added (optional) ARCHIVE_FILENAME and ARCHIVE_ARCHITECTURE to the main jamba_add_vst_plugin CMake api

Migration optional

  • Apple Silicon support is optional but if you want to benefit from it you need to change your CMakeLists.txt

Version 5.1.1

07 Dec 19:39
Compare
Choose a tag to compare
  • Added JambaPluginFactory::GetNonDistributableVST3PluginFactory function to create a plugin that would not be distributable
  • Added default implementation to IParamSerializer methods
  • Fixed Audio Unit build (changes in VST 3.7.0)
  • Added missing uninstall-au command to jamba.py

Version 5.1.0

23 Nov 19:19
Compare
Choose a tag to compare
  • Migrated Jamba to use VST3 SDK 3.7.1

Potential breaking changes

  • SDK 3.7.1 made a number of changes in the cmake based build files (mostly renaming) and it is all covered by Jamba unless you have been using those symbols directly in your own cmake build files
  • SDK 3.7.1 renamed the define EXPORT_FACTORY into SMTG_EXPORT_SYMBOL. Jamba is adding it back for backward compatibility (in PluginFactory.h) but you may want to update it.

Version 5.0.0

26 Aug 15:43
Compare
Choose a tag to compare

Version 5.0.0 is a big update and includes the following changes:

  • Migrated Jamba to use VST3 SDK 3.7.0
  • Major refactoring of CMake files to make it easier to use and extend/customize (check CMake Build)
  • Replaced main dev script implementation with a python script (with the added benefit that the Windows version is now on par with the macOS one). Note that the wrapper shell scripts (jamba.sh and jamba.bat) are still the official way to invoke it and jamba.py should be treated as an implementation detail.
  • Improved main script to run multiple commands (ex: jamba.sh test validate)
  • Replaced configure script with a python script (blank plugin now uses it)
  • Added many new (cmake) targets so that you no longer have to rely on the script. For example running the editor can now simply be achieved by building the jmb_run_editor target.
  • Jamba itself has not changed (no new API) and only very few tweaks were required to migrate to 3.7.0

WARNING

Migration required

  • You will need to migrate your main CMakeLists.txt to invoke jamba_add_vst_plugin which is the new (cmake) API to add a VST3 plugin (single call).
  • Note that the zip file generated by the archive command / target is slightly different due to the use of cpack (but due to the CMake refactoring it is easy to turn it off entirely or implement your own)

Potential breaking changes

  • Because Jamba now uses VST3 SDK 3.7.0 there might be APIs that you were using from the SDK that have changed (for example Drag'n'Drop is handled differently)
  • Because the latest VST3 SDK does not include VST2 anymore, you need to provide it as a separate path (VST2_SDK_ROOT)
  • Jamba now has a requirement on python (3) for the script (note that you can disable generation of the script by using the CMake option JAMBA_ENABLE_DEV_SCRIPT in which case python is not required)
  • install command no longer deletes the folder before installation. Use ./jamba.sh uninstall install if you want this behavior.
  • prod command has been removed from main dev script (equivalent to jamba.sh -r -b test validate archive but check migration guide for details on how to add it back as a target if you really need it)
  • Requires CMake 3.17
  • Tested on macOS 10.14.6 with Xcode 11.3.1 (may work with prior versions but untested). Note that there is no requirement changes for Windows.

Misc.

  • If you want to benefit from the new configure python script (configure.py), simply copy it from the blank plugin (it is 100% generic so it will work for any Jamba project)

Version 4.5.0

03 Aug 15:40
Compare
Choose a tag to compare
  • Improved messaging (GUI <-> RT) and VST2 performance by using FastWriteMemoryStream (a faster implementation of MemoryStream)

  • Added the ability to show and dismiss a dialog view (for example, an About view or an alert):

    // Example from some controller (aboutButton is a TextButtonView)
    aboutButton->setOnClickListener([this] {
      fState->showDialog("about_dialog");
    });
    
    // From another controller tied to the about_dialog view (set via the sub-controller attribute)
    dismissButton->setOnClickListener([this] {
      fState->dismissDialog();
    });
    

Version 4.3.0

30 Mar 14:53
Compare
Choose a tag to compare
  • Handle state deprecation which allows a plugin to change the state saved by a previous version in a non backward compatible way (for example removing parameters)
  • Added StepPadView to allow a parameter value to be changed by dragging the mouse (useful for LCD displays, etc...)
  • Fixed MomentaryButtonView to decouple the state of the button with the value of the parameter (which caused several rendering issues)

Version 4.2.0

16 Mar 17:43
Compare
Choose a tag to compare
  • Added ParamImageView to render a parameter value as an image (very useful for status LEDs, etc...)
  • Added ImageView to render an image (useful for static images, logos, decals, stickers, etc...)
  • Upgraded googletest to 1.10.0 (due to CMake caching, this requires deleting the CMake build folder to take effect on existing projects)

Version 4.1.0

09 Feb 18:49
Compare
Choose a tag to compare
  • Due to issues with implicit conversion triggering potential hard crash, deprecated implicit conversion to T for all params (RTRawVstParam, RTParam, GUIRawVstParam, GUIVstParam, GUIJmbParam, GUIOptionalParam).

  • Added convenient dereference operator (operator *) to all params as a shortcut to invoke .value() (which is the preferred way to fix the deprecated warnings)

  • Added convenient equality and relational operators to all params so that the params still continue to behave like the underlying type (T) in many instances

  • Handle toUTF8String() for Jmb parameter when no serializer is provided by checking the availability of ostream<< for T

  • Allow the use of the template name _ for the switch container view (for example to use as an overlay that is shown/hidden)