@prefix doap:  <http://usefulinc.com/ns/doap#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .

@prefix lv2:     <http://lv2plug.in/ns/lv2core#> .
@prefix lv2ui:   <http://lv2plug.in/ns/extensions/ui#> .
@prefix lv2urid: <http://lv2plug.in/ns/ext/urid#> .
@prefix lv2atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix lv2midi: <http://lv2plug.in/ns/ext/midi#> .
@prefix lv2time: <http://lv2plug.in/ns/ext/time#> .
@prefix lv2state: <http://lv2plug.in/ns/ext/state#> .
@prefix lv2patch: <http://lv2plug.in/ns/ext/patch#> .
@prefix lv2worker: <http://lv2plug.in/ns/ext/worker#> .
@prefix lv2resize: <http://lv2plug.in/ns/ext/resize-port#> .
@prefix lv2pg:   <http://lv2plug.in/ns/ext/port-groups#> .

@prefix drumkv1_lv2: <http://drumkv1.sourceforge.net/lv2#> .

<http://drumkv1.sourceforge.net/lv2>
	a lv2:Plugin, lv2:InstrumentPlugin, doap:Project ;
	doap:name "drumkv1" ;
	doap:maintainer [
		foaf:name "rncbc aka. Rui Nuno Capela" ;
		foaf:homepage <https://www.rncbc.org> ;
		foaf:mbox <mailto:rncbc@rncbc.org> ;
	] ;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	lv2:minorVersion 0 ;
	lv2:microVersion 2 ;
	lv2:requiredFeature lv2urid:map, lv2worker:schedule ;
	lv2:optionalFeature lv2:hardRTCapable ;
	lv2:extensionData lv2state:interface, lv2worker:interface ;
	lv2patch:writable drumkv1_lv2:P101_SAMPLE_FILE,
		drumkv1_lv2:P102_OFFSET_START,
		drumkv1_lv2:P103_OFFSET_END,
		drumkv1_lv2:P201_TUNING_ENABLED,
		drumkv1_lv2:P202_TUNING_REF_PITCH,
		drumkv1_lv2:P203_TUNING_REF_NOTE,
		drumkv1_lv2:P204_TUNING_SCALE_FILE,
		drumkv1_lv2:P205_TUNING_KEYMAP_FILE ;
	lv2:port [
		a lv2:InputPort, lv2atom:AtomPort ;
		lv2atom:bufferType lv2atom:Sequence ;
		lv2atom:supports lv2midi:MidiEvent, lv2time:Position, lv2patch:Message ;
		lv2:designation lv2:control ;
		lv2:index 0 ;
		lv2:symbol "in";
		lv2:name "MIDI In";
	], [
		a lv2:OutputPort, lv2atom:AtomPort ;
		lv2atom:bufferType lv2atom:Sequence ;
		lv2atom:supports lv2patch:Message ;
		lv2:designation lv2:control ;
		lv2resize:minimumSize 5120 ;
		lv2:index 1 ;
		lv2:symbol "notify";
		lv2:name "Notify";
	] ;
	lv2:port [
		a lv2:InputPort, lv2:AudioPort ;
		lv2:index 2 ;
		lv2:symbol "in_L" ;
		lv2:name "Audio In L" ;
	], [
		a lv2:InputPort, lv2:AudioPort ;
		lv2:index 3 ;
		lv2:symbol "in_R" ;
		lv2:name "Audio In R" ;
	] ;
	lv2:port [
		a lv2:OutputPort, lv2:AudioPort ;
		lv2:index 4 ;
		lv2:symbol "Out_L" ;
		lv2:name "Audio Out L" ;
	], [
		a lv2:OutputPort, lv2:AudioPort ;
		lv2:index 5 ;
		lv2:symbol "Out_R" ;
		lv2:name "Audio Out R" ;
	] ;
	lv2:port [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 6 ;
		lv2:symbol "GEN1_SAMPLE" ;
		lv2:name "GEN1 Sample" ;
		lv2:portProperty lv2:integer ;
		lv2:default 36.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 127.0 ;
		lv2pg:group drumkv1_lv2:G101_GEN1 ;
	] ;
	lv2:port [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 7 ;
		lv2:symbol "DEF1_PITCHBEND" ;
		lv2:name "DEF1 Pitchbend" ;
		lv2:default 0.2 ;
		lv2:minimum 0.0 ;
		lv2:maximum 4.0 ;
		lv2pg:group drumkv1_lv2:G102_DEF1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 8 ;
		lv2:symbol "DEF1_MODWHEEL" ;
		lv2:name "DEF1 Modwheel" ;
		lv2:default 0.2 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G102_DEF1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 9 ;
		lv2:symbol "DEF1_PRESSURE" ;
		lv2:name "DEF1 Pressure" ;
		lv2:default 0.2 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G102_DEF1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 10 ;
		lv2:symbol "DEF1_VELOCITY" ;
		lv2:name "DEF1 Velocity" ;
		lv2:default 0.2 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G102_DEF1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 11 ;
		lv2:symbol "DEF1_CHANNEL" ;
		lv2:name "DEF1 Channel" ;
		lv2:portProperty lv2:integer ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 16.0 ;
		lv2pg:group drumkv1_lv2:G102_DEF1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 12 ;
		lv2:symbol "DEF1_NOTEOFF" ;
		lv2:name "DEF1 Note Off" ;
		lv2:portProperty lv2:integer, lv2:enumeration ;
		lv2:scalePoint [ rdfs:label "Disabled"; rdf:value 0 ] ;
		lv2:scalePoint [ rdfs:label "Enabled"; rdf:value 1 ] ;
		lv2:default 1.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G102_DEF1 ;
	] ;
	lv2:port [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 13 ;
		lv2:symbol "CHO1_WET" ;
		lv2:name "Chorus Wet" ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G201_CHO1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 14 ;
		lv2:symbol "CHO1_DELAY" ;
		lv2:name "Chorus Delay" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G201_CHO1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 15 ;
		lv2:symbol "CHO1_FEEDB" ;
		lv2:name "Chorus Feedback" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G201_CHO1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 16 ;
		lv2:symbol "CHO1_RATE" ;
		lv2:name "Chorus Rate" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G201_CHO1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 17 ;
		lv2:symbol "CHO1_MOD" ;
		lv2:name "Chorus Modulation" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G201_CHO1 ;
	] ;
	lv2:port [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 18 ;
		lv2:symbol "FLA1_WET" ;
		lv2:name "Flanger Wet" ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G202_FLA1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 19 ;
		lv2:symbol "FLA1_DELAY" ;
		lv2:name "Flanger Delay" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G202_FLA1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 20 ;
		lv2:symbol "FLA1_FEEDB" ;
		lv2:name "Flanger Feedback" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G202_FLA1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 21 ;
		lv2:symbol "FLA1_DAFT" ;
		lv2:name "Flanger Daft" ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G202_FLA1 ;
	] ;
	lv2:port [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 22 ;
		lv2:symbol "PHA1_WET" ;
		lv2:name "Phaser Wet" ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G203_PHA1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 23 ;
		lv2:symbol "PHA1_RATE" ;
		lv2:name "Phaser Rate" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G203_PHA1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 24 ;
		lv2:symbol "PHA1_FEEDB" ;
		lv2:name "Phaser Feedback" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G203_PHA1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 25 ;
		lv2:symbol "PHA1_DEPTH" ;
		lv2:name "Phaser Depth" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G203_PHA1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 26 ;
		lv2:symbol "PHA1_DAFT" ;
		lv2:name "Phaser Daft" ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G203_PHA1 ;
	] ;
	lv2:port [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 27 ;
		lv2:symbol "DEL1_WET" ;
		lv2:name "Delay Wet" ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G204_DEL1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 28 ;
		lv2:symbol "DEL1_DELAY" ;
		lv2:name "Delay Delay" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G204_DEL1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 29 ;
		lv2:symbol "DEL1_FEEDB" ;
		lv2:name "Delay Feedback" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G204_DEL1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 30 ;
		lv2:symbol "DEL1_BPM" ;
		lv2:name "Delay BPM" ;
		lv2:default 180.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 360.0 ;
		lv2pg:group drumkv1_lv2:G204_DEL1 ;
	] ;
	lv2:port [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 31 ;
		lv2:symbol "REV1_WET" ;
		lv2:name "Reverb Wet" ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G205_REV1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 32 ;
		lv2:symbol "REV1_ROOM" ;
		lv2:name "Reverb Room" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G205_REV1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 33 ;
		lv2:symbol "REV1_DAMP" ;
		lv2:name "Reverb Damp" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G205_REV1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 34 ;
		lv2:symbol "REV1_FEEDB" ;
		lv2:name "Reverb Feedback" ;
		lv2:default 0.5 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G205_REV1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 35 ;
		lv2:symbol "REV1_WIDTH" ;
		lv2:name "Reverb Width" ;
		lv2:default 0.0 ;
		lv2:minimum -1.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G205_REV1 ;
	] ;
	lv2:port [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 36 ;
		lv2:symbol "DYN1_COMPRESS" ;
		lv2:name "Dynamic Compressor" ;
		lv2:portProperty lv2:toggled ;
		lv2:default 0.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G206_DYN1 ;
	], [
		a lv2:InputPort, lv2:ControlPort ;
		lv2:index 37 ;
		lv2:symbol "DYN1_LIMITER" ;
		lv2:name "Dynamic Limiter" ;
		lv2:portProperty lv2:toggled ;
		lv2:default 1.0 ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2pg:group drumkv1_lv2:G206_DYN1 ;
	] .


drumkv1_lv2:P101_SAMPLE_FILE
	a lv2:Parameter ;
	rdfs:label "P101 Sample File" ;
	rdfs:range lv2atom:Path .

drumkv1_lv2:P102_OFFSET_START
	a lv2:Parameter ;
	rdfs:label "P102 Offset Start" ;
	rdfs:range lv2atom:Int ;
	lv2:default 0 ;
	lv2:minimum 0 ;
	lv2:maximum 2147483647 .

drumkv1_lv2:P103_OFFSET_END
	a lv2:Parameter ;
	rdfs:label "P103 Offset End" ;
	rdfs:range lv2atom:Int ;
	lv2:default 0 ;
	lv2:minimum 0 ;
	lv2:maximum 2147483647 .


drumkv1_lv2:P201_TUNING_ENABLED
	a lv2:Parameter ;
	rdfs:label "P201 Tuning Enabled" ;
	rdfs:range lv2atom:Bool .

drumkv1_lv2:P202_TUNING_REF_PITCH
	a lv2:Parameter ;
	rdfs:label "P202 Tuning Reference Pitch" ;
	rdfs:range lv2atom:Float ;
	lv2:default 440.0 ;
	lv2:minimum 20.0 ;
	lv2:maximum 8000.0 .

drumkv1_lv2:P203_TUNING_REF_NOTE
	a lv2:Parameter ;
	rdfs:label "P203 Tuning Reference Note" ;
	rdfs:range lv2atom:Int ;
	lv2:default 69 ;
	lv2:minimum 0 ;
	lv2:maximum 127 .

drumkv1_lv2:P204_TUNING_SCALE_FILE
	a lv2:Parameter ;
	rdfs:label "P204 Tuning Scale File" ;
	rdfs:range lv2atom:Path .

drumkv1_lv2:P205_TUNING_KEYMAP_FILE
	a lv2:Parameter ;
	rdfs:label "P205 Tuning Key Map File" ;
	rdfs:range lv2atom:Path .


drumkv1_lv2:G101_GEN1
	a lv2pg:InputGroup;
	lv2:name "Drum Kit - GEN1" ;
	lv2:symbol "GEN1" .

drumkv1_lv2:G102_DEF1
	a lv2pg:InputGroup;
	lv2:name "Drum Kit - DEF1" ;
	lv2:symbol "DEF1" .

drumkv1_lv2:G201_CHO1
	a lv2pg:InputGroup;
	lv2:name "Effects - Chorus" ;
	lv2:symbol "CHO1" .
	
drumkv1_lv2:G202_FLA1
	a lv2pg:InputGroup;
	lv2:name "Effects - Flanger" ;
	lv2:symbol "FLA1" .

drumkv1_lv2:G203_PHA1
	a lv2pg:InputGroup;
	lv2:name "Effects - Phaser" ;
	lv2:symbol "PHA1" .

drumkv1_lv2:G204_DEL1
	a lv2pg:InputGroup;
	lv2:name "Effects - Delay" ;
	lv2:symbol "DEL1" .

drumkv1_lv2:G205_REV1
	a lv2pg:InputGroup;
	lv2:name "Effects - Reverb" ;
	lv2:symbol "REV1" .

drumkv1_lv2:G206_DYN1
	a lv2pg:InputGroup;
	lv2:name "Effects - Dynamic" ;
	lv2:symbol "DYN1" .

drumkv1_lv2:G301_TUN1
	a lv2pg:InputGroup;
	lv2:name "Config - Tuning" ;
	lv2:symbol "TUN1" .
