All official LV2 specifications.

Specification API Description Version Status
AtomatomA generic value container and several data types.2.0Stable
Buf Sizebuf-sizeAccess to, and restrictions on, buffer sizes.1.4Stable
Data Accessdata-accessProvides access to LV2_Descriptor::extension_data().1.6Stable
Dynamic ManifestdynmanifestSupport for dynamic data generation.1.6Stable
EventeventA port-based real-time generic event interface.1.12Deprecated
Instance Accessinstance-accessProvides access to the LV2_Handle of a plugin.1.6Stable
LoglogA feature for writing log messages.2.4Stable
LV2lv2coreAn audio plugin interface specification.14.0Stable
MIDImidiA normalised definition of raw MIDI.1.8Stable
MorphmorphPorts that can dynamically change type.1.0Stable
OptionsoptionsInstantiation time options.1.2Stable
ParametersparametersCommon parameters for audio processing.1.4Stable
PatchpatchMessages for accessing and manipulating properties.2.4Stable
Port Groupsport-groupsMulti-channel groups of LV2 ports.1.2Stable
Port Propertiesport-propsVarious port properties.1.2Stable
PresetspresetsPresets for LV2 plugins.2.8Stable
Resize Portresize-portDynamically sized LV2 port buffers.1.0Stable
StatestateAn interface for LV2 plugins to save and restore state.2.2Stable
TimetimeProperties for describing time.1.4Stable
UIuiLV2 plugin UIs of any type.2.20Stable
UnitsunitsUnits for LV2 values.5.10Stable
URI Mapuri-mapA feature for mapping URIs to integers.1.6Deprecated
URIDuridFeatures for mapping URIs to and from integers.1.4Stable
WorkerworkerSupport for a non-realtime plugin worker method.1.2Stable

History

Version 1.14.0 (2016-09-19)
  • eg-sampler: Fix handling of state file paths.
  • eg-scope: Don't feed back UI state updates.
  • eg-sampler: Support thread-safe state restoration.
  • lv2core: Add lv2_util.h with lv2_features_data() and lv2_features_query().
  • lv2core: Add lv2:enabled designation.
  • buf-size: Add bufsz:nominalBlockLength option.
  • buf-size: Add bufsz:coarseBlockLength feature.
  • log: Add lv2_log_logger_set_map() for changing the URI map of an existing logger.
  • state: Add state:threadSafeRestore feature for dropout-free state restoration.
  • state: Add LV2_STATE_ERR_NO_SPACE status flag.
  • time: Define LV2_TIME_PREFIX.
  • worker: Improve documentation.
  • ui: Add missing property labels.
  • ui: Improve documentation.
Version 1.12.0 (2015-04-07)
  • eg-sampler: Support patch:Get, and request initial state from UI.
  • Fix merging of version histories in specification documentation.
  • eg-sampler: Add gain parameter.
  • Simplify property restrictions by removing redundancy.
  • Improve API documentation.
  • lv2core: Relax domain of lv2:minimum lv2:maximum and lv2:default so they can be used to describe properties/parameters as well.
  • lv2core: Add extern C and visibility attribute to LV2_SYMBOL_EXPORT.
  • lv2core: Add lv2:isSideChain port property.
  • parameters: Add range to parameters so hosts know how to control them.
  • patch: Define patch:Get with no subject to implicitly apply to reciever. This can be used by UIs to get an initial description of a plugin.
  • patch: Add patch:Copy method.
  • units: Fix non-existent port type in examples.
  • units: Add lv2:Parameter to domain of units:unit.
Version 1.10.0 (2014-08-08)
  • Fix -Wconversion warnings in headers.
  • lv2specgen: Display deprecated warning on classes marked owl:deprecated.
  • Upgrade to waf 1.7.16.
  • lv2core: Clarify lv2_descriptor() and lv2_lib_descriptor() documentation.
  • atom: Add lv2_atom_sequence_clear() and lv2_atom_sequence_append_event() helper functions.
  • atom: Deprecate Blank and Resource in favour of just Object.
  • atom: Add lv2_atom_forge_key() for terser object writing.
  • atom: Add lv2_atom_forge_is_object_type() and lv2_atom_forge_is_blank() to ease backwards compatibility.
  • event: Minor documentation improvements.
  • patch: Add patch:sequenceNumber for associating replies with requests.
  • ui: Add show interface so UIs can gracefully degrade to separate windows if hosts can not use their widget directly.
  • ui: Fix identifier typos in documentation.
Version 1.8.0 (2014-01-04)
  • Add scope example plugin from Robin Gareus.
  • lv2specgen: Fix links to externally defined terms.
  • Install lv2specgen for use by other projects.
  • lv2core: Add lv2:prototype for property inheritance.
  • atom: Make lv2_atom_*_is_end() arguments const.
  • log: Add missing include string.h to logger.h for memset.
  • ui: Fix LV2_UI_INVALID_PORT_INDEX identifier in documentation.
Version 1.6.0 (2013-08-09)
  • Fix port indices of metronome example.
  • Upgrade to waf 1.7.11.
  • Fix lv2specgen usage from command line.
  • atom: Fix crash in forge.h when pushing atoms to a full buffer.
  • ui: Add idle interface so native UIs and foreign toolkits can drive their event loops.
  • ui: Add ui:updateRate property.
Version 1.4.0 (2013-02-17)
  • Add metronome example plugin to demonstrate sample accurate tempo sync.
  • Generate book-style HTML documentation from example plugins.
  • lv2core: Make lv2:Parameter rdfs:subClassOf rdf:Property.
  • lv2core: Add lv2:control for designating primary event-based control ports.
  • lv2core: Reserve minor version 0 for unstable development plugins.
  • lv2core: Add lv2:EnvelopePlugin class.
  • lv2core: Set range of lv2:designation to lv2:Designation.
  • atom: Improve atom documentation.
  • atom: Remove atom:stringType in favour of owl:onDatatype so generic tools can understand and validate atom literals.
  • atom: Fix lv2_atom_sequence_end().
  • buf-size: Fix typo in bufsz:sequenceSize label.
  • event: Fix incorrect return type in lv2_event_get().
  • log: Add logger convenience API.
  • options: Set the range of opts:requiredOption and opts:supportedOption to opts:Option.
  • patch: Add patch:readable and patch:writable for describing available properties.
  • patch: Make patch:Set a compact message for setting one property.
  • state: Add state:loadDefaultState feature so plugins can have their default state loaded without hard-coding default state as a special case.
  • ui: Fix incorrect linker flag in ui:makeSONameResident documentation.
Version 1.2.0 (2012-10-14)
  • Move all project metadata for extensions (e.g. change log) to separate files to spare hosts from loading them during discovery.
  • Use stricter datatype definitions conformant with the XSD and OWL specifications for better validation.
  • lv2core: Use consistent label style.
  • atom: Fix implicit conversions in forge.h that are invalid in C++11.
  • atom: Add lv2_atom_object_body_get().
  • atom: Fix outdated documentation in forge.h.
  • atom: Fix lv2_atom_object_next() on 32-bit platforms.
  • atom: Use consistent label style.
  • atom: Add LV2_ATOM_CONTENTS_CONST and LV2_ATOM_BODY_CONST.
  • buf-size: Initial release.
  • dynmanifest: Use consistent label style.
  • event: Make event iterator gracefully handle optional ports.
  • event: Remove asserts from event-helper.h.
  • event: Use more precise domain and range for EventPort properties.
  • event: Use consistent label style.
  • midi: Use consistent label style.
  • midi: Add midi:HexByte datatype for status bytes and masks.
  • midi: Remove non-standard midi:Tick message type.
  • midi: Add C definitions for message types and standard controllers.
  • midi: Fix definition of SystemExclusive status byte.
  • midi: Add midi:binding and midi:channel predicates.
  • morph: Initial release.
  • options: Initial release.
  • parameters: Add param:sampleRate.
  • parameters: Use consistent label style.
  • parameters: Add parameters.h of URI defines for convenience.
  • port-groups: Use consistent label style.
  • port-props: Use consistent label style.
  • presets: Use consistent label style.
  • presets: Add preset banks.
  • state: Use consistent label style.
  • time: Use consistent label style.
  • urid: Fix typo in urid:unmap documentation.
  • ui: Add types for WindowsUI, CocoaUI, and Gtk3UI.
  • ui: Add missing LV2_SYMBOL_EXPORT declaration for lv2ui_descriptor prototype.
  • ui: Use consistent label style.
  • units: Remove units:name in favour of rdfs:label.
  • units: Use consistent label style.
Version 1.0.0 (2012-04-16)
  • Initial release as a unified project. Projects can now simply depend on the pkg-config package 'lv2' for all official LV2 APIs.
  • New extensions: atom, log, parameters, patch, port-groups, port-props, resize-port, state, time, worker.
  • lv2core: Add lv2:CVPort.
  • lv2core: Add metadata concept of a designation, a channel or parameter description which can be assigned to ports for more intelligent use by hosts.
  • lv2core: Add new discovery API which allows libraries to read bundle files during discovery, makes library construction/destruction explicit, and adds extensibility to prevent future breakage.
  • lv2core: Merge with unified LV2 package.
  • lv2core: Relax the range of lv2:index so it can be used for things other than ports.
  • lv2core: Remove lv2:Resource, which turned out to be meaningless.
  • lv2core: Fix LV2_SYMBOL_EXPORT and lv2_descriptor prototype for Windows.
  • atom: Initial release.
  • data-access: Merge with unified LV2 package.
  • dynmanifest: Merge with unified LV2 package.
  • event: Fix incorrect ranges of some properties.
  • event: Fix bug in lv2_event_reserve().
  • event: Merge with unified LV2 package.
  • instance-access: Merge with unified LV2 package.
  • log: Initial release.
  • midi: Add class definitions for various message types.
  • midi: Merge with unified LV2 package.
  • midi: Document how to serialise a MidiEvent to a string.
  • parameters: Initial release.
  • patch: Initial release.
  • port-groups: Initial release.
  • port-props: Initial release.
  • presets: Add pset:preset property for describing the preset currently applied to a plugin instance.
  • presets: Remove pset:appliesTo property, use lv2:appliesTo instead.
  • presets: Merge with unified LV2 package.
  • resize-port: Initial release.
  • state: Initial release.
  • time: Initial release.
  • uri-map: Merge with unified LV2 package.
  • urid: Merge with unified LV2 package.
  • urid: Add feature struct names.
  • worker: Initial release.
  • ui: Merge with unified LV2 package.
  • ui: Add port protocols and a dynamic notification subscription mechanism, for more flexible communication, and audio port metering without control port kludges.
  • ui: Add ui:portMap for accessing ports by symbol, allowing for UIs to be distributed separately from plugins.
  • ui: Add support for referring to ports by symbol.
  • ui: Add ui:parent and ui:resize.
  • ui: Add touch feature to notify the host that the user has grabbed a control.
  • units: Add unit for audio frames.
  • units: Merge with unified LV2 package.
  • units: Add header of URI defines.