aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/core/lv2core.meta.ttl
diff options
context:
space:
mode:
Diffstat (limited to 'lv2/core/lv2core.meta.ttl')
-rw-r--r--lv2/core/lv2core.meta.ttl915
1 files changed, 0 insertions, 915 deletions
diff --git a/lv2/core/lv2core.meta.ttl b/lv2/core/lv2core.meta.ttl
deleted file mode 100644
index 9faea9d..0000000
--- a/lv2/core/lv2core.meta.ttl
+++ /dev/null
@@ -1,915 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/lv2core>
- a doap:Project ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2" ;
- doap:homepage <http://lv2plug.in> ;
- doap:created "2004-04-21" ;
- doap:shortdesc "An extensible open standard for audio plugins" ;
- doap:programming-language "C" ;
- doap:developer <http://plugin.org.uk/swh.xrdf#me> ,
- <http://drobilla.net/drobilla#me> ;
- doap:maintainer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "18.4" ;
- doap:created "2022-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix spelling errors."
- ]
- ]
- ] , [
- doap:revision "18.0" ;
- doap:created "2020-04-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2:Markdown datatype."
- ] , [
- rdfs:label "Deprecate lv2:reportsLatency."
- ]
- ]
- ] , [
- doap:revision "16.0" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2:MIDIPlugin class."
- ] , [
- rdfs:label "Rework port restrictions so that presets can be validated."
- ]
- ]
- ] , [
- doap:revision "14.0" ;
- doap:created "2016-09-18" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2_util.h with lv2_features_data() and lv2_features_query()."
- ] , [
- rdfs:label "Add lv2:enabled designation."
- ]
- ]
- ] , [
- doap:revision "12.4" ;
- doap:created "2015-04-07" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.12.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Relax domain of lv2:minimum lv2:maximum and lv2:default so they can be used to describe properties/parameters as well."
- ] , [
- rdfs:label "Add extern C and visibility attribute to LV2_SYMBOL_EXPORT."
- ] , [
- rdfs:label "Add lv2:isSideChain port property."
- ]
- ]
- ] , [
- doap:revision "12.2" ;
- doap:created "2014-08-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Clarify lv2_descriptor() and lv2_lib_descriptor() documentation."
- ]
- ]
- ] , [
- doap:revision "12.0" ;
- doap:created "2014-01-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.8.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2:prototype for property inheritance."
- ]
- ]
- ] , [
- doap:revision "10.0" ;
- doap:created "2013-02-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2:EnvelopePlugin class."
- ] , [
- rdfs:label "Add lv2:control for designating primary event-based control ports."
- ] , [
- rdfs:label "Set range of lv2:designation to lv2:Designation."
- ] , [
- rdfs:label "Make lv2:Parameter rdfs:subClassOf rdf:Property."
- ] , [
- rdfs:label "Reserve minor version 0 for unstable development plugins."
- ]
- ]
- ] , [
- doap:revision "8.2" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "8.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix LV2_SYMBOL_EXPORT and lv2_descriptor prototype for Windows."
- ] , [
- rdfs:label "Add metadata concept of a designation, a channel or parameter description which can be assigned to ports for more intelligent use by hosts."
- ] , [
- rdfs:label "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."
- ] , [
- rdfs:label "Relax the range of lv2:index so it can be used for things other than ports."
- ] , [
- rdfs:label "Remove lv2:Resource, which turned out to be meaningless."
- ] , [
- rdfs:label "Add lv2:CVPort."
- ] , [
- rdfs:label "Merge with unified LV2 package."
- ]
- ]
- ] , [
- doap:revision "6.0" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2core-6.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Rename core.lv2 and lv2.ttl to lv2core.lv2 and lv2core.ttl to adhere to modern conventions."
- ] , [
- rdfs:label "Add lv2:extensionData and lv2:ExtensionData for plugins to indicate that they support some URI for extension_data()."
- ] , [
- rdfs:label "Remove lv2config in favour of the simple convention that specifications install headers to standard URI-based paths."
- ] , [
- rdfs:label "Switch to the ISC license, a simple BSD-style license (with permission of all contributors to lv2.h and its ancestor, ladspa.h)."
- ] , [
- rdfs:label "Make lv2core.ttl a valid OWL 2 DL ontology."
- ] , [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "4.0" ;
- doap:created "2011-03-18" ;
- doap:file-release <http://lv2plug.in/spec/lv2core-4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Make doap:license suggested, but not required (for wrappers)."
- ] , [
- rdfs:label "Define lv2:binary (MUST be in manifest.ttl)."
- ] , [
- rdfs:label "Define lv2:minorVersion and lv2:microVersion (MUST be in manifest.ttl)."
- ] , [
- rdfs:label "Define lv2:documentation and use it to document lv2core."
- ] , [
- rdfs:label "Add lv2:FunctionPlugin and lv2:ConstantPlugin classes."
- ] , [
- rdfs:label "Move lv2:AmplifierPlugin under lv2:DynamicsPlugin."
- ] , [
- rdfs:label "Loosen domain of lv2:optionalFeature and lv2:requiredFeature (to allow re-use in extensions)."
- ] , [
- rdfs:label "Add generic lv2:Resource and lv2:PluginBase classes."
- ] , [
- rdfs:label "Fix definition of lv2:minimum etc. (used for values, not scale points)."
- ] , [
- rdfs:label "More precisely define properties with OWL."
- ] , [
- rdfs:label "Move project metadata to manifest."
- ] , [
- rdfs:label "Add lv2:enumeration port property."
- ] , [
- rdfs:label "Define run() pre-roll special case (sample_count == 0)."
- ]
- ]
- ] , [
- doap:revision "3.0" ;
- doap:created "2008-11-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2core-3.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Require that serialisations refer to ports by symbol rather than index."
- ] , [
- rdfs:label "Minor stylistic changes to lv2.ttl."
- ] , [
- rdfs:label "No header changes."
- ]
- ]
- ] , [
- doap:revision "2.0" ;
- doap:created "2008-02-10" ;
- doap:file-release <http://lv2plug.in/spec/lv2core-2.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- lv2:documentation """
-
-LV2 is an interface for writing audio plugins in C or compatible languages,
-which can be dynamically loaded into many _host_ applications. This core
-specification is simple and minimal, but is designed so that _extensions_ can
-be defined to add more advanced features, making it possible to implement
-nearly any feature.
-
-LV2 maintains a strong distinction between code and data. Plugin code is in a
-shared library, while data is in a companion data file written in
-[Turtle](https://www.w3.org/TR/turtle/). Code, data, and any other resources
-(such as waveforms) are shipped together in a bundle directory. The code
-contains only the executable portions of the plugin. All other data is
-provided in the data file(s). This makes plugin data flexible and extensible,
-and allows the host to do everything but run the plugin without loading or
-executing any code. Among other advantages, this makes hosts more robust
-(broken plugins can't crash a host during discovery) and allows generic tools
-written in any language to work with LV2 data. The LV2 specification itself is
-distributed in a similar way.
-
-An LV2 plugin library is suitable for dynamic loading (for example with
-`dlopen()`) and provides one or more plugin descriptors via `lv2_descriptor()`
-or `lv2_lib_descriptor()`. These can be instantiated to create plugin
-instances, which can be run directly on data or connected together to perform
-advanced signal processing tasks.
-
-Plugins communicate via _ports_, which can transmit any type of data. Data is
-processed by first connecting each port to a buffer, then repeatedly calling
-the `run()` method to process blocks of data.
-
-This core specification defines two types of port, equivalent to those in
-[LADSPA](http://www.ladspa.org/), lv2:ControlPort and lv2:AudioPort, as well as
-lv2:CVPort which has the same format as an audio port but is interpreted as
-non-audible control data. Audio ports contain arrays with one `float` element
-per sample, allowing a block of audio to be processed in a single call to
-`run()`. Control ports contain single `float` values, which are fixed and
-valid for the duration of the call to `run()`. Thus the _control rate_ is
-determined by the block size, which is controlled by the host (and not
-necessarily constant).
-
-### Threading Rules
-
-To facilitate use in multi-threaded programs, LV2 functions are partitioned into
-several threading classes:
-
-| Discovery Class | Instantiation Class | Audio Class |
-|----------------------------------|-------------------------------|------------------------------- |
-| lv2_descriptor() | LV2_Descriptor::instantiate() | LV2_Descriptor::run() |
-| lv2_lib_descriptor() | LV2_Descriptor::cleanup() | LV2_Descriptor::connect_port() |
-| LV2_Descriptor::extension_data() | LV2_Descriptor::activate() | |
-| | LV2_Descriptor::deactivate() | |
-
-Hosts MUST guarantee that:
-
- * A function in any class is never called concurrently with another function
- in that class.
-
- * A _Discovery_ function is never called concurrently with any other function
- in the same shared object file.
-
- * An _Instantiation_ function for an instance is never called concurrently
- with any other function for that instance.
-
-Any simultaneous calls that are not explicitly forbidden by these rules are
-allowed. For example, a host may call `run()` for two different plugin
-instances simultaneously.
-
-Plugin functions in any class MUST NOT manipulate any state which might affect
-other plugins or the host (beyond the contract of that function), for example
-by using non-reentrant global functions.
-
-Extensions to this specification which add new functions MUST declare in which
-of these classes the functions belong, define new classes for them, or
-otherwise precisely describe their threading rules.
-
-"""^^lv2:Markdown .
-
-lv2:Specification
- lv2:documentation """
-
-An LV2 specification typically contains a vocabulary description, C headers to
-define an API, and any other resources that may be useful. Specifications,
-like plugins, are distributed and installed as bundles so that hosts may
-discover them.
-
-"""^^lv2:Markdown .
-
-lv2:Markdown
- lv2:documentation """
-
-This datatype is typically used for documentation in
-[Markdown](https://daringfireball.net/projects/markdown/syntax) syntax.
-
-Generally, documentation with this datatype should stay as close to readable
-plain text as possible, but may use core Markdown syntax for nicer
-presentation. Documentation can assume that basic extensions like codehilite
-and tables are available.
-
-"""^^lv2:Markdown .
-
-lv2:documentation
- lv2:documentation """
-
-Relates a Resource to extended documentation.
-
-LV2 specifications are documented using this property with an lv2:Markdown
-datatype.
-
-If the value has no explicit datatype, it is assumed to be a valid XHTML Basic
-1.1 fragment suitable for use as the content of the `body` element of a page.
-
-XHTML Basic is a W3C Recommendation which defines a simplified subset of XHTML
-intended to be reasonable to implement with limited resources, for exampe on
-embedded devices. See [XHTML Basic, Section
-3](http://www.w3.org/TR/xhtml-basic/#s_xhtmlmodules) for a list of valid tags.
-
-"""^^lv2:Markdown .
-
-lv2:PluginBase
- lv2:documentation """
-
-An abstract plugin-like resource that may not actually be an LV2 plugin, for
-example that may not have a lv2:binary. This is useful for describing things
-that share common structure with a plugin, but are not themselves an actual
-plugin, such as presets.
-
-"""^^lv2:Markdown .
-
-lv2:Plugin
- lv2:documentation """
-
-To be discovered by hosts, plugins MUST explicitly have an rdf:type of lv2:Plugin
-in their bundle's manifest, for example:
-
- :::turtle
- <http://example.org/my-plugin> a lv2:Plugin .
-
-Plugins should have a doap:name property that is at most a few words in length
-using title capitalization, for example <q>Tape Delay Unit</q>.
-
-"""^^lv2:Markdown .
-
-lv2:PortBase
- lv2:documentation """
-
-Similar to lv2:PluginBase, this is an abstract port-like resource that may not
-be a fully specified LV2 port. For example, this is used for preset "ports"
-which do not specify an index.
-
-"""^^lv2:Markdown .
-
-lv2:Port
- lv2:documentation """
-
-All LV2 port descriptions MUST have a rdf:type that is one of lv2:Port,
-lv2:InputPort or lv2:OutputPort. Additionally, there MUST be at least one
-other rdf:type which more precisely describes type of the port, for example
-lv2:AudioPort.
-
-Hosts that do not support a specific port class MUST NOT instantiate the
-plugin, unless that port has the lv2:connectionOptional property set.
-
-A port has two identifiers: a (numeric) index, and a (textual) symbol. The
-index can be used as an identifier at run-time, but persistent references to
-ports (for example in presets or save files) MUST use the symbol. Only the
-symbol is guaranteed to refer to the same port on all plugins with a given URI,
-that is the index for a port may differ between plugin binaries.
-
-"""^^lv2:Markdown .
-
-lv2:AudioPort
- lv2:documentation """
-
-Ports of this type are connected to a buffer of `float` audio samples, which
-the host guarantees have `sample_count` elements in any call to
-LV2_Descriptor::run().
-
-Audio samples are normalized between -1.0 and 1.0, though there is no
-requirement for samples to be strictly within this range.
-
-"""^^lv2:Markdown .
-
-lv2:CVPort
- lv2:documentation """
-
-Ports of this type have the same buffer format as an lv2:AudioPort, except the
-buffer represents audio-rate control data rather than audio. Like a
-lv2:ControlPort, a CV port SHOULD have properties describing its value, in
-particular lv2:minimum, lv2:maximum, and lv2:default.
-
-Hosts may present CV ports to users as controls in the same way as control
-ports. Conceptually, aside from the buffer format, a CV port is the same as a
-control port, so hosts can use all the same properties and expectations.
-
-In particular, this port type does not imply any range, unit, or meaning for
-its values. However, if there is no inherent unit to the values, for example
-if the port is used to modulate some other value, then plugins SHOULD use a
-normalized range, either from -1.0 to 1.0, or from 0.0 to 1.0.
-
-It is generally safe to connect an audio output to a CV input, but not
-vice-versa. Hosts must take care to prevent data from a CVPort port from being
-used as audio.
-
-"""^^lv2:Markdown .
-
-lv2:project
- lv2:documentation """
-
-This property provides a way to group plugins and/or related resources. A
-project may have useful metadata common to all plugins (such as homepage,
-author, version history) which would be wasteful to list separately for each
-plugin.
-
-Grouping via projects also allows users to find plugins in hosts by project,
-which is often how they are remembered. For this reason, a project that
-contains plugins SHOULD always have a doap:name. It is also a good idea for
-each plugin and the project itself to have an lv2:symbol property, which allows
-nice quasi-global identifiers for plugins, for example `myproj.superamp` which
-can be useful for display or fast user entry.
-
-"""^^lv2:Markdown .
-
-lv2:prototype
- lv2:documentation """
-
-This property can be used to <q>include</q> common properties in several
-descriptions, serving as a sort of template mechanism. If a plugin has a
-prototype, then the host must load all the properties for the prototype as if
-they were properties of the plugin. That is, if `:plug lv2:prototype :prot`,
-then for each triple `:prot p o`, the triple `:plug p o` should be loaded.
-
-This facility is useful for distributing data-only plugins that rely on a
-common binary, for example those where the internal state is loaded from some
-other file. Such plugins can refer to a prototype in a template LV2 bundle
-which is installed by the corresponding software.
-
-"""^^lv2:Markdown .
-
-lv2:minorVersion
- lv2:documentation """
-
-This, along with lv2:microVersion, is used to distinguish between different
-versions of the <q>same</q> resource, for example to load only the bundle with
-the most recent version of a plugin. An LV2 version has a minor and micro
-number with the usual semantics:
-
- * The minor version MUST be incremented when backwards (but not forwards)
- compatible additions are made, for example the addition of a port to a
- plugin.
-
- * The micro version is incremented for changes which do not affect
- compatibility at all, for example bug fixes or documentation updates.
-
-Note that there is deliberately no major version: all versions with the same
-URI are compatible by definition. Replacing a resource with a newer version of
-that resource MUST NOT break anything. If a change violates this rule, then
-the URI of the resource (which serves as the major version) MUST be changed.
-
-Plugins and extensions MUST adhere to at least the following rules:
-
- * All versions of a plugin with a given URI MUST have the <q>same</q> set of
- mandatory (not lv2:connectionOptional) ports with respect to lv2:symbol and
- rdf:type. In other words, every port on a particular version is guaranteed
- to exist on a future version with same lv2:symbol and at least those
- rdf:types.
-
- * New ports MAY be added without changing the plugin URI if and only if they
- are lv2:connectionOptional and the minor version is incremented.
-
- * The minor version MUST be incremented if the index of any port (identified
- by its symbol) is changed.
-
- * All versions of a specification MUST be compatible in the sense that an
- implementation of the new version can interoperate with an implementation
- of any previous version.
-
-Anything that depends on a specific version of a plugin (including referencing
-ports by index) MUST refer to the plugin by both URI and version. However,
-implementations should be tolerant where possible.
-
-When hosts discover several installed versions of a resource, they SHOULD warn
-the user and load only the most recent version.
-
-An odd minor _or_ micro version, or minor version zero, indicates that the
-resource is a development version. Hosts and tools SHOULD clearly indicate
-this wherever appropriate. Minor version zero is a special case for
-pre-release development of plugins, or experimental plugins that are not
-intended for stable use at all. Hosts SHOULD NOT expect such a plugin to
-remain compatible with any future version. Where feasible, hosts SHOULD NOT
-expose such plugins to users by default, but may provide an option to display
-them.
-
-"""^^lv2:Markdown .
-
-lv2:microVersion
- lv2:documentation """
-
-Releases of plugins and extensions MUST be explicitly versioned. Correct
-version numbers MUST always be maintained for any versioned resource that is
-published. For example, after a release, if a change is made in the development
-version in source control, the micro version MUST be incremented (to an odd
-number) to distinguish this modified version from the previous release.
-
-This property describes half of a resource version. For detailed documentation
-on LV2 resource versioning, see lv2:minorVersion.
-
-"""^^lv2:Markdown .
-
-lv2:binary
- lv2:documentation """
-
-The value of this property must be the URI of a shared library object,
-typically in the same bundle as the data file which contains this property.
-The actual type of the library is platform specific.
-
-This is a required property of a lv2:Plugin which MUST be included in the
-bundle's `manifest.ttl` file. The lv2:binary of a lv2:Plugin is the shared
-object containing the lv2_descriptor() or lv2_lib_descriptor() function. This
-probably may also be used similarly by extensions to relate other resources to
-their implementations (it is not implied that a lv2:binary on an arbitrary
-resource is an LV2 plugin library).
-
-"""^^lv2:Markdown .
-
-lv2:appliesTo
- lv2:documentation """
-
-This is primarily intended for discovery purposes: bundles that describe
-resources that work with particular plugins (like presets or user interfaces)
-SHOULD specify this in their `manifest.ttl` so the host can associate them with
-the correct plugin. For example:
-
- :::turtle
- <thing>
- a ext:Thing ;
- lv2:appliesTo <plugin> ;
- rdfs:seeAlso <thing.ttl> .
-
-Using this pattern is preferable for large amounts of data, since the host may
-choose whether/when to load the data.
-
-"""^^lv2:Markdown .
-
-lv2:Symbol
- lv2:documentation """
-
-The first character of a symbol must be one of `_`, `a-z` or `A-Z`, and
-subsequent characters may additionally be `0-9`. This is, among other things,
-a valid C identifier, and generally compatible in most contexts which have
-restrictions on string identifiers, such as file paths.
-
-"""^^lv2:Markdown .
-
-lv2:symbol
- lv2:documentation """
-
-The value of this property MUST be a valid lv2:Symbol, and MUST NOT have a
-language tag.
-
-A symbol is a unique identifier with respect to the parent, for example a
-port's symbol is a unique identifiers with respect to its plugin. The plugin
-author MUST change the plugin URI if any port symbol is changed or removed.
-
-"""^^lv2:Markdown .
-
-lv2:name
- lv2:documentation """
-
-Unlike lv2:symbol, this is unrestricted, may be translated, and is not relevant
-for compatibility. The name is not necessarily unique and MUST NOT be used as
-an identifier.
-
-"""^^lv2:Markdown .
-
-lv2:shortName
- lv2:documentation """
-
-This is the same as lv2:name, with the additional requirement that the value is
-shorter than 16 characters.
-
-"""^^lv2:Markdown .
-
-lv2:Designation
- lv2:documentation """
-
-A designation is metadata that describes the meaning or role of something. By
-assigning a designation to a port using lv2:designation, the port's content
-becomes meaningful and can be used more intelligently by the host.
-
-"""^^lv2:Markdown .
-
-lv2:Channel
- lv2:documentation """
-
-A specific channel, for example the <q>left</q> channel of a stereo stream. A
-channel may be audio, or another type such as a MIDI control stream.
-
-"""^^lv2:Markdown .
-
-lv2:Parameter
- lv2:documentation """
-
-A parameter is a designation for a control.
-
-A parameter defines the meaning of a control, not the method of conveying its
-value. For example, a parameter could be controlled via a lv2:ControlPort,
-messages, or both.
-
-A lv2:ControlPort can be associated with a parameter using lv2:designation.
-
-"""^^lv2:Markdown .
-
-lv2:designation
- lv2:documentation """
-
-This property is used to give a port's contents a well-defined meaning. For
-example, if a port has the designation `eg:gain`, then the value of that port
-represents the `eg:gain` of the plugin instance.
-
-Ports should be given designations whenever possible, particularly if a
-suitable designation is already defined. This allows the host to act more
-intelligently and provide a more effective user interface. For example, if the
-plugin has a BPM parameter, the host may automatically set that parameter to
-the current tempo.
-
-"""^^lv2:Markdown .
-
-lv2:freeWheeling
- lv2:documentation """
-
-If true, this means that all processing is happening as quickly as possible,
-not in real-time. When free-wheeling there is no relationship between the
-passage of real wall-clock time and the passage of time in the data being
-processed.
-
-"""^^lv2:Markdown .
-
-lv2:enabled
- lv2:documentation """
-
-If this value is greater than zero, the plugin processes normally. If this
-value is zero, the plugin is expected to bypass all signals unmodified. The
-plugin must provide a click-free transition between the enabled and disabled
-(bypassed) states.
-
-Values less than zero are reserved for future use (such as click-free
-insertion/removal of latent plugins), and should be treated like zero
-(bypassed) by current implementations.
-
-"""^^lv2:Markdown .
-
-lv2:control
- lv2:documentation """
-
-This should be used as the lv2:designation of ports that are used to send
-commands and receive responses. Typically this will be an event port that
-supports some protocol, for example MIDI or LV2 Atoms.
-
-"""^^lv2:Markdown .
-
-lv2:Point
- lv2:documentation """
-
- * A Point MUST have at least one rdfs:label which is a string.
-
- * A Point MUST have exactly one rdf:value with a type that is compatible with
- the type of the corresponding Port.
-
-"""^^lv2:Markdown .
-
-lv2:default
- lv2:documentation """
-
-The host SHOULD set the port to this value initially, and in any situation
-where the port value should be cleared or reset.
-
-"""^^lv2:Markdown .
-
-lv2:minimum
- lv2:documentation """
-
-This is a soft limit: the plugin is required to gracefully accept all values in
-the range of a port's data type.
-
-"""^^lv2:Markdown .
-
-lv2:maximum
- lv2:documentation """
-
-This is a soft limit: the plugin is required to gracefully accept all values in
-the range of a port's data type.
-
-"""^^lv2:Markdown .
-
-lv2:optionalFeature
- lv2:documentation """
-
-To support this feature, the host MUST pass its URI and any additional data to
-the plugin in LV2_Descriptor::instantiate().
-
-The plugin MUST NOT fail to instantiate if an optional feature is not supported
-by the host.
-
-"""^^lv2:Markdown .
-
-lv2:requiredFeature
- lv2:documentation """
-
-To support this feature, the host MUST pass its URI and any additional data to
-the plugin in LV2_Descriptor::instantiate().
-
-The host MUST check this property before attempting to instantiate a plugin,
-and not attempt to instantiate plugins which require features it does not
-support. The plugin MUST fail to instantiate if a required feature is not
-supported by the host. Note that these rules are intentionally redundant for
-resilience: neither host nor plugin should assume that the other does not
-violate them.
-
-"""^^lv2:Markdown .
-
-lv2:ExtensionData
- lv2:documentation """
-
-This is additional data that a plugin may return from
-LV2_Descriptor::extension_data(). This is generally used to add APIs to extend
-that defined by LV2_Descriptor.
-
-"""^^lv2:Markdown .
-
-lv2:extensionData
- lv2:documentation """
-
-If a plugin has a value for this property, it must be a URI that defines the
-extension data. The plugin should return the appropriate data when
-LV2_Descriptor::extension_data() is called with that URI as a parameter.
-
-"""^^lv2:Markdown .
-
-lv2:isLive
- lv2:documentation """
-
-This feature is for plugins that have time-sensitive internals, for example
-communicating in real time over a socket. It indicates to the host that its
-input and output must not be cached or subject to significant latency, and that
-calls to LV2_Descriptor::run() should be made at a rate that roughly
-corresponds to wall clock time (according to the `sample_count` parameter).
-
-Note that this feature is not related to <q>hard real-time</q> execution
-requirements (see lv2:hardRTCapable).
-
-"""^^lv2:Markdown .
-
-lv2:inPlaceBroken
- lv2:documentation """
-
-This feature indicates that the plugin may not work correctly if the host
-elects to use the same data location for both input and output. Plugins that
-will fail to work correctly if ANY input port is connected to the same location
-as ANY output port MUST require this feature. Doing so should be avoided
-whenever possible since it prevents hosts from running the plugin on data
-<q>in-place</q>.
-
-"""^^lv2:Markdown .
-
-lv2:hardRTCapable
- lv2:documentation """
-
-This feature indicates that the plugin is capable of running in a <q>hard
-real-time</q> environment. This should be the case for most audio processors,
-so most plugins are expected to have this feature.
-
-To support this feature, plugins MUST adhere to the following in all of their
-audio class functions (LV2_Descriptor::run() and
-LV2_Descriptor::connect_port()):
-
- * There is no use of `malloc()`, `free()` or any other heap memory management
- functions.
-
- * There is no use of any library functions which do not adhere to these
- rules. The plugin may assume that the standard C math library functions
- are safe.
-
- * There is no access to files, devices, pipes, sockets, system calls, or any
- other mechanism that might result in the process or thread blocking.
-
- * The maximum amount of time for a `run()` call is bounded by some expression
- of the form `A + B * sample_count`, where `A` and `B` are platform specific
- constants. Note that this bound does not depend on input signals or plugin
- state.
-
-"""^^lv2:Markdown .
-
-lv2:portProperty
- lv2:documentation """
-
-States that a port has a particular lv2:PortProperty. This may be ignored
-without catastrophic effects, though it may be useful, for example to provide a
-sensible user interface for the port.
-
-"""^^lv2:Markdown .
-
-lv2:connectionOptional
- lv2:documentation """
-
-This property means that the port does not have to be connected to valid data
-by the host. To leave a port <q>unconnected</q>, the host MUST explicitly
-connect the port to `NULL`.
-
-"""^^lv2:Markdown .
-
-lv2:reportsLatency
- lv2:documentation """
-
-This property indicates that the port is used to express the processing latency
-incurred by the plugin, expressed in samples. The latency may be affected by
-the current sample rate, plugin settings, or other factors, and may be changed
-by the plugin at any time. Where the latency is frequency dependent the plugin
-may choose any appropriate value. If a plugin introduces latency it MUST
-provide EXACTLY ONE port with this property set. In <q>fuzzy</q> cases the
-value should be the most reasonable one based on user expectation of
-input/output alignment. For example, musical delay plugins should not report
-their delay as latency, since it is an intentional effect that the host should
-not compensate for.
-
-This property is deprecated, use a lv2:designation of lv2:latency instead,
-following the same rules as above:
-
- :::turtle
- <http://example.org/plugin>
- lv2:port [
- a lv2:OutputPort , lv2:ControlPort ;
- lv2:designation lv2:latency ;
- lv2:symbol "latency" ;
- ]
-
-"""^^lv2:Markdown .
-
-lv2:toggled
- lv2:documentation """
-
-Indicates that the data item should be considered a boolean toggle. Data less
-than or equal to zero should be considered <q>off</q> or <q>false</q>, and data
-above zero should be considered <q>on</q> or <q>true</q>.
-
-"""^^lv2:Markdown .
-
-lv2:sampleRate
- lv2:documentation """
-
-Indicates that any specified bounds should be interpreted as multiples of the
-sample rate. For example, a frequency range from 0 Hz to the Nyquist frequency
-(half the sample rate) can be specified by using this property with lv2:minimum
-0.0 and lv2:maximum 0.5. Hosts that support bounds at all MUST support this
-property.
-
-"""^^lv2:Markdown .
-
-lv2:integer
- lv2:documentation """
-
-Indicates that all the reasonable values for a port are integers. For such
-ports, a user interface should provide a stepped control that only allows
-choosing integer values.
-
-Note that this is only a hint, and that the plugin MUST operate reasonably even
-if such a port has a non-integer value.
-
-"""^^lv2:Markdown .
-
-lv2:enumeration
- lv2:documentation """
-
-Indicates that all the rasonable values for a port are defined by
-lv2:scalePoint properties. For such ports, a user interface should provide a selector that allows the user to choose any of the scale point values by name. It is recommended to show the value as well if possible.
-
-Note that this is only a hint, and that the plugin MUST operate reasonably even
-if such a port has a value that does not correspond to a scale point.
-
-"""^^lv2:Markdown .
-
-lv2:isSideChain
- lv2:documentation """
-
-Indicates that a port is a <q>sidechain</q>, which affects the output somehow
-but should not be considered a part of the main signal chain. Sidechain ports
-SHOULD be lv2:connectionOptional, and may be ignored by hosts.
-
-"""^^lv2:Markdown .
-