aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/lv2plug.in/ns/ext/parameters
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/parameters
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/parameters')
-rw-r--r--lv2/lv2plug.in/ns/ext/parameters/parameters.ttl291
1 files changed, 132 insertions, 159 deletions
diff --git a/lv2/lv2plug.in/ns/ext/parameters/parameters.ttl b/lv2/lv2plug.in/ns/ext/parameters/parameters.ttl
index 4a8c3c5..013828c 100644
--- a/lv2/lv2plug.in/ns/ext/parameters/parameters.ttl
+++ b/lv2/lv2plug.in/ns/ext/parameters/parameters.ttl
@@ -18,6 +18,7 @@
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix param: <http://lv2plug.in/ns/ext/parameters#> .
+@prefix pg: <http://lv2plug.in/ns/ext/port-groups#> .
@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#> .
@@ -43,167 +44,139 @@
foaf:name "Krzysztof Foltman" ;
] , <http://drobilla.net/drobilla#me> ;
lv2:documentation """
-<p>This extension defines useful parameters and properties for LV2 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> """ .
-
-param: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.
-""" .
-
-param:supportsStrictBounds
- a lv2:Feature ;
- rdfs:label "Supports strict bounds" ;
- rdfs:comment """
-Indicates use of host support for param: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 param:hasStrictBounds property.
-""" .
-
-param:hasStrictBounds
- a lv2:PortProperty ;
- rdfs:label "Has strict bounds" ;
- rdfs:comment """
-For hosts that support param: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 param: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.
-""" .
-
-param: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.
-""" .
-
-param: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.
-""" .
-
-param: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).
-""" .
-
-param: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
-param: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).
+<p>This extension defines parameters common in audio processing software. A
+<q>parameter</q> is purely a metadata concept, unrelated to any particular code
+mechanism. Parameters are used to assign meaning to controls so they can be
+used more intelligently or presented to the user more efficiently.</p>
""" .
-param:logarithmic
- a lv2:PortProperty ;
- rdfs:label "Port value uses a logarithmic scale" ;
+param:ControlGroup
+ a rdfs:Class ;
+ rdfs:subClassOf pg:Group ;
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.
+A group representing a set of associated controls.
""" .
-param: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.
-""" .
-
-param: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.
-""" .
-
-param: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.
-""" .
-
-param: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 param: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>
-""" .
+param:amplitude
+ a lv2:Parameter ;
+ rdfs:label "Amplitude" .
+
+param:attack
+ a lv2:Parameter ;
+ rdfs:label "Attack" ;
+ rdfs:comment "The duration of an envelope's attack stage." .
+
+param:cutoffFrequency
+ a lv2:Parameter ;
+ rdfs:label "Cutoff Frequency" .
+
+param:decay
+ a lv2:Parameter ;
+ rdfs:label "Decay" ;
+ rdfs:comment "The duration of an envelope's decay stage." .
+
+param:delay
+ a lv2:Parameter ;
+ rdfs:label "Delay" ;
+ rdfs:comment "The duration of an envelope's delay stage." .
+
+param:frequency
+ a lv2:Parameter ;
+ rdfs:label "Frequency" .
+
+param:hold
+ a lv2:Parameter ;
+ rdfs:label "Hold" ;
+ rdfs:comment "The duration of an envelope's hold stage." .
+
+param:pulseWidth
+ a lv2:Parameter ;
+ rdfs:label "Pulse Width" ;
+ rdfs:comment "The width of a pulse of a rectangular waveform." .
+
+param:ratio
+ a lv2:Parameter ;
+ rdfs:label "Ratio" ;
+ rdfs:comment "Compression ration." .
+
+param:release
+ a lv2:Parameter ;
+ rdfs:label "Release" ;
+ rdfs:comment "The duration of an envelope's release stage." .
+
+param:resonance
+ a lv2:Parameter ;
+ rdfs:label "Resonance" ;
+ rdfs:comment "The resonance of a filter." .
+
+param:sustain
+ a lv2:Parameter ;
+ rdfs:label "Sustain" ;
+ rdfs:comment "The level (not duration) of an envelope's sustain stage." .
+
+param:threshold
+ a lv2:Parameter ;
+ rdfs:label "Threshold" ;
+ rdfs:comment "Compression threshold." .
+
+param:waveform
+ a lv2:Parameter ;
+ rdfs:label "Waveform" .
+
+param:EnvelopeControls
+ a rdfs:Class ;
+ rdfs:subClassOf param:ControlGroup ;
+ rdfs:label "Controls for a DAHDSR envelope." ;
+ pg:element [
+ lv2:index 0 ;
+ lv2:designation param:delay ;
+ ] , [
+ lv2:index 1 ;
+ lv2:designation param:attack ;
+ ] , [
+ lv2:index 2 ;
+ lv2:designation param:hold ;
+ ] , [
+ lv2:index 3 ;
+ lv2:designation param:decay ;
+ ] , [
+ lv2:index 4 ;
+ lv2:designation param:sustain ;
+ ] , [
+ lv2:index 5 ;
+ lv2:designation param:release ;
+ ] .
+
+param:OscillatorControls
+ a rdfs:Class ;
+ rdfs:subClassOf param:ControlGroup ;
+ rdfs:label "Controls for an oscillator." ;
+ pg:element [
+ lv2:designation param:frequency ;
+ ] , [
+ lv2:designation param:amplitude ;
+ ] , [
+ lv2:designation param:waveform ;
+ ] , [
+ lv2:designation param:pulseWidth ;
+ ] .
+
+param:FilterControls
+ a rdfs:Class ;
+ rdfs:subClassOf param:ControlGroup ;
+ rdfs:label "Controls for a filter." ;
+ pg:element [
+ lv2:designation param:cutoffFrequency ;
+ ] , [
+ lv2:designation param:resonance ;
+ ] .
+
+param:CompressorControls
+ a rdfs:Class ;
+ rdfs:subClassOf param:ControlGroup ;
+ rdfs:label "Controls for a compressor." ;
+ pg:element [
+ lv2:designation param:threshold ;
+ ] , [
+ lv2:designation param:ratio ;
+ ] .