aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/lv2plug.in/ns/ext/port-props
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-03-24 22:18:21 +0000
committerDavid Robillard <d@drobilla.net>2012-03-24 22:18:21 +0000
commitb260998d80fb785e33e26516b20f95739b8ce444 (patch)
tree2a7586871a235735ffe2d70703d4e83b8d1146a5 /lv2/lv2plug.in/ns/ext/port-props
parent978d41eaad0052d3c9ef5314b98053d38bdce7bd (diff)
downloadlv2-b260998d80fb785e33e26516b20f95739b8ce444.tar.xz
Re-work port-groups to re-use new stuff in the core.
On second thought, re-add port-props extension.
Diffstat (limited to 'lv2/lv2plug.in/ns/ext/port-props')
l---------lv2/lv2plug.in/ns/ext/port-props/ext.pc.in1
-rw-r--r--lv2/lv2plug.in/ns/ext/port-props/manifest.ttl8
-rw-r--r--lv2/lv2plug.in/ns/ext/port-props/port-props.ttl211
l---------lv2/lv2plug.in/ns/ext/port-props/waf1
l---------lv2/lv2plug.in/ns/ext/port-props/wscript1
5 files changed, 222 insertions, 0 deletions
diff --git a/lv2/lv2plug.in/ns/ext/port-props/ext.pc.in b/lv2/lv2plug.in/ns/ext/port-props/ext.pc.in
new file mode 120000
index 0000000..03dd044
--- /dev/null
+++ b/lv2/lv2plug.in/ns/ext/port-props/ext.pc.in
@@ -0,0 +1 @@
+../../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/port-props/manifest.ttl b/lv2/lv2plug.in/ns/ext/port-props/manifest.ttl
new file mode 100644
index 0000000..b88a0c7
--- /dev/null
+++ b/lv2/lv2plug.in/ns/ext/port-props/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 2 ;
+ rdfs:seeAlso <port-props.ttl> .
diff --git a/lv2/lv2plug.in/ns/ext/port-props/port-props.ttl b/lv2/lv2plug.in/ns/ext/port-props/port-props.ttl
new file mode 100644
index 0000000..9f4542d
--- /dev/null
+++ b/lv2/lv2plug.in/ns/ext/port-props/port-props.ttl
@@ -0,0 +1,211 @@
+# LV2 Port Properties Extension
+# Copyright 2011-2012 David Robillard <d@drobilla.net>
+# Copyright 2009 Krzysztof Foltman
+#
+# 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 foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix pprops: <http://lv2plug.in/ns/ext/port-props#> .
+@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://drobilla.net/drobilla#me>
+ a foaf:Person ;
+ foaf:name "David Robillard" ;
+ foaf:homepage <http://drobilla.net/> ;
+ foaf:mbox <mailto:d@drobilla.net> ;
+ rdfs:seeAlso <http://drobilla.net/drobilla> .
+
+<http://lv2plug.in/ns/ext/port-props>
+ a lv2:Specification ;
+ doap:name "LV2 Port Properties" ;
+ doap:release [
+ doap:revision "0.2" ;
+ doap:created "2012-03-23" ;
+ ] ;
+ doap:created "2009-01-01" ;
+ doap:shortdesc "Various port properties." ;
+ doap:maintainer [
+ a foaf:Person ;
+ foaf:name "Krzysztof Foltman" ;
+ ] , <http://drobilla.net/drobilla#me> ;
+ lv2:documentation """
+<p>This extension defines various properties for plugin ports, which can be
+used to better describe how a plugin can be controlled. 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: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:displayPriority
+ a rdf:Property ;
+ rdfs:domain lv2:Port ;
+ rdfs:range xsd:nonNegativeInteger ;
+ rdfs:label "Display priority" ;
+ rdfs:comment """
+Indicates how important a port is to controlling the plugin. If a host can
+only display some ports of a plugin, it should prefer ports with a higher
+display priority. Priorities do not need to be unique, and are only meaningful
+when compared to each other.
+""" .
+
+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 class="c-code">
+value = lower * pow(upper / lower, step / (steps - 1))
+</pre>
+
+<p>and the step from value is:</p>
+
+<pre class="c-code">
+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>
+""" .
diff --git a/lv2/lv2plug.in/ns/ext/port-props/waf b/lv2/lv2plug.in/ns/ext/port-props/waf
new file mode 120000
index 0000000..5235032
--- /dev/null
+++ b/lv2/lv2plug.in/ns/ext/port-props/waf
@@ -0,0 +1 @@
+../../../../../waf \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/port-props/wscript b/lv2/lv2plug.in/ns/ext/port-props/wscript
new file mode 120000
index 0000000..7e2c01b
--- /dev/null
+++ b/lv2/lv2plug.in/ns/ext/port-props/wscript
@@ -0,0 +1 @@
+../../../../../ext.wscript \ No newline at end of file