@prefix atom:  <http://lv2plug.in/ns/ext/atom#> .
@prefix bufsz: <http://lv2plug.in/ns/ext/buf-size#> .
@prefix clv2:  <http://gareus.org/oss/lv2/convoLV2#> .
@prefix doap:  <http://usefulinc.com/ns/doap#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix log:   <http://lv2plug.in/ns/ext/log#> .
@prefix lv2:   <http://lv2plug.in/ns/lv2core#> .
@prefix opts:  <http://lv2plug.in/ns/ext/options#> .
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
@prefix pg:    <http://lv2plug.in/ns/ext/port-groups#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix ui:    <http://lv2plug.in/ns/extensions/ui#> .
@prefix urid:  <http://lv2plug.in/ns/ext/urid#> .
@prefix work:  <http://lv2plug.in/ns/ext/worker#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .

# https://github.com/drobilla/lilv/issues/14
state:freePath a lv2:Feature .

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

<http://gareus.org/oss/lv2/convoLV2>
	a doap:Project ;
	doap:maintainer <http://gareus.org/rgareus#me> ;
	doap:name "LV2 Convolution" .

clv2:impulse
	a lv2:Parameter ;
	rdfs:label "impulse" ;
	rdfs:range atom:Path .

clv2:Mono
	a lv2:Plugin ;
	doap:name "LV2 Convolution Mono" ;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	lv2:microVersion 0 ;
	lv2:minorVersion 4 ;
	lv2:project <http://gareus.org/oss/lv2/convoLV2> ;
	lv2:requiredFeature bufsz:boundedBlockLength, urid:map, opts:options, work:schedule;
	bufsz:minBlockLength 64 ;
	bufsz:maxBlockLength 8192 ;
	lv2:extensionData work:interface, state:interface ;
	lv2:optionalFeature lv2:hardRTCapable, state:threadSafeRestore, bufsz:coarseBlockLength, log:log, state:mapPath, state:freePath;
	opts:supportedOption bufsz:maxBlockLength ;
	
	patch:writable clv2:impulse ;
	lv2:port [
		a atom:AtomPort ,
			lv2:InputPort ;
		atom:bufferType atom:Sequence ;
		atom:supports patch:Message ;
		lv2:designation lv2:control ;
		lv2:index 0 ;
		lv2:symbol "control" ;
		lv2:name "Control"
	] , [
		a atom:AtomPort ,
			lv2:OutputPort ;
		atom:bufferType atom:Sequence ;
		atom:supports patch:Message ;
		lv2:designation lv2:control ;
		lv2:index 1 ;
		lv2:symbol "notify" ;
		lv2:name "Notify"
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 2 ;
		lv2:symbol "gain" ;
		lv2:name "Output Gain" ;
		lv2:default 0.0 ;
		lv2:minimum -24.0 ;
		lv2:maximum 24.0;
		units:unit units:db ;
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 3 ;
		lv2:symbol "out" ;
		lv2:name "Out"
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 4 ;
		lv2:symbol "in" ;
		lv2:name "In"
	] ;
	rdfs:comment "Zero latency Mono Signal Convolution Processor"
	.

clv2:Stereo
	a lv2:Plugin ;
	doap:name "LV2 Convolution Stereo" ;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	lv2:microVersion 0 ;
	lv2:minorVersion 4 ;
	lv2:project <http://gareus.org/oss/lv2/convoLV2> ;
	lv2:requiredFeature bufsz:boundedBlockLength, urid:map, opts:options, work:schedule;
	bufsz:minBlockLength 64 ;
	bufsz:maxBlockLength 8192 ;
	lv2:extensionData work:interface, state:interface ;
	lv2:optionalFeature lv2:hardRTCapable, state:threadSafeRestore, bufsz:coarseBlockLength, log:log, state:mapPath, state:freePath;
	opts:supportedOption bufsz:maxBlockLength ;
	
	patch:writable clv2:impulse ;
	lv2:port [
		a atom:AtomPort ,
			lv2:InputPort ;
		atom:bufferType atom:Sequence ;
		atom:supports patch:Message ;
		lv2:designation lv2:control ;
		lv2:index 0 ;
		lv2:symbol "control" ;
		lv2:name "Control"
	] , [
		a atom:AtomPort ,
			lv2:OutputPort ;
		atom:bufferType atom:Sequence ;
		atom:supports patch:Message ;
		lv2:designation lv2:control ;
		lv2:index 1 ;
		lv2:symbol "notify" ;
		lv2:name "Notify"
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 2 ;
		lv2:symbol "gain" ;
		lv2:name "Output Gain" ;
		lv2:default 0.0 ;
		lv2:minimum -24.0 ;
		lv2:maximum 24.0;
		units:unit units:db ;
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 3 ;
		lv2:symbol "out_1" ;
		lv2:name "OutL" ;
		lv2:designation pg:left
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 4 ;
		lv2:symbol "in_1" ;
		lv2:name "InL" ;
		lv2:designation pg:left
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 5 ;
		lv2:symbol "out_2" ;
		lv2:name "OutR" ;
		lv2:designation pg:right
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 6 ;
		lv2:symbol "in_2" ;
		lv2:name "InR" ;
		lv2:designation pg:right
	] ;
	rdfs:comment "Zero latency Mono to Stereo Signal Convolution Processor; 2 chan IR"
	.

clv2:MonoToStereo
	a lv2:Plugin ;
	doap:name "LV2 Convolution Mono=>Stereo" ;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	lv2:microVersion 0 ;
	lv2:minorVersion 4 ;
	lv2:project <http://gareus.org/oss/lv2/convoLV2> ;
	lv2:requiredFeature bufsz:boundedBlockLength, urid:map, opts:options, work:schedule;
	bufsz:minBlockLength 64 ;
	bufsz:maxBlockLength 8192 ;
	lv2:extensionData work:interface, state:interface ;
	lv2:optionalFeature lv2:hardRTCapable, state:threadSafeRestore, bufsz:coarseBlockLength, log:log, state:mapPath, state:freePath;
	opts:supportedOption bufsz:maxBlockLength ;
	
	patch:writable clv2:impulse ;
	lv2:port [
		a atom:AtomPort ,
			lv2:InputPort ;
		atom:bufferType atom:Sequence ;
		atom:supports patch:Message ;
		lv2:designation lv2:control ;
		lv2:index 0 ;
		lv2:symbol "control" ;
		lv2:name "Control"
	] , [
		a atom:AtomPort ,
			lv2:OutputPort ;
		atom:bufferType atom:Sequence ;
		atom:supports patch:Message ;
		lv2:designation lv2:control ;
		lv2:index 1 ;
		lv2:symbol "notify" ;
		lv2:name "Notify"
	] , [
		a lv2:InputPort ,
			lv2:ControlPort ;
		lv2:index 2 ;
		lv2:symbol "gain" ;
		lv2:name "Gain" ;
		lv2:default 0.0 ;
		lv2:minimum -24.0 ;
		lv2:maximum 24.0;
		units:unit units:db ;
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 3 ;
		lv2:symbol "out_1" ;
		lv2:name "OutL" ;
		lv2:designation pg:left
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 4 ;
		lv2:symbol "in" ;
		lv2:name "In"
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 5 ;
		lv2:symbol "out_2" ;
		lv2:name "OutR" ;
		lv2:designation pg:right
	] ;
	rdfs:comment "Zero latency True Stereo Signal Convolution Processor; 2 signals, 4 chan IR (L -> L, R -> R, L -> R, R -> L)"
	.
