aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-11-02 04:10:02 +0000
committerDavid Robillard <d@drobilla.net>2011-11-02 04:10:02 +0000
commitf278452b7b1609933ffb163eba5c679561bc0e31 (patch)
tree8697b8dee8d2eb35bd8b90334d2b9e420aaeb9f7
parent6ddc20c0e3627651571e8ed9b9fbe7e0e8778bec (diff)
downloadlv2-f278452b7b1609933ffb163eba5c679561bc0e31.tar.xz
Rescue extended port info extension from old wiki mess as "port-props" extension
-rw-r--r--ext/port-props.lv2/manifest.ttl8
-rw-r--r--ext/port-props.lv2/port-props.ttl217
2 files changed, 225 insertions, 0 deletions
diff --git a/ext/port-props.lv2/manifest.ttl b/ext/port-props.lv2/manifest.ttl
new file mode 100644
index 0000000..b4afe2f
--- /dev/null
+++ b/ext/port-props.lv2/manifest.ttl
@@ -0,0 +1,8 @@
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+
+<http://lv2plug.in/ns/ext/port-props>
+ a lv2:Specification ;
+ lv2:minorVersion 0 ;
+ lv2:microVersion 1 ;
+ rdfs:seeAlso <port-props.ttl> .
diff --git a/ext/port-props.lv2/port-props.ttl b/ext/port-props.lv2/port-props.ttl
new file mode 100644
index 0000000..d2956e5
--- /dev/null
+++ b/ext/port-props.lv2/port-props.ttl
@@ -0,0 +1,217 @@
+@prefix pprops: <http://lv2plug.in/ns/ext/port-props#> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@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#> .
+
+<http://lv2plug.in/ns/ext/port-props>
+ a lv2:Specification ;
+ doap:name "LV2 Port Properties" ;
+ doap:release [
+ doap:revision "0.1" ;
+ doap:created "2011-11-01"
+ ] ;
+ doap:created "2009-01-01" ;
+ doap:shortdesc "Additional properties for LV2 plugin ports." ;
+ doap:maintainer [
+ a foaf:Person ;
+ foaf:name "Krzysztof Foltman"
+ ] , [
+ a foaf:Person ;
+ foaf:name "David Robillard" ;
+ rdfs:seeAlso <http://drobilla.net/drobilla.rdf>
+ ] ;
+ lv2:documentation """
+<p>This extension defines several useful properties for LV2 plugin ports, which
+can be used in plugin descriptions to better describe ports. Using this
+metadata, hosts can build better UIs for plugins, and provide more advanced
+automatic functionality.</p>
+""" .
+
+pprops:trigger
+ a lv2:PortProperty ;
+ rdfs:label "Trigger" ;
+ rdfs:comment """
+Indicates that the data item corresponds to a momentary event that has been
+detected (control output ports) or is to be triggered (control input ports).
+For input ports, the port needs to be reset to lv2:default value after run()
+function of the plugin has returned. If the control port is assigned a GUI
+widget by the host, the widget should be of auto-off (momentary, one-shot) type
+- for example, a push button if the port is also declared as lv2:toggled, or a
+series of push button or auto-clear input box with a "Send" button if the port
+is also lv2:integer.
+""" .
+
+pprops:supportsStrictBounds
+ a lv2:Feature ;
+ rdfs:label "Supports strict bounds" ;
+ rdfs:comment """
+Indicates use of host support for pprops:hasStrictBounds port property. A
+plugin that specifies it as optional feature can omit value clamping for
+hasStrictBounds ports, if the feature is supported by the host. When specified
+as required feature, it indicates that the plugin does not do any clamping for
+input ports that have a pprops:hasStrictBounds property.
+""" .
+
+pprops:hasStrictBounds
+ a lv2:PortProperty ;
+ rdfs:label "Has strict bounds" ;
+ rdfs:comment """
+For hosts that support pprops:supportsStrictBounds, this indicates that the
+value of the port should never exceed the port's minimum and maximum control
+points. For input ports, it moves the responsibility for limiting the range of
+values to host, if it supports pprops:supportsStrictBounds. For output ports,
+it indicates that values within specified range are to be expected, and
+breaking that should be considered by the host as error in plugin
+implementation.
+""" .
+
+pprops:expensive
+ a lv2:PortProperty ;
+ rdfs:label "Changes trigger expensive calculation" ;
+ rdfs:comment """
+Input ports only. Indicates that any changes to the port value may trigger
+expensive background calculation (e.g. regenerate some lookup tables in a
+background thread). Any value changes may have not have immediate effect, or
+may cause silence or diminished-quality version of the output until background
+processing is finished. Ports having this property are typically not well
+suited for connection to outputs of other plugins, and should not be offered as
+connection targets or for automation by default.
+""" .
+
+pprops:causesArtifacts
+ a lv2:PortProperty ;
+ rdfs:label "May cause audio artifacts when changed" ;
+ rdfs:comment """
+Input ports only. Indicates that any changes to the port value may produce
+slight artifacts to produced audio signals (zipper noise and other results of
+signal discontinuities). Connecting ports of this type to continuous signals
+is not recommended, and when presenting a list of automation targets, those
+ports may be marked as artifact-producing.
+""" .
+
+pprops:continuousCV
+ a lv2:PortProperty ;
+ rdfs:label "Carries a smooth modulation signal" ;
+ rdfs:comment """
+Indicates that the port carries a "smooth" modulation signal. Control input
+ports of this type are well-suited for being connected to sources of smooth
+signals (knobs with smoothing, modulation rate oscillators, output ports with
+continuousCV type, etc.). Typically, the plugin with ports which have this
+property will implement appropriate smoothing to avoid audio artifacts. For
+output ports, this property suggests the value of the port is likely to change
+frequently, and describes a smooth signal (e.g. successive values may be
+considered points along a curve).
+""" .
+
+pprops:discreteCV
+ a lv2:PortProperty ;
+ rdfs:label "Carries a discrete modulation signal" ;
+ rdfs:comment """
+Indicates that the port carries a "discrete" modulation signal. Input ports of
+this type are well-suited for being connected to sources of discrete signals
+(switches, buttons, classifiers, event detectors, etc.). May be combined with
+pprops:trigger property. For output ports, this property suggests the value of
+the port describe discrete values that should be interpreted as steps (and not
+points along a curve).
+""" .
+
+pprops:reportsBpm
+ a lv2:PortProperty ;
+ rdfs:label "Carries the current tempo expressed in BPM" ;
+ rdfs:comment """
+Indicates that the port is used to pass the current tempo in context of the
+plugin (which may be current song tempo, or tempo of a particular subset of the
+song, or the subgraph the plugin resides in). For input ports, the host may
+automatically feed the port with current tempo and hide the port from the user,
+unless the user or other factors encourage different behaviour.
+""" .
+
+pprops:reportsBeatsPerBar
+ a lv2:PortProperty ;
+ rdfs:label "Carries the current number of beats in a bar" ;
+ rdfs:comment """
+Indicates that the port may be used to pass the current number of beats in a
+bar. """ .
+
+pprops:reportsBeatUnit
+ a lv2:PortProperty ;
+ rdfs:label "Carries the current beat size" ;
+ rdfs:comment """
+Indicates that the port may be used to pass the current size of a beat (4 for a
+crochet/quarter note, 8 for a quaver/eighth note, etc.).
+""" .
+
+pprops:logarithmic
+ a lv2:PortProperty ;
+ rdfs:label "Port value uses a logarithmic scale" ;
+ rdfs:comment """
+Indicates that port value behaviour within specified range (bounds) is a value
+using logarithmic scale. The lower and upper bounds must be specified, and
+must be of the same sign.
+""" .
+
+pprops:notAutomatic
+ a lv2:PortProperty ;
+ rdfs:label "Port is not intended as a CV input" ;
+ rdfs:comment """
+Indicates that the port is not primarily intended to be fed with modulation
+signals from external sources (other plugins, etc.). It is merely a UI hint
+and hosts may allow the user to override it.
+""" .
+
+pprops:notOnGUI
+ a lv2:PortProperty ;
+ rdfs:label "Port is not to be displayed on a GUI or equivalent" ;
+ rdfs:comment """
+Indicates that the port is not primarily intended to be represented by a
+separate control in the user interface window (or any similar mechanism used
+for direct, immediate control of control ports). It is merely a UI hint and
+hosts may allow the user to override it.
+""" .
+
+pprops:priority
+ a rdf:Property ;
+ rdfs:domain lv2:Port ;
+ rdfs:range xsd:float ;
+ rdfs:label "Relative usefulness of a port" ;
+ rdfs:comment """
+Indicates how (typically) useful is the port comparing to other ports with that
+property (higher value = more important). The values do not need to be unique,
+and ports can be grouped based on their priorities.
+""" .
+
+pprops:rangeSteps
+ a rdf:Property ;
+ rdfs:domain lv2:Port ;
+ rdfs:range xsd:nonNegativeInteger ;
+ rdfs:label "Number of value quantization steps" ;
+ lv2:documentation """
+<p>This value indicates into how many evenly-divided points the (control) port
+range shoujld be divided for step-wise control. This may be used for changing
+the value with step-based controllers like arrow keys, mouse wheel, rotary
+encoders, etc.</p>
+
+<p>Note that when used with a pprops:logarithmic port, the steps are
+logarithmic too, and port value can be calculated as:</p>
+
+<pre>
+value = lower * pow(upper / lower, step / (steps - 1))
+</pre>
+
+<p>and the step from value is:</p>
+
+<pre>
+step = (steps - 1) * log(value / lower) / log(upper / lower)
+</pre>
+
+<p>where:</p>
+<ul>
+<li><code>value</code> is the port value</li>
+<li><code>step</code> is the step number (0..steps)</li>
+<li><code>steps</code> is the number of steps (= value of :rangeSteps property)</li>
+<li><code>lower</code> and <code>upper</code> are the bounds</li>
+</ul>
+""" .