- thread-check.h: expand the thread-doc to clarify and expand realtime
- latency.h: adjust latency extension requirements
- undo.h: re-design the interface
- the plugin interfaces have been separated into 2 independent ones
- the plugin interfaces are optional
- simplification of the design
- undo.h: shared undo stack for the host and plugin.
- events.h: clarification for note on events.
- extension-id: introduce some rules about extension ID naming.
CLAP_EXT_AMBISONIC
CLAP_EXT_AUDIO_PORTS_ACTIVATION
CLAP_EXT_CONFIGURABLE_AUDIO_PORTS
CLAP_EXT_CONTEXT_MENU
CLAP_EXT_PARAM_INDICATION
CLAP_EXT_PRESET_LOAD
CLAP_EXT_REMOTE_CONTROLS
CLAP_EXT_STATE_CONTEXT
CLAP_EXT_SURROUND
CLAP_EXT_TRACK_INFO
We changed the extension ID in the process of stabilization which leads to a break.
To mitigate this transition, we've provided compatibility extension IDs which can be used to match and use the latest draft extensions as they are 100% compatible.
For example, CLAP_EXT_CONTEXT_MENU
for the stable ID and CLAP_EXT_CONTEXT_MENU_COMPAT
for the draft ID.
As you can see in extension-id, we introduced some rules, so this kind of break won't happen again.
We may decide to remove the *_COMPAT
IDs in the future once their usage becomes antiquated.
CLAP_EXT_CHECK_FOR_UPDATE
wasn't used and it's design needed more thought.CLAP_EXT_MIDI_MAPPING
wasn't used. MIDI2 seems to do it better, and the interface wasn't satisfying.CLAP_EXT_CV
the interface wasn't satisfying.
CLAP_PRESET_DISCOVERY_FACTORY_ID
Note: we kept the last draft factory ID in order to not break plugins already using it.
- Introduction of a new factory which provides a plugin state convertion mechanism.
clap_plugin_id_t
was renamed toclap_universal_plugin_id_t
to make it clear that it can describe more than just a CLAP plugin ID.clap_timestamp_t
was renamed toclap_timestamp
to be consistent with other types, like e.g.clap_id
. Also it was moved to a separate header asCLAP_PRESET_DISCOVERY_FACTORY_ID
was stabilized.
- events.h: Clarify how "Port Channel Key NoteID" matching works
- events.h: Clarify how
clap_event_note
fields map to MIDI, Host, etc... - events.h: Expand clap note expression documentation
- plugin.h: Style cleanup
- params.h: Fix incorrect function name reference
- latency.h: Require the plugin to be activated to get the latency and clarify that the latency can only be fetched when the plugin is activated
- plugin-template.c: implement thread-safe plugin entry init counter
clap.h
no longer includes headers fromext/draft
orfactory/draft
. Draft extension and factory headers must now be explicitly included, either individually or via theall.h
header.
- voice-info.h: Make the voice info id
CLAP_CONSTEXPR
like all other ids - preset-load.h: Make the preset load id and compat id
CLAP_CONSTEXPR
like all other ids
- params.h: add
CLAP_PARAM_IS_ENUM
flag. - various documentation improvements:
- clarification on the return value of many functions
- typos
- entry.h: clarify what the
plugin_path
is on macOS - surround.h: simplify the design
- ambisonic.h: simplify the design
- configurable-audio-ports.h: simplify the design
- gui.h: documentation clarifications
- entry.h: documentation clarifications
- audio-ports-activation.h: specify the sample size to be used when activating the audio port.
- params.h: document how persisting parameter values between sessions should be implemented
- state.h: add basic documentation regarding what state should be saved and how plugins should interact with buffers
- various documentation fixes (essentially typos)
- extensible-audio-ports.h: new extension which lets the host add ports to a plugin
- configurable-audio-ports.h: new extension allowing the host to push an audio ports configuration request, resulting in a simpler workflow for surround host and plugins
- surround.h:
- remove
get_preferred_channel_map()
in favor of the push approach via configurable-audio-ports.h - remove
config_id
argument fromget_info()
- remove
- ambisonic.h: remove
config_id
argument fromget_info()
- preset-load.h: use a location_kind + location approach instead of URI
- preset-discovery.h:
- use a location_kind + location approach instead of URI
- document which descriptor fields are optional
- allow optional preset names in the metadata for non-container presets
- Add a factory folder for better organization and move our factories there
- params.h: fix typos
- CMake: disable C17 targets for CMake < 3.21
- plugin-features.h: adds
note-detector
category for plugins which converts audio to notes
- context-menu.h: add "title" menu entry
- preset-load.h: load from URI instead of path, making the extension more powerful
- remote-controls.h: distinguish between device pages and preset pages
- audio-ports-activation.h:
set_active()
now returns bool instead of void, this helps catching problems earlier especially with invalid arguments - audio-ports-config.h: add new draft extension:
clap_plugin_audio_ports_config_info
which lets the host query detailed port information in a given configuration. - surround.h: add
config_id
parameter when fetching port info - ambisonic.h: add
config_id
parameter when fetching port info
- preset-discovery.h: new factory which allows the host to index the plugin presets which are stored on disk.
- version.h
CLAP_VERSION_LT
was backwards (comparing current with arg vs arg with current). Correct and enhance tests.
- plugin.h: clarify plugin state after init()
- plugin.h: clarify when it is allowed to call get_extension()
- plugin.h: advice for plugin id and version strings
- host.h: clarify when it is allowed to call get_extension()
- CMakeLists.txt: the target
clap-test
now includesclap-plugin-template
- Remove UTF-8 BOM from a few files
- plugin-template.c: add state impl and some comments
- audio-ports-activation.h: improved documentation
- version.h:
- Add a CLAP_VERSION_GE(maj,min,rev), _EQ and _LT macro.
- Remove the uint32_t cast from CLAP_VERSION_MAJOR, _MINOR, and _REVISION macro, and introduce it to the CLAP_VERSION_INIT macro.
- If you rely on these macros being a uint32_t or parse this header using external software, this may be a breaking change.
- CMake: update some targets to link against
clap
instead ofclap-core
- params.h: clarify parameter range change, fix documentation typos, add missing items
- plugin.h: clarify data lifetime in
process()
- audio-ports-config.h: clarify
select()
: if succeed, the host should rescan the audio ports
- audio-ports-activation.h: new draft extension which allows a host to inform a plugin whether an audio port is an active port in the host audio context, and allow the host to respond accordingly
- context-menu.h: new draft extension which let the host and plugin exchange context menu entries and popup the menu
- param-indication.h: new draft extension which let the host inform the plugin that a parameter is currently mapped to a physical controller
- remote-controls.h: new draft extension which replaces
quick-controls.h
- resource-directory.h: new draft extension which lets the plugin save resources in a directory provided by the host
- triggers.h: new draft extension which exposes triggers to the host, triggers are data-less events
- track-info: refine the draft extension
file-reference.h
: removed in favor of resource-directory.hquick-controls.h
: removed in favor of remote-controls.h
- CMake: generate CMake and pkg-config package files on install
- CMake:
clap-core
target is now deprecated, useclap
target instead - plugin.h: make feature list on clap_plugin_descriptor_t const
- entry.h: fix bad location on windows: replaced
%CommonFilesFolder%/CLAP/
by%COMMONPROGRAMFILES%\CLAP
- macros.h: add
CLAP_ABI
which defines the calling convention and use it everywhere - events.h: clarify
clap_input_events.size()
- check-for-update.h: fix typedef
- file-reference.h: improve documentation
- params.h: clarify how the cookie works and add some notes about
flush()
- process.h: clarify how the audio buffer mapping works
- gui.h: clarify
clap_plugin_gui.get_preferred_api()
- plugin-factory.h: mention
clap_plugin_invalidation_factory
which can be use to invalidate cached entries
- clap.h: missing include for state-context.h.
- state-context.h: save/load state for duplicate or preset.
- std.h: fix compatibility with C++98.
- note-name.h: missing typedef
clap_plugin_note_name_t
. - params.h: clarify
request_flush()
documentation. - thread-check.h: clarify documentation.
- voice-info.h: promote
voice-info
out of draft.
- plugin.h: fix an inconsistency in
clap_plugin->destroy()
documentation: it is now required to deactivate the plugin before destroying it. - params.h: improve documentation for
clap_host_params->request_flush()
. - entry.h: improve documentation regarding
init()
,deinit()
and CLAP search path. - gui.h: fix typo
clap_gui_resize_hints.preserve_aspect_ratio
- plugin-template: missing impl of plugin destroy.
- various documentation improvements
- CMake: add
CLAP_BUILD_TESTS
which enables the tests. - Fixes compilation for Visual Studio 2019 and GCC9.
- gui.h: fix doc: set_scale must be provided
- events.h: remove
clap_event_type
which was never used - draft/transport-control.h: rename from
CLAP_EXT_CV
toCLAP_EXT_TRANSPORT_CONTROL
- draft/tuning.h: rename
clap_client_tuning
toclap_plugin_tuning
- macros.h: fix compatibility with C17