Skip to content
Paul edited this page Oct 13, 2024 · 16 revisions

The clap wrapper is still an undergoing project, and we are not yet at a 1.0 release.

In August 2023, we started the process of tagging checkpoint versions either as we reached internal milestones or before we began new substantial development

0.11.0 (October 2024)

  • Windows Standalone substantial improvements

    • The Windows Standalone has a complete refactor
    • An audio/midi settings screen is in place
    • builds with various compilers and compiler versions
    • Properly defines unicode, handles UTF16 files
    • correctly factor CMake to not leak NOMINMAX, etc..
    • complies without warning even at high warning levels
  • VST3

    • Test the VST3 extensively with linux hosts, and adjust
    • Implement several API points required for the VST3 in Ardour
    • Implement Steinberg::IPlugViewContentScaleSupport properly for scaling on Linux/Win
    • Implement SingleComponentEffect::getBusInfo to respond earlier, fixing an Ardour crash
    • clap param_refresh forces accurate VST3 parameter refresh
    • Correctly convert UTF8/UTF16 for internal strings, allowing clap parameter names with extended charsets to work in VST3
    • Fix an off-by-one error in stepped value conversions reflecting as VST3 stepped parameters
  • AUV2

    • Allow a user specified INSTRUMENT_TYPE
    • Allow several strategies for constructing the AUV2 state stream, including one which allows compatibility with ausdk examples and another allowing compatibility with JUCE AUv2
    • Make the host name reported by the plugin consistent with the VST3
    • Fix a memory double-free in host get name.
    • clap param_refresh forces accurate AUv2 parameter refresh
    • AUv2 request resize makes host window resize
    • Remove some unused code which would create a harmless class warning when validating
    • the MACOSX_EMBEDDED_CLAP option also uses that clap for plist creation
  • Other wrapper fixes

    • request_resize doesn't block on can_resize
    • Mac standalone timer halts properly avoiding a crash-on-exit
    • The metadata in the clap_host_t* object is more accurate in several situations
  • CMake and C++ infrastructure

    • Update CPM to 0.40.2
    • Update fmt to 11.0
    • Set flags correctly for C++ 20 builds
    • Change clap wrapper private/public flags to avoid Werror etc leaking to upstream targets
    • Support CMAKE_UNITY builds
    • All stand-alonee accurately set OUTPUT_NAME cmake property

0.10.1 (July 2024)

  • Include one ARA cleanup commit for the VST3
  • Only set CMAKE_MSVC_RUNTIME_LIBRARY (to static) if it is not set, allowing parent CMakeLists to make their own choice
  • Include timer.cpp on Linux for VST3 SDK versions 3.7.9 or newer
  • Update the version in CMakeLists.txt (in 0.10.0 it was still 0.9.2; now it is 0.10.1)

0.10.0 (July 2024)

  • Add ARA support to the VST3 wrapper. If your underlying CLAP implements the ARA extension, your wrapped VST3 will correctly wrap the ARA API
  • Add a small example of a clap plugin which builds self contained VST3, AUv2, etc...; build this in our CI pipeline as a test.
  • Fix an off-by-one error in VST3 stepped params
  • Fix a set of AUv2 crashes for plugins which do not implement the gui extension
  • Add a build time option for the wrapper to statically locate clap_entry as opposed to via dlopen on self or remote clap.

0.9.1 (May 2024)

  • Fixed to support VST3 program changes
  • Implement offline processing for clap
  • Implement the IsRecording flag for AUv2
  • Allow child NSView to resize wrapper in AUv2

0.9.0 (Apr 2024)

  • VST3 wrapper feature complete (Context menu support added)
  • AUv2 wrapper feature complete
  • Standalone working, in progress

0.8.0 (Mar 2024)

  • Check active state before querying latency. Issue 229 by @Schroedingers-Cat
  • VST3 programs / MIDI Program Changes
  • fixed release build issues
  • CMake Project Version reflected in version struct for CLAP host
  • IMIDIMapping wasn't correctly used in VST3 wrapper

0.7.0 (Feb 2024)

  • Audio Unit v2 (AUv2) wrapper is completed
  • Uses CLAP 1.2.0 now
  • Hostnames for different wrapper flavors are fixed
  • fixed Cocoa namespaces clashes
  • better unicode path handling on Windows
  • Standalone App on Windows is now a proper application
  • Various small bugfixes and improvements

0.5.0 (Sep 2023)

  • A substantial rework of the CMake infrastructure, making the code more library like, able to download dependencies, and more
  • Changes to allow operation as a top-level or subordinate cmake.
  • Support for a variety of linking modes, including co-linked single products, included bundles, and standalone plugins
  • A shell for AUv2 work
  • Allow builds back to macOS 10.11; Set the default build target to 10.13
  • Implement linux Timer and FD support, allowing full linux implementation of many test cases
  • Turn on -Wall -Wextra -Wpedantic -Werror on linux
  • Suppress CLAP Param Change events for parameters under edit
  • Implement param to/from string VST3 API
  • Output note ports in CLAP become output event queues in VST3; CLAP_EVENT_NOTE_* is transmitted out (but note expressions and MIDI are not yet)
  • Several small crash and lifecycle fixes on various OSes

0.4.0 (Aug 2023)

  • 0.4.0 is the first tagged release.
  • It can create a win/mac VST3 with a subset of the spec which runs with a remote clap.
  • It implements the entire clap host API required to proxy to multiple formats.