@prefix dcs:   <http://ontologi.es/doap-changeset#> .
@prefix doap:  <http://usefulinc.com/ns/doap#> .
@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#> .

<http://lv2plug.in/ns/ext/parameters>
	a lv2:Specification ;
	rdfs:seeAlso <../../meta/meta.ttl> ;
	doap:name "LV2 Parameters" ;
	doap:release [
		doap:revision "1.1" ;
		doap:created "2012-07-29" ;
		dcs:blame <http://drobilla.net/drobilla#me> ;
		dcs:changeset [
			dcs:item [
				rdfs:label "Use consistent label style."
			]
		]
	] , [
		doap:revision "1.0" ;
		doap:created "2012-04-17" ;
		doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
		dcs:blame <http://drobilla.net/drobilla#me> ;
		dcs:changeset [
			dcs:item [
				rdfs:label "Initial release."
			]
		]
	] ;
	doap:created "2009-00-00" ;
	doap:shortdesc "Common parameters for audio processing." ;
	doap:maintainer <http://drobilla.net/drobilla#me> ;
	doap:developer <http://lv2plug.in/ns/meta#larsl> ;
	lv2:documentation """
<p>This vocabulary describes 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 (e.g. using <a
href="http://lv2plug.in/ns/lv2core#designation">lv2:designation</a>) so they
can be used more intelligently or presented to the user more efficiently.</p>
""" .

param:ControlGroup
	a rdfs:Class ;
	rdfs:subClassOf pg:Group ;
	rdfs:comment """
A group representing a set of associated controls.
""" .

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:gain
	a lv2:Parameter ;
	rdfs:label "gain" ;
	rdfs:comment "A factor which controls an output level." .

param:wetDryRatio
	a lv2:Parameter ;
	rdfs:label "wet/dry ratio" ;
	lv2:documentation """
<p>The ratio between processed and bypass components in output signal.  The dry
and wet percentages can be calculated from the following equations:</p>

<pre class="c-code">
    dry = (wetDryRatio.maximum - wetDryRatio.value) / wetDryRatio.maximum
    wet = wetDryRatio.value / wetDryRatio.maximum
</pre>

<p>Typically, maximum value of 1 or 100 and minimum value of 0 should be
used.</p>
""" .

param:wetLevel
	a lv2:Parameter ;
	rdfs:label "wet level" ;
	rdfs:comment "The level of the processed component of a signal." .

param:dryLevel
	a lv2:Parameter ;
	rdfs:label "dry level" ;
	rdfs:comment "The level of the unprocessed component of a signal." .

param:bypass
	a lv2:Parameter ;
	rdfs:label "bypass" ;
	rdfs:comment "A boolean parameter that disabled processing if true." .

param:EnvelopeControls
	a rdfs:Class ;
	rdfs:subClassOf param:ControlGroup ;
	rdfs:label "DAHDSR Envelope Controls" ;
	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 "Oscillator Controls" ;
	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 "Filter Controls" ;
	pg:element [
		lv2:designation param:cutoffFrequency
	] , [
		lv2:designation param:resonance
	] .

param:CompressorControls
	a rdfs:Class ;
	rdfs:subClassOf param:ControlGroup ;
	rdfs:label "Compressor Controls" ;
	pg:element [
		lv2:designation param:threshold
	] , [
		lv2:designation param:ratio
	] .