aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-03-10 20:44:39 +0000
committerDavid Robillard <d@drobilla.net>2011-03-10 20:44:39 +0000
commit8b266b2bad6a45c1981eda18f15fb2aa4c4341ca (patch)
tree2c65a22d37e637190fadc7219de65be46e2eb03c
parentfa468f91f256f9b1990435850ae8a3c32084c2e7 (diff)
downloadlv2-8b266b2bad6a45c1981eda18f15fb2aa4c4341ca.tar.xz
Apply changes from mailing list discussion:
Clarify that control values are fixed for the duration of run(). Make lv2:index xsd:nonNegativeInteger (not xsd:decimal). Better lv2:binary documentation. Add lv2:appliesTo. Make lv2:inPlaceBroken more generic.
-rw-r--r--core.lv2/lv2.ttl73
1 files changed, 47 insertions, 26 deletions
diff --git a/core.lv2/lv2.ttl b/core.lv2/lv2.ttl
index a34a300..b2fe6e4 100644
--- a/core.lv2/lv2.ttl
+++ b/core.lv2/lv2.ttl
@@ -112,7 +112,7 @@ those in <a href="http://www.ladspa.org/">LADSPA</a>: <em>control</em> and
<em>audio</em>. Audio data is communicated using arrays with one
<code>float</code> element per sample, allowing a block of audio to be
processed by the plugin in a single call to <code>run()</code>. Control data is
-communicated using single <code>float</code> values, which are considered valid
+communicated using single <code>float</code> values, which are fixed and valid
for the duration of the call to <code>run()</code>. Thus the "control rate" is
determined by the block size, which is controlled by the host (and not
necessarily constant).</p>
@@ -161,7 +161,6 @@ allowed. For example, a host may call run() for two different plugin instances
simultaneously.</p>""" .
-
#############################
## Template/Plugin Classes ##
#############################
@@ -202,7 +201,6 @@ detailed descriptions.
""" .
-
##################
## Port Classes ##
##################
@@ -231,11 +229,13 @@ and another to describe the specific data type, e.g. lv2:AudioPort).
""" ] , [
a owl:Restriction ;
owl:onProperty lv2:index ;
- owl:someValuesFrom xsd:decimal ;
+ owl:someValuesFrom xsd:nonNegativeInteger ;
owl:cardinality 1 ;
rdfs:comment """
-A port MUST have a single lv2:index which is of type xsd:decimal (e.g. a
-literal integer in Turtle).
+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 ;
@@ -253,9 +253,9 @@ 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 one of
-lv2:Port lv2:InputPort or lv2:OutputPort. Additionally there MUST be at least
-one other rdf:type which more specifically describes type of the port
+<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
@@ -414,15 +414,40 @@ lv2:binary a rdf:Property ;
rdfs:range rdfs:Resource ;
rdfs:label "binary" ;
lv2:documentation """
-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).
-This is a required property of a Plugin which MUST be included in the bundle's
-<tt>manifest.ttl</tt> 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>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 <tt>manifest.ttl</tt> 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 ;
+ rdfs:domain rdfs: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 <tt>manifest.ttl</tt> to relate the resource to the applicable
+plugin(s), e.g.:</p>
+<pre>
+&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>
+""" .
####################################
@@ -486,7 +511,6 @@ property without changing the Plugin URI.
""" .
-
##################################
## Optional Port RDF Properties ##
##################################
@@ -538,7 +562,6 @@ values in the range of a port's data type.
""" .
-
##############
## Features ##
##############
@@ -614,13 +637,11 @@ This property is not related to "hard real-time" execution requirements
lv2:inPlaceBroken a lv2:Feature ;
rdfs:label "in-place broken" ;
rdfs:comment """
-Indicates that the plugin may cease to work correctly if the host elects
-to use the same data location for both audio input and audio output.
-Plugins that will fail to work correctly if ANY input buffer for a port of
-the class lv2:AudioPort is set to the same location as ANY output buffer for
-a port of the same class (with connect_port()) MUST require this Feature.
-Doing so should be avoided as it makes it impossible for hosts to use the
-plugin to process audio "in-place".
+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 "in-place".
""" .
lv2:hardRTCapable a lv2:Feature ;