diff options
author | David Robillard <d@drobilla.net> | 2012-03-24 22:18:21 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-03-24 22:18:21 +0000 |
commit | b260998d80fb785e33e26516b20f95739b8ce444 (patch) | |
tree | 2a7586871a235735ffe2d70703d4e83b8d1146a5 /lv2/lv2plug.in/ns/ext/parameters | |
parent | 978d41eaad0052d3c9ef5314b98053d38bdce7bd (diff) | |
download | lv2-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.ttl | 291 |
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 ; + ] . |