aboutsummaryrefslogtreecommitdiffstats
path: root/ns/lv2core/lv2core.ttl
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-11-21 01:36:00 +0000
committerDavid Robillard <d@drobilla.net>2011-11-21 01:36:00 +0000
commiteb43c8896480114b224755e824fae2e2f7485256 (patch)
tree26e91bd8dc6421d2296a33991e90f7dcb546b079 /ns/lv2core/lv2core.ttl
parentdf79255ccef7fb5d091e9d4e52f3c46545b53282 (diff)
downloadlv2-eb43c8896480114b224755e824fae2e2f7485256.tar.xz
Move ns to lv2/ns so repository top level can be used as an include dir directly.
Diffstat (limited to 'ns/lv2core/lv2core.ttl')
-rw-r--r--ns/lv2core/lv2core.ttl883
1 files changed, 0 insertions, 883 deletions
diff --git a/ns/lv2core/lv2core.ttl b/ns/lv2core/lv2core.ttl
deleted file mode 100644
index 0ab56c5..0000000
--- a/ns/lv2core/lv2core.ttl
+++ /dev/null
@@ -1,883 +0,0 @@
-# This document describes LV2, a plugin interface.
-# See <http://lv2plug.in> for more information.
-#
-# Copyright 2006-2011 Steve Harris, David Robillard
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-
-###########################
-## General LV2 Resources ##
-###########################
-
-lv2:Resource a rdfs:Class , owl:Class ;
- rdfs:comment """
-An LV2 Resource (e.g. plugin, specification, or any other LV2 related thing).
-""" .
-
-lv2:Specification a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- lv2:documentation """
-<p>An LV2 specification (i.e. this specification, or an LV2 extension).</p>
-
-<p>Specification data, like plugin data, is distributed in bundles
-so hosts may discover <em>all</em> present LV2 data.</p>
-""" .
-
-lv2:documentation a rdf:Property , owl:AnnotationProperty ;
- rdfs:range rdfs:Literal ;
- rdfs:label "documentation" ;
- rdfs:seeAlso <http://www.w3.org/TR/xhtml-basic/> ;
- lv2:documentation """
-<p>Relates a Resource to documentation markup. The value of this property
-MUST be a string literal which is a valid XHTML Basic 1.1 fragment suitable
-for use as the content of the &lt;body&gt; element. This can be used by
-hosts to provide rich online documentation or by tools to generate external
-documentation pages. The standard language tagging facility of RDF can be
-used to provide multi-lingual documentation.</p>
-<p>XHTML Basic is a W3C Recommendation which defines a basic subset of XHTML
-intended to be reasonable to implement with limited resources (e.g. on embedded
-devices). See <a href="http://www.w3.org/TR/xhtml-basic/#s_xhtmlmodules"
->XHTML Basic, Section 3</a> for a list of legal tags.</p>
-""" .
-
-<http://lv2plug.in/ns/lv2core>
- a owl:Ontology ;
- owl:imports <http://lv2plug.in/ns/doap.owl> ;
- lv2:documentation """
-<p>LV2 is an interface for writing audio processors, or <q>plugins</q>, in
-C/C++ which can be dynamically loaded into many applications, or <q>hosts</q>.
-This <q>core</q> specification is simple and minimal, but is designed so that
-<q>extensions</q> can be defined to add more advanced features, making it
-possibly to implement nearly any feature imaginable.</p>
-
-<p>LV2 maintains a strong distinction between <q>code</q> and <q>data</q>.
-Plugin code is in a shared library, while data is in a companion data file
-written in <a href="http://www.w3.org/TeamSubmission/turtle/">Turtle</a>.
-Code, data, and any other resources (e.g. waveforms) are shipped together in a
-<q>bundle</q> directory. The code contains only the executable portions of the
-plugin which inherently <em>must</em> be written in code. 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
-and non-C programs to work with LV2 data. LV2 itself and extensions are
-distributed in a similar way.</p>
-
-<p>An LV2 plugin library is suitable for dynamic loading (e.g. via
-<code>dlopen()</code>) and provides one or more plugin descriptors via the
-<code>lv2_descriptor()</code> function. These can be instantiated to create
-plugin <q>instances</q>, which can be run directly on data or connected
-together to perform advanced signal processing tasks.</p>
-
-<p>Plugins communicate via <q>ports</q>, which can transmit any type of data.
-Data is processed by first <q>connecting</q> each port to a buffer, then
-repeatedly calling a plugin's <code>run()</code> method to process blocks of
-data.</p>
-
-<p>This core specification defines two types of port, equivalent to those in <a
-href="http://www.ladspa.org/">LADSPA</a>: lv2:ControlPort and lv2:AudioPort.
-Audio ports contain arrays with one <code>float</code> element per sample,
-allowing a block of audio to be processed in a single call to
-<code>run()</code>. Control ports contain single <code>float</code> values,
-which are fixed and valid for the duration of the call to <code>run()</code>.
-Thus the <q>control rate</q> is determined by the block size, which is
-controlled by the host (and not necessarily constant).</p>
-
-<h3>Threading Rules</h3>
-
-<p>To faciliate use in multi-threaded programs, LV2 functions are partitioned
-into several threading classes:</p>
-
-<table>
-<tr><th>Discovery Class</th>
- <th>Instantiation Class</th>
- <th>Audio Class</th></tr>
-<tr><td>lv2_descriptor()</td>
- <td>LV2_Descriptor::instantiate()</td>
- <td>LV2_Descriptor::run()</td></tr>
-<tr><td>LV2_Descriptor::extension_data()</td>
- <td>LV2_Descriptor::cleanup()</td>
- <td>LV2_Descriptor::connect_port()</td></tr>
-<tr><td></td><td>LV2_Descriptor::activate()</td><td></td></tr>
-<tr><td></td><td>LV2_Descriptor::deactivate()</td><td></td></tr>
-</table>
-
-<p>The rules that hosts MUST follow are:</p>
-<ul>
-<li>When any function is running for a plugin instance,
-no other function in the same class may run for that instance.</li>
-<li>When a <em>Discovery</em> function is running,
-no other functions in the same shared object file may run.</li>
-<li>When an <em>Instantiation</em> function is running for a plugin instance,
-no other functions for that instance may run.</li>
-</ul>
-
-<p>Any simultaneous calls that are not explicitly forbidden by these rules are
-allowed. For example, a host may call <code>run()</code> for two different
-plugin instances simultaneously.</p>
-
-<p>Plugin functions in any class MUST NOT manipulate any state which might
-affect other plugin or host code, e.g. by using non-reentrant global
-functions.</p>
-
-<p>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.</p>
-""" .
-
-############
-## Plugin ##
-############
-
-lv2:PluginBase a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- lv2:documentation """
-<p>An abstract plugin-like resource that MAY not actually be an LV2 plugin
-(e.g. may not actually have a plugin binary).</p>
-
-<p>PluginBase SHOULD be used as a base type for any resource that may have
-ports or otherwise mimic the structure of a Plugin (e.g. a preset), since
-hosts and other tools already <q>understand</q> this structure.</p>
-""" .
-
-lv2:Plugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:PluginBase ;
- rdfs:label "Plugin" ;
- rdfs:subClassOf [
- a owl:Restriction ;
- owl:onProperty doap:name ;
- owl:someValuesFrom xsd:string ;
- rdfs:comment """
-A Plugin MUST have at least one doap:name that is a string
-with no language tag.
-""" ] ;
- lv2:documentation """
-<p>The class which represents an LV2 plugin.</p>
-
-<p>To be discovered by hosts, plugins MUST explicitly have rdf:type lv2:Plugin
-listed in their bundle's manifest, e.g.:</p>
-<pre class="turtle-code">
-&lt;http://example.org/my-plugin&gt; a lv2:Plugin .
-</pre>
-
-<p>Plugins SHOULD have a doap:license property whenever possible. The doap:name
-property should be at most a few words in length using title capitalization,
-e.g. <q>Tape Delay Unit</q>. Use doap:shortdesc or doap:description for more
-detailed descriptions.</p>
-""" .
-
-##########
-## Port ##
-##########
-
-lv2:Port a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- rdfs:label "Port" ;
- rdfs:subClassOf [
- a owl:Restriction ;
- owl:onProperty lv2:index ;
- owl:allValuesFrom xsd:nonNegativeInteger ;
- owl:cardinality 1 ;
- rdfs:comment """
-A port MUST have a single lv2:index which is of type xsd:nonNegativeInteger
-(e.g. a non-negative integer literal in Turtle). The actual RDF datatype
-of the index MAY be xsd:integer (which is what a generic Turtle parser
-will do), but the value itself MUST be non-negative.
-""" ] , [
- a owl:Restriction ;
- owl:onProperty lv2:symbol ;
- owl:someValuesFrom xsd:string ;
- rdfs:comment """
-A port MUST have a single lv2:symbol which is of type xsd:string with no
-language tag.
-""" ] , [
- a owl:Restriction ;
- owl:onProperty lv2:name ;
- owl:someValuesFrom xsd:string ;
- rdfs:comment """
-A port MUST have at least one lv2:name which is of type xsd:string.
-""" ] ;
- lv2:documentation """
-<p>The class which represents an LV2 port.</p>
-
-<p>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
-(e.g. lv2:AudioPort).</p>
-
-<p>Hosts that do not support a specific port class MUST NOT instantiate the
-plugin, unless that port has the connectionOptional property set (in which case
-the host can simply <q>connect</q> that port to NULL). If a host is interested
-in plugins to insert in a certain signal path (e.g. stereo audio), it SHOULD
-consider all the classes of a port to determine which ports are most suitable
-for connection (e.g. by ignoring ports with additional classes the host does
-not recognize).</p>
-
-<p>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 (e.g. in a saved preset) MUST use the symbol. A symbol is guaranteed
-to refer to the same port on all plugins with a given URI. An index does NOT
-necessarily refer to the same port on all plugins with a given URI (i.e. the
-index for a port may differ between plugin binaries).</p>
-""" .
-
-lv2:InputPort a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Port ;
- rdfs:label "Input port" ;
- rdfs:comment """
-Ports of this type will be connected to a pointer to some value, which will
-be read by the plugin during their run method.
-""" .
-
-lv2:OutputPort a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Port ;
- rdfs:label "Output port" ;
- rdfs:comment """
-Ports of this type will be connected to a pointer to some value, which will
-be written to by the plugin during their run method.
-""" .
-
-lv2:ControlPort a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Port ;
- rdfs:label "Control port" ;
- lv2:documentation """
-<p>Ports of this type will be connected to a pointer to a single value of C
-type <code>float</code>.</p>
-
-""" .
-
-lv2:AudioPort a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Port ;
- rdfs:label "Audio port" ;
- lv2:documentation """
-<p>Ports of this type will be connected to an array of length sample_count
-with elements of C type <code>float</code>.</p>
-""" .
-
-#######################
-## Plugin Properties ##
-#######################
-
-lv2:port a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:PluginBase ;
- rdfs:range lv2:Port ;
- rdfs:label "port" ;
- rdfs:comment "Relates a Plugin to the Ports it contains" .
-
-lv2:minorVersion a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range xsd:nonNegativeInteger ;
- rdfs:label "minor version" ;
- lv2:documentation """
-<p>The minor version of an LV2 Resource. This property is used (along with
-lv2:microVersion) by hosts to distinguish different versions of a compatible
-resource, e.g. to load only the bundle with the most recent version.</p>
-
-<p>The version of an LV2 resource is composed of two fields: minor version,
-and micro version. These have the usual semantics:</p>
-
-<ul>
-<li>The minor version MUST be incremented when backwards (but not
-forwards) compatible additions are made, e.g. the addition of a port to a
-plugin.</li>
-
-<li>The micro version is incremented for changes which do not affect
-compatibility at all, e.g. bug fixes or documentation updates.</li>
-</ul>
-
-<p>Note there is deliberately no concept of a major version: all versions of an
-LV2 resource with a given URI are by definition backwards compatible. More
-precisely: replacing a resource with a newer version of that resource MUST NOT
-break anything. If a change is made which breaks this rule, the URI
-of the resource MUST be changed. In contexts where a full (e.g. <a
-href="http://semver.org">SemVer</a> conformant) version number is required, the
-major version of all released LV2 resources is 1.</p>
-
-<p>Plugins and extensions MUST adhere to the following rules:</p>
-<ul>
-<li>All versions of a plugin with a given URI MUST have the <q>same</q> set of
-mandatory (i.e. not lv2:connectionOptional) ports with respect to lv2:symbol
-and rdf:type. In other words, every port on a specific version of a plugin has
-a lv2:symbol and a set of rdf:types; all future versions of that plugin are
-guaranteed to have a port with the same lv2:symbol and at least those
-rdf:types. New types may be added only if doing so does not break
-compatibility, i.e. if old hosts will continue to work correctly with the new
-plugin.</li>
-
-<li>New ports MAY be added without changing the plugin URI if and only if they
-are lv2:connectionOptional and the minor version is incremented.</li>
-
-<li>The minor version MUST be incremented if the index of any port (identified
-by its symbol) is changed.</li>
-
-<li>All versions of an extension MUST be compatible in the sense that an
-implementation of the new version can interoperate with an implementation of
-any previous version.</li>
-</ul>
-
-<p>(Note these rules are not necessarily exhaustive)</p>
-
-<p>Anything that depends on a specific version of a plugin (e.g. a
-serialisation that references ports by index) MUST refer to the plugin by both
-URI and version. However, implementations should be tolerant and extensions
-should be designed such that there is no need to do this (e.g. indices should
-only be meaningful for a particular plugin <em>instance</em> at run-time).</p>
-
-<p>When hosts discover several installed versions of a resource, they SHOULD
-warn the user and load only the most recent version.</p>
-
-<p>An odd minor <em>or</em> micro version indicates that the resource is a
-possibly unstable development version. Hosts and tools SHOULD clearly indicate
-this wherever appropriate. Several versions of a resource with an odd version
-may exist; i.e. it is acceptable to work on a development version of a resource
-(e.g. in source control) without worrying about version numbers as long as
-either the minor or micro version is odd.</p>
-
-<p>This property describes half of a resource version. See also <a
-href="http://lv2plug.in/ns/lv2core#minorVersion">lv2:minorVersion</a>, the
-property which describes the other half.</p>
-""" .
-
-lv2:microVersion a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range xsd:nonNegativeInteger ;
- rdfs:label "micro version" ;
- lv2:documentation """
-<p>The micro component of a Resource's version.</p>
-
-<p>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.</p>
-
-<p>This property describes half of a resource version. For detailed
-documentation on LV2 resource versioning, see <a
-href="http://lv2plug.in/ns/lv2core#minorVersion">lv2:minorVersion</a>.</p>
-""" .
-
-lv2:binary a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range owl:Thing ;
- rdfs:label "binary" ;
- lv2:documentation """
-<p>The binary of an LV2 resource. The value of this property must be a URI that
-resolves to a shared library object (the actual type of this library is system
-specific).</p>
-
-<p>This is a required property of a Plugin which MUST be included in the
-bundle's manifest.ttl file. The lv2:binary of an lv2:Plugin is the
-shared object containing the <code>lv2_descriptor()</code> function which can
-be used to access the descriptor for that plugin. This property may be used
-similarly by extensions to relate other resources to their implementations.</p>
-""" .
-
-lv2:appliesTo a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range lv2:Plugin ;
- rdfs:label "Applies to" ;
- lv2:documentation """
-<p>Specifies that a resource is related to a plugin. This is primarily intended
-for discovery purposes: bundles that describe resources that work with
-particular plugins (e.g. presets or user interfaces) SHOULD use this predicate
-in manifest.ttl to relate the resource to the applicable
-plugin(s), e.g.:</p>
-<pre class="turtle-code">
-&lt;thing&gt;
- a ext:Thing ;
- lv2:appliesTo &lt;plugin&gt; ;
- rdfs:seeAlso &lt;thing.ttl&gt; .
-</pre>
-
-<p>Particularly for large amounts of data, this is preferable to
-extending the plugin description with rdfs:seeAlso since the host may choose
-if/when to load the data, knowing that it describes an additional resource and
-not the plugin itself.</p>
-""" .
-
-#####################
-## Port Properties ##
-#####################
-
-lv2:index a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:range xsd:nonNegativeInteger ;
- rdfs:label "index" ;
- rdfs:comment """
-Specifies the index of the port, passed as an argument to the connect port
-function. The index uniqely identifies the port on an instance of the plugin.
-""" .
-
-lv2:symbol a rdf:Property , owl:DatatypeProperty ;
- rdfs:label "symbol" ;
- rdfs:comment """
-A short name used as a machine and human readable identifier.
-
-The first character must be one of _, a-z or A-Z and subsequenct characters can
-be from _, a-z, A-Z and 0-9.
-
-A language tag MUST NOT be used on this property. The symbol uniquely
-identifies the port on a plugin with a given URI (i.e. the plugin author MUST
-change the plugin URI if a port symbol is changed or removed).
-""" .
-
-lv2:name a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:label "name" ;
- rdfs:comment """
-A display name for labeling the Port in a user interface.
-
-This property is required for Ports, but MUST NOT be used by the host for
-port identification. The plugin author may change the values of this
-property without changing the Plugin URI.
-""" .
-
-###########################
-## Port Range and Points ##
-###########################
-
-lv2:Point a rdfs:Class , owl:Class ;
- rdfs:label "Port value point" ;
- # Unfortunately, it is illegal to specify restrictions on rdfs:label or
- # rdf:value. If the migration can be handled gracefully, it would be
- # good to switch to more appropriate predicates here for validators.
- lv2:documentation """
-<p>A Point describes an interesting value in a Port's range (much like a labeled
-<q>notch</q> on a physical knob).</p>
-<ul>
- <li>A Point MUST have at least one rdfs:label which is a string.</li>
- <li>A Point MUST have exactly one rdf:value with a type that is compatible
- with the type of the corresponding Port.</li>
-</ul>
-""" .
-
-lv2:ScalePoint a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Point ;
- rdfs:comment "A single float Point (for control inputs)." .
-
-lv2:scalePoint a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Port ;
- rdfs:range lv2:ScalePoint ;
- rdfs:label "Scale point" ;
- rdfs:comment "Relates a Port to its ScalePoints." .
-
-lv2:default a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:label "Default value" ;
- rdfs:comment """
-The default value that the host SHOULD set this port to when there is no
-other information available.
-""" .
-
-lv2:minimum a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:label "Minimum value" ;
- lv2:documentation """
-<p>A hint to the host for the minimum useful value that the port will use. This
-is a <q>soft</q> limit; the plugin is required to gracefully accept all values
-in the range of a port's data type.</p>
-""" .
-
-lv2:maximum a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:label "Maximum value" ;
- lv2:documentation """
-<p>A hint to the host for the maximum useful value that the port will use.
-This is a <q>soft</q> limit; the plugin is required to gracefully accept all
-values in the range of a port's data type.</p>
-""" .
-
-#############
-## Feature ##
-#############
-
-lv2:Feature a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- rdfs:label "Feature" ;
- rdfs:comment """
-An additional feature which a plugin or other resource may use or require.
-""".
-
-lv2:optionalFeature a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range lv2:Feature ;
- rdfs:label "Optional feature" ;
- lv2:documentation """
-<p>Signifies that a plugin or other resource supports a certain feature. If
-the host supports this feature, it 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.</p>
-""" .
-
-lv2:requiredFeature a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range lv2:Feature ;
- rdfs:label "Required feature" ;
- lv2:documentation """
-<p>Signifies that a plugin or other resource requires a certain feature. If
-the host supports this feature, it MUST pass its URI and any additional data to
-the plugin in LV2_Descriptor::instantiate(). The plugin MUST fail to
-instantiate if a required feature is not present; hosts SHOULD always check
-this before attempting to instantiate a plugin (i.e. discovery by attempting to
-instantiate is strongly discouraged).</p>
-""" .
-
-####################
-## Extension Data ##
-####################
-
-lv2:ExtensionData a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- rdfs:label "Extension Data" ;
- rdfs:comment """
-Additional data and/or functions a plugin may return from
-LV2_Descriptor:extension_data() which can be used to add additional API beyond
-that defined by LV2_Descriptor.
-""".
-
-lv2:extensionData a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range lv2:ExtensionData ;
- rdfs:label "Available extension data" ;
- lv2:documentation """
-<p>Signifies that a plugin provides additional data or functions (as defined by
-some extension) via LV2:Descriptor::instantiate().</p>
-""" .
-
-#######################
-## Standard Features ##
-#######################
-
-lv2:isLive a lv2:Feature ;
- rdfs:label "Has a live (realtime) dependency" ;
- lv2:documentation """
-<p>Indicates that the plugin has a real-time dependency (e.g. queues data from
-a socket) and so its output must not be cached or subject to significant
-latency, and calls to the run method should be done in rapid succession. This
-property is not related to <q>hard real-time</q> execution requirements (see
-lv2:hardRTCapable).</p>
-""" .
-
-lv2:inPlaceBroken a lv2:Feature ;
- rdfs:label "In-place broken" ;
- lv2:documentation """
-<p>Indicates that the plugin may cease to 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 as it makes
-it impossible for hosts to use the plugin to process data <q>in-place</q>.</p>
-""" .
-
-lv2:hardRTCapable a lv2:Feature ;
- rdfs:label "Hard realtime capable" ;
- lv2:documentation """
-<p>Indicates that the plugin is capable of running not only in a conventional
-host but also in a <q>hard real-time</q> environment. To qualify for this the
-plugin MUST satisfy all of the following:</p>
-<ol>
-<li>The plugin MUST NOT use malloc(), free() or other heap memory management
- functions within its Audio class functions.</li>
-
-<li>The plugin MUST NOT attempt to make use of any library functions in its
- Audio class functions, unless those functions themselves adhere to these
- rules (i.e. are hard realtime safe). The plugin MAY assume the standard C
- and C math library functions are safe.</li>
-
-<li>The plugin will not access files, devices, pipes, sockets, IPC or any other
- mechanism that might result in process or thread blocking within its Audio
- class functions.</li>
-
-<li>The plugin will take an amount of time to execute a run() call
- approximately of form <code>A + B * sample_count</code> where <code>A</code>
- and <code>B</code> depend on the machine and host in use. This amount of
- time MUST NOT depend on input signals or plugin state.</li>
-</ol>
-<p>Note these rules apply to the connect_port() function as well as run().</p>
-""" .
-
-##################
-## PortProperty ##
-##################
-
-lv2:PortProperty a rdfs:Class , owl:Class ;
- rdfs:label "Port property" ;
- rdfs:comment """
-A port property - a useful piece of information that allows a host to make more
-sensible decisions (e.g. to provide a better interface).
-""" .
-
-lv2:portProperty a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Port ;
- rdfs:range lv2:PortProperty ;
- rdfs:label "Port property" ;
- rdfs:comment """
-Relates Ports to PortProperties. The PortProperty may be ignored without
-catastrophic effects, though it may be useful e.g. for providing a sensible
-interface for the port.
-""" .
-
-#############################
-## Standard PortProperties ##
-#############################
-
-lv2:connectionOptional a lv2:PortProperty ;
- rdfs:label "Optionally connected port" ;
- rdfs:comment """
-Indicates that this port does not have to be connected to valid data by the
-host. If it is to be disconnected then the port MUST set to NULL with a call
-to the connectPort method.
-""" .
-
-lv2:reportsLatency a lv2:PortProperty ;
- rdfs:label "Latency reporting port" ;
- lv2:documentation """
-<p>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 which informs the host of the
-<q>correct</q> latency. In <q>fuzzy</q> cases the value output should be the
-most reasonable based on user expectation of input/output alignment
-(eg. musical delay/echo plugins should not report their delay as latency, as it
-is an intentional effect).</p>
-""" .
-
-lv2:toggled a lv2:PortProperty ;
- rdfs:label "Toggled" ;
- lv2:documentation """
-<p>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>.</p>
-""" .
-
-lv2:sampleRate a lv2:PortProperty ;
- rdfs:label "Sample rate" ;
- rdfs:comment """
-Indicates that any bounds specified should be interpreted as multiples of the
-sample rate. For instance, a frequency range from 0Hz to the Nyquist frequency
-(half the sample rate) could be requested by this property in conjunction with
-lv2:minimum 0.0 and lv2:maximum 0.5.
-Hosts that support bounds at all MUST support this property.
-""" .
-
-lv2:integer a lv2:PortProperty ;
- rdfs:label "Integer" ;
- rdfs:comment """
-Indicates that a port's reasonable values are integers (eg. a user interface
-would likely wish to provide a stepped control allowing only integer input).
-A plugin MUST operate reasonably even if such a port has a non-integer input.
-""" .
-
-lv2:enumeration a lv2:PortProperty ;
- rdfs:label "Enumeration" ;
- rdfs:comment """
-Indicates that a port's only reasonable values are the scale points defined for
-that port. A host SHOULD NOT allow a user to set the value of such a port to
-anything other than a scale point. However, a plugin MUST operate reasonably
-even if such a port has an input that is not a scale point, preferably by
-simply choosing the largest enumeration value less than or equal to the actual
-input value (i.e. round the input value down).
-""" .
-
-####################
-## Plugin Classes ##
-####################
-
-lv2:GeneratorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Generator" ;
- rdfs:comment """
-Any plugin that generates sound internally, rather than processing its input.
-""" .
-
-lv2:InstrumentPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:GeneratorPlugin ;
- rdfs:label "Instrument" ;
- rdfs:comment """
-Any plugin that is intended to be played as a musical instrument.
-""" .
-
-lv2:OscillatorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:GeneratorPlugin ;
- rdfs:label "Oscillator" .
-
-lv2:UtilityPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Utility" ;
- rdfs:comment """
-Includes things like mathematical functions and non-musical delays.
-""" .
-
-lv2:ConverterPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:UtilityPlugin ;
- rdfs:label "Converter" ;
- rdfs:comment """
-Any plugin that converts some form of input into a different form of output.
-""" .
-
-lv2:AnalyserPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:UtilityPlugin ;
- rdfs:label "Analyser" ;
- rdfs:comment """
-Any plugin that analyses input to output some useful information.
-""" .
-
-lv2:MixerPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:UtilityPlugin ;
- rdfs:label "Mixer" ;
- rdfs:comment """
-A plugin which mixes some number of inputs into some number of outputs.
-""" .
-
-lv2:SimulatorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Simulator" ;
- rdfs:comment """
-Plugins that aim to duplicate the effect of some environmental effect or
-musical equipment.
-""" .
-
-lv2:DelayPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Delay" ;
- rdfs:comment """
-Plugins that intentionally delay their input signal as an effect.
-""" .
-
-lv2:ModulatorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Modulator" .
-
-lv2:ReverbPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:subClassOf lv2:SimulatorPlugin ;
- rdfs:subClassOf lv2:DelayPlugin ;
- rdfs:label "Reverb" .
-
-lv2:PhaserPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:ModulatorPlugin ;
- rdfs:label "Phaser" .
-
-lv2:FlangerPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:ModulatorPlugin ;
- rdfs:label "Flanger" .
-
-lv2:ChorusPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:ModulatorPlugin ;
- rdfs:label "Chorus" .
-
-lv2:FilterPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Filter" .
-
-lv2:LowpassPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Lowpass" .
-
-lv2:BandpassPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Bandpass" .
-
-lv2:HighpassPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Highpass" .
-
-lv2:CombPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Comb" .
-
-lv2:AllpassPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Allpass" .
-
-lv2:EQPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Equaliser" .
-
-lv2:ParaEQPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:EQPlugin ;
- rdfs:label "Parametric" .
-
-lv2:MultiEQPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:EQPlugin ;
- rdfs:label "Multiband" .
-
-lv2:SpatialPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Spatial" ;
- rdfs:comment """
-Plugins that manipulate the position of audio in space (e.g. panning,
-stereo width, surround encoding, etc.).
-""" .
-
-lv2:SpectralPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Spectral" ;
- rdfs:comment """
-Plugins that alter the spectral properties (e.g. frequency) of audio.
-""" .
-
-lv2:PitchPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:SpectralPlugin ;
- rdfs:label "Pitch Shifter" .
-
-lv2:AmplifierPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Amplifier" .
-
-lv2:DistortionPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Distortion" .
-
-lv2:WaveshaperPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DistortionPlugin ;
- rdfs:label "Waveshaper" .
-
-lv2:DynamicsPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Dynamics" ;
- rdfs:comment """
-Plugins that alter the envelope or dynamic range of audio.
-""" .
-
-lv2:CompressorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Compressor" .
-
-lv2:ExpanderPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Expander" .
-
-lv2:LimiterPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Limiter" .
-
-lv2:GatePlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Gate" .
-
-lv2:FunctionPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:UtilityPlugin ;
- rdfs:label "Function" .
-
-lv2:ConstantPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:GeneratorPlugin ;
- rdfs:label "Constant" .