@prefix atom:  <http://lv2plug.in/ns/ext/atom#> .
@prefix doap:  <http://usefulinc.com/ns/doap#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix idpy:  <http://harrisonconsoles.com/lv2/inlinedisplay#> .
@prefix kx:    <http://kxstudio.sf.net/ns/lv2ext/external-ui#> .
@prefix lv2:   <http://lv2plug.in/ns/lv2core#> .
@prefix mod:   <http://moddevices.com/ns/mod#> .
@prefix opts:  <http://lv2plug.in/ns/ext/options#> .
@prefix pprop: <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 rsz:   <http://lv2plug.in/ns/ext/resize-port#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix ui:    <http://lv2plug.in/ns/extensions/ui#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix urid:  <http://lv2plug.in/ns/ext/urid#> .

idpy:queue_draw a lv2:Feature .
idpy:interface a lv2:ExtensionData .
ui:scaleFactor a opts:Option .

@prefix darc: <http://gareus.org/oss/lv2/darc#> .

<http://gareus.org/rgareus#me>
	a foaf:Person ;
	foaf:name "Robin Gareus" ;
	foaf:mbox <mailto:robin@gareus.org> ;
	foaf:homepage <http://gareus.org/> .

darc:ui_gl
	a ui:X11UI ;
	opts:supportedOption <http://lv2plug.in/ns/extensions/ui#scaleFactor> ;
	lv2:optionalFeature opts:options ;
	lv2:requiredFeature ui:idleInterface; lv2:extensionData ui:idleInterface;
	lv2:requiredFeature urid:map ;
  .


darc:mono
	a lv2:Plugin, doap:Project, lv2:CompressorPlugin;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	doap:maintainer <http://gareus.org/rgareus#me> ;
	lv2:microVersion 0 ;lv2:minorVersion 1542 ;
	doap:name "x42-comp - Dynamic Compressor Mono";
	lv2:extensionData idpy:interface ;
	lv2:optionalFeature lv2:hardRTCapable, idpy:queue_draw;
  ui:ui darc:ui_gl ;
	lv2:port [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 0 ;
		lv2:symbol "enable" ;
		lv2:name "Enable";
		lv2:default 1 ;
		lv2:minimum 0 ;
		lv2:maximum 1 ;
		lv2:portProperty lv2:integer, lv2:toggled;
		lv2:designation lv2:enabled;
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 1 ;
		lv2:symbol "hold" ;
		lv2:name "Hold";
		lv2:default 0 ;
		lv2:minimum 0 ;
		lv2:maximum 1 ;
		lv2:portProperty lv2:integer, lv2:toggled;
		lv2:designation lv2:enabled;
		rdfs:comment "Hold: Retain current attenuation when the signal subceeds the threshold. This prevents modulation of the noise-floor and can counter-act 'pumping'";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 2 ;
		lv2:symbol "inputgain" ;
		lv2:name "Input Gain" ;
		lv2:default   0.0 ;
		lv2:minimum -10.0 ;
		lv2:maximum  30.0;
		pprop:rangeSteps 81;
		units:unit units:db ;
		rdfs:comment "Input Gain: Gain applied before level detection or any other processing";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 3 ;
		lv2:symbol "threshold" ;
		lv2:name "Threshold" ;
		lv2:default -30.0 ;
		lv2:minimum -50.0 ;
		lv2:maximum -10.0;
		pprop:rangeSteps 81;
		units:unit units:db ;
		rdfs:comment "Threshold: Signal level (RMS) at which the compression effect is engaged";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 4 ;
		lv2:symbol "Ratio" ;
		lv2:name "Ratio" ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0;
		lv2:scalePoint [ rdfs:label "Lim"; rdf:value 1 ; ] ;
		pprop:rangeSteps 37;
		rdfs:comment "Ratio: The amount of gain or attenuation to be applied (dB/dB above threshold). Unity is retained at -10dBFS/RMS (auto makeup-gain)";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 5 ;
		lv2:symbol "attack" ;
		lv2:name "Attack Time";
		lv2:default 0.01 ;
		lv2:minimum 0.001 ;
		lv2:maximum 0.1 ;
		lv2:portProperty pprop:logarithmic;
		pprop:rangeSteps 101;
		units:unit units:s ;
		rdfs:comment "Attack time.</b> Time it takes for the signal to become fully compressed after exceeding the threshold";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 6 ;
		lv2:symbol "release" ;
		lv2:name "Release Time";
		lv2:default 0.3 ;
		lv2:minimum 0.03 ;
		lv2:maximum 3.0 ;
		lv2:portProperty pprop:logarithmic;
		pprop:rangeSteps 101;
		units:unit units:s ;
		rdfs:comment "Release time: Minimum recovery time to uncompressed signal-level after falling below threshold";
	] , [
		a lv2:OutputPort ,
			lv2:ControlPort ;
		lv2:index 7 ;
		lv2:symbol "gain_min" ;
		lv2:name "Gain Min" ;
		lv2:minimum -20.0 ;
		lv2:maximum 40.0;
		units:unit units:db ;
	] , [
		a lv2:OutputPort ,
			lv2:ControlPort ;
		lv2:index 8 ;
		lv2:symbol "gain_max" ;
		lv2:name "Gain Max" ;
		lv2:minimum -20.0 ;
		lv2:maximum 40.0;
		units:unit units:db ;
	] , [
		a lv2:OutputPort ,
			lv2:ControlPort ;
		lv2:index 9 ;
		lv2:symbol "rms" ;
		lv2:name "Signal Level" ;
		lv2:minimum -80.0 ;
		lv2:maximum 10.0;
		units:unit units:db ;
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 10 ;
		lv2:symbol "in" ;
		lv2:name "In"
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 11 ;
		lv2:symbol "out" ;
		lv2:name "Out"
	]
	.

darc:stereo
	a lv2:Plugin, doap:Project, lv2:CompressorPlugin;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	doap:maintainer <http://gareus.org/rgareus#me> ;
	lv2:microVersion 0 ;lv2:minorVersion 1542 ;
	doap:name "x42-comp - Dynamic Compressor Stereo";
	lv2:extensionData idpy:interface ;
	lv2:optionalFeature lv2:hardRTCapable, idpy:queue_draw;
  ui:ui darc:ui_gl ;
	lv2:port [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 0 ;
		lv2:symbol "enable" ;
		lv2:name "Enable";
		lv2:default 1 ;
		lv2:minimum 0 ;
		lv2:maximum 1 ;
		lv2:portProperty lv2:integer, lv2:toggled;
		lv2:designation lv2:enabled;
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 1 ;
		lv2:symbol "hold" ;
		lv2:name "Hold";
		lv2:default 0 ;
		lv2:minimum 0 ;
		lv2:maximum 1 ;
		lv2:portProperty lv2:integer, lv2:toggled;
		lv2:designation lv2:enabled;
		rdfs:comment "Hold: Retain current attenuation when the signal subceeds the threshold. This prevents modulation of the noise-floor and can counter-act 'pumping'";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 2 ;
		lv2:symbol "inputgain" ;
		lv2:name "Input Gain" ;
		lv2:default   0.0 ;
		lv2:minimum -10.0 ;
		lv2:maximum  30.0;
		pprop:rangeSteps 81;
		units:unit units:db ;
		rdfs:comment "Input Gain: Gain applied before level detection or any other processing";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 3 ;
		lv2:symbol "threshold" ;
		lv2:name "Threshold" ;
		lv2:default -30.0 ;
		lv2:minimum -50.0 ;
		lv2:maximum -10.0;
		pprop:rangeSteps 81;
		units:unit units:db ;
		rdfs:comment "Threshold: Signal level (RMS) at which the compression effect is engaged";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 4 ;
		lv2:symbol "Ratio" ;
		lv2:name "Ratio" ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0;
		lv2:scalePoint [ rdfs:label "Lim"; rdf:value 1 ; ] ;
		pprop:rangeSteps 37;
		rdfs:comment "Ratio: The amount of gain or attenuation to be applied (dB/dB above threshold). Unity is retained at -10dBFS/RMS (auto makeup-gain)";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 5 ;
		lv2:symbol "attack" ;
		lv2:name "Attack Time";
		lv2:default 0.01 ;
		lv2:minimum 0.001 ;
		lv2:maximum 0.1 ;
		lv2:portProperty pprop:logarithmic;
		pprop:rangeSteps 101;
		units:unit units:s ;
		rdfs:comment "Attack time.</b> Time it takes for the signal to become fully compressed after exceeding the threshold";
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 6 ;
		lv2:symbol "release" ;
		lv2:name "Release Time";
		lv2:default 0.3 ;
		lv2:minimum 0.03 ;
		lv2:maximum 3.0 ;
		lv2:portProperty pprop:logarithmic;
		pprop:rangeSteps 101;
		units:unit units:s ;
		rdfs:comment "Release time: Minimum recovery time to uncompressed signal-level after falling below threshold";
	] , [
		a lv2:OutputPort ,
			lv2:ControlPort ;
		lv2:index 7 ;
		lv2:symbol "gain_min" ;
		lv2:name "Gain Min" ;
		lv2:minimum -20.0 ;
		lv2:maximum 40.0;
		units:unit units:db ;
	] , [
		a lv2:OutputPort ,
			lv2:ControlPort ;
		lv2:index 8 ;
		lv2:symbol "gain_max" ;
		lv2:name "Gain Max" ;
		lv2:minimum -20.0 ;
		lv2:maximum 40.0;
		units:unit units:db ;
	] , [
		a lv2:OutputPort ,
			lv2:ControlPort ;
		lv2:index 9 ;
		lv2:symbol "rms" ;
		lv2:name "Signal Level" ;
		lv2:minimum -80.0 ;
		lv2:maximum 10.0;
		units:unit units:db ;
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 10 ;
		lv2:symbol "inL" ;
		lv2:name "In Left"
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 11 ;
		lv2:symbol "outL" ;
		lv2:name "Out Left"
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 12 ;
		lv2:symbol "inR" ;
		lv2:name "In Right"
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 13 ;
		lv2:symbol "outR" ;
		lv2:name "Out Right"
	] ;
	.
