- webview.h: new webview draft extensions
- plugin-state-converter.h: add missing
CLAP_ABI
- mini-curve-display.h: third iteration, added curve stacking, curve kind and curve hints.
- mini-curve-display.h: second iteration, remove
host->cuve_changed()and improve documentation - project-location.h: fix typo
- mini-curve-display.h: new extension to let the plugin render a mini murve to be displayed in the host's mixer, eg: EQ frequency response
- project-location.h: rename the extension and second iteration on the interface
- surround.h: add
CLAP_SURROUND_TSL,CLAP_SURROUND_TSR, and improve documentation - thread-check.h: adjust documentation
- scratch-memory: host provided scratch memory within the process call
- location: better info about the plugin location within the project
- gain-adjustment-metering: gain reduction feedback
- events.h: clarify sysex lifetime
- host.h: clarify
request_callback() - ambisonic.h: remove bad comment
- plugin-template.c: fix bad assertion
- 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_AMBISONICCLAP_EXT_AUDIO_PORTS_ACTIVATIONCLAP_EXT_CONFIGURABLE_AUDIO_PORTSCLAP_EXT_CONTEXT_MENUCLAP_EXT_PARAM_INDICATIONCLAP_EXT_PRESET_LOADCLAP_EXT_REMOTE_CONTROLSCLAP_EXT_STATE_CONTEXTCLAP_EXT_SURROUNDCLAP_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_UPDATEwasn't used and it's design needed more thought.CLAP_EXT_MIDI_MAPPINGwasn't used. MIDI2 seems to do it better, and the interface wasn't satisfying.CLAP_EXT_CVthe 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_twas renamed toclap_universal_plugin_id_tto make it clear that it can describe more than just a CLAP plugin ID.clap_timestamp_twas renamed toclap_timestampto be consistent with other types, like e.g.clap_id. Also it was moved to a separate header asCLAP_PRESET_DISCOVERY_FACTORY_IDwas stabilized.
- events.h: Clarify how "Port Channel Key NoteID" matching works
- events.h: Clarify how
clap_event_notefields 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.hno longer includes headers fromext/draftorfactory/draft. Draft extension and factory headers must now be explicitly included, either individually or via theall.hheader.
- voice-info.h: Make the voice info id
CLAP_CONSTEXPRlike all other ids - preset-load.h: Make the preset load id and compat id
CLAP_CONSTEXPRlike all other ids
- params.h: add
CLAP_PARAM_IS_ENUMflag. - various documentation improvements:
- clarification on the return value of many functions
- typos
- entry.h: clarify what the
plugin_pathis 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_idargument fromget_info()
- remove
- ambisonic.h: remove
config_idargument 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-detectorcategory 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_infowhich lets the host query detailed port information in a given configuration. - surround.h: add
config_idparameter when fetching port info - ambisonic.h: add
config_idparameter 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_LTwas 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-testnow 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
clapinstead 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-coretarget is now deprecated, useclaptarget 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_ABIwhich 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_factorywhich 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-infoout 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_TESTSwhich 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_typewhich was never used - draft/transport-control.h: rename from
CLAP_EXT_CVtoCLAP_EXT_TRANSPORT_CONTROL - draft/tuning.h: rename
clap_client_tuningtoclap_plugin_tuning - macros.h: fix compatibility with C17