@prefix atom:  <http://lv2plug.in/ns/ext/atom#> .
@prefix doap:  <http://usefulinc.com/ns/doap#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix lv2:   <http://lv2plug.in/ns/lv2core#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ui:    <http://lv2plug.in/ns/extensions/ui#> .
@prefix urid:  <http://lv2plug.in/ns/ext/urid#> .
@prefix pg:    <http://lv2plug.in/ns/ext/port-groups#> .
@prefix pprops:<http://lv2plug.in/ns/ext/port-props#> .
@prefix ost:   <http://gareus.org/oss/lv2/onsettrigger#> .

<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/ost>
	a doap:Project;
	doap:maintainer <http://gareus.org/rgareus#me> ;
	doap:name "Onset Trigger" .


ost:bassdrum_mono
	a lv2:Plugin, doap:Project, lv2:ConverterPlugin ;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	doap:maintainer <http://gareus.org/rgareus#me> ;
	doap:name "Onset Trigger - Bassdrum Detection Mono";
	lv2:microVersion 0 ;lv2:minorVersion 1028 ;
	lv2:requiredFeature urid:map ;
	lv2:optionalFeature lv2:hardRTCapable ;
	lv2:port
	[
		a atom:AtomPort ,
			lv2:OutputPort ;
		atom:bufferType atom:Sequence ;
		atom:supports <http://lv2plug.in/ns/ext/midi#MidiEvent> ;
		lv2:index 0 ;
		lv2:symbol "MidiOut" ;
		lv2:name "MIDI Output" ;
	],
	[
		a lv2:ControlPort ,
			lv2:OutputPort ;
		lv2:index 1 ;
		lv2:symbol "latency" ;
		lv2:name "latency (samples)" ;
		lv2:minimum 0;
		lv2:maximum 192000;
		lv2:portProperty lv2:reportsLatency, lv2:integer, pprops:notOnGUI;
		rdfs:comment "Detecting the volume of the kick takes a bit of time, so the generated midi-signal is always late compared to the audio. This latency is reported to the plugin-host which can re-align the signal."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 2 ;
		lv2:symbol "threshold" ;
		lv2:name "Signal Level Theshold [dBFS, RMS]" ;
		lv2:minimum -80.0;
		lv2:maximum 0.0;
		lv2:default -40.0;
		units:unit units:db;
		rdfs:comment "The minium required signal level (RMS) to trigger a midi-event. Note: the signal is first band-pass filtered (30-170Hz), so this does not directly correspond to the input signal's level."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 3 ;
		lv2:symbol "midinote" ;
		lv2:name "Midi Note" ;
		lv2:minimum 0 ;
		lv2:maximum 127 ;
		lv2:default 24;
		lv2:portProperty lv2:integer;
		units:unit units:midiNote;
		rdfs:comment "The MIDI-note which is triggered once a signal is detected."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 4 ;
		lv2:symbol "mididuration" ;
		lv2:name "Note Duration [ms]" ;
		lv2:minimum 1.0 ;
		lv2:maximum 1000.0 ;
		lv2:default 80.0;
		units:unit units:ms;
		rdfs:comment "The Duration of the triggered midi note and minimal distance between two triggers."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 5 ;
		lv2:symbol "velocity_min" ;
		lv2:name "Midi Velocity Minimum" ;
		lv2:minimum 1 ;
		lv2:maximum 127 ;
		lv2:default 16 ;
		lv2:portProperty lv2:integer;
		rdfs:comment "Minium midi-velocity of a trigger"
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 6 ;
		lv2:symbol "velocity_scale" ;
		lv2:name "Midi Velocity Scale Factor" ;
		lv2:minimum 0.0 ;
		lv2:maximum 4.0 ;
		lv2:default 1.0;
		rdfs:comment "Velocity Range over minimum."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 7 ;
		lv2:symbol "velocity_exponent" ;
		lv2:name "Midi Velocity Exponent" ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2:default 0.6;
		rdfs:comment "RMS to Velocity Curve (0: const max velocity)."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 8 ;
		lv2:symbol "filter_freq" ;
		lv2:name "Filter Frequency (advanced)" ;
		lv2:minimum 10.0 ;
		lv2:maximum 300.0 ;
		lv2:default 60.0;
		units:unit units:hz;
		lv2:portProperty pprops:expensive;
		rdfs:comment "Signal Pre-filter Frequency"
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 9 ;
		lv2:symbol "filter_bandwidth" ;
		lv2:name "Filter Bandwidth (advanced)" ;
		lv2:minimum 10.0 ;
		lv2:maximum 120.0 ;
		lv2:default 40.0;
		units:unit units:hz;
		lv2:portProperty pprops:expensive;
		rdfs:comment "Signal Pre-filter Bandwidth"
	],
	[
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 10 ;
		lv2:symbol "in" ;
		lv2:name "Audio Input" ;
	];
	rdfs:comment "Audio to Midi Onset Trigger, intended to trigger Bass/Kick-drums"
	.

ost:bassdrum_stereo
	a lv2:Plugin, doap:Project, lv2:ConverterPlugin;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	doap:maintainer <http://gareus.org/rgareus#me> ;
	doap:name "Onset Trigger - Bassdrum Detection Stereo";
	lv2:microVersion 0 ;lv2:minorVersion 1028 ;
	lv2:requiredFeature urid:map ;
	lv2:optionalFeature lv2:hardRTCapable ;
	lv2:port
	[
		a atom:AtomPort ,
			lv2:OutputPort ;
		atom:bufferType atom:Sequence ;
		atom:supports <http://lv2plug.in/ns/ext/midi#MidiEvent> ;
		lv2:index 0 ;
		lv2:symbol "MidiOut" ;
		lv2:name "MIDI Output" ;
	],
	[
		a lv2:ControlPort ,
			lv2:OutputPort ;
		lv2:index 1 ;
		lv2:symbol "latency" ;
		lv2:name "latency (samples)" ;
		lv2:minimum 0;
		lv2:maximum 192000;
		units:unit units:frame;
		lv2:portProperty lv2:reportsLatency, lv2:integer, pprops:notOnGUI;
		rdfs:comment "Detecting the volume of the kick takes a bit of time, so the generated midi-signal is always late compared to the audio. This latency is reported to the plugin-host which can re-align the signal."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 2 ;
		lv2:symbol "threshold" ;
		lv2:name "Signal Level Theshold [dBFS, RMS]" ;
		lv2:minimum -80.0;
		lv2:maximum 0.0;
		lv2:default -40.0;
		units:unit units:db;
		rdfs:comment "The minium required signal level (RMS) to trigger a midi-event. Note: the signal is first band-pass filtered (30-170Hz), so this does not directly correspond to the input signal's level."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 3 ;
		lv2:symbol "midinote" ;
		lv2:name "Midi Note" ;
		lv2:minimum 0 ;
		lv2:maximum 127 ;
		lv2:default 24 ;
		lv2:portProperty lv2:integer;
		units:unit units:midiNote;
		rdfs:comment "The MIDI-note which is triggered once a signal is detected."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 4 ;
		lv2:symbol "mididuration" ;
		lv2:name "Note Duration [ms]" ;
		lv2:minimum 1.0 ;
		lv2:maximum 1000.0 ;
		lv2:default 80.0;
		units:unit units:ms;
		rdfs:comment "The Duration of the triggered midi note and minimal distance between two triggers."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 5 ;
		lv2:symbol "velocity_min" ;
		lv2:name "Midi Velocity Minimum" ;
		lv2:minimum 1 ;
		lv2:maximum 127 ;
		lv2:default 16 ;
		lv2:portProperty lv2:integer;
		rdfs:comment "Minium midi-velocity of a trigger."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 6 ;
		lv2:symbol "velocity_scale" ;
		lv2:name "Midi Velocity Scale Factor" ;
		lv2:minimum 0.0 ;
		lv2:maximum 4.0 ;
		lv2:default 1.0;
		rdfs:comment "Velocity Range over minimum."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 7 ;
		lv2:symbol "velocity_exponent" ;
		lv2:name "Midi Velocity Exponent" ;
		lv2:minimum 0.0 ;
		lv2:maximum 1.0 ;
		lv2:default 0.6;
		rdfs:comment "RMS to Velocity Curve (0: const max velocity)."
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 8 ;
		lv2:symbol "filter_freq" ;
		lv2:name "Filter Frequency (advanced)" ;
		lv2:minimum 10.0 ;
		lv2:maximum 300.0 ;
		lv2:default 60.0;
		units:unit units:hz;
		lv2:portProperty pprops:expensive;
		rdfs:comment "Signal Pre-filter Frequency"
	],
	[
		a lv2:ControlPort ,
			lv2:InputPort ;
		lv2:index 9 ;
		lv2:symbol "filter_bandwidth" ;
		lv2:name "Filter Bandwidth (advanced)" ;
		lv2:minimum 10.0 ;
		lv2:maximum 120.0 ;
		lv2:default 40.0;
		units:unit units:hz;
		lv2:portProperty pprops:expensive;
		rdfs:comment "Signal Pre-filter Bandwidth"
	],
	[
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 10 ;
		lv2:symbol "in1" ;
		lv2:name "Audio Input (left)" ;
	],
	[
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 11 ;
		lv2:symbol "in2" ;
		lv2:name "Audio Input (Right)" ;
	];
	rdfs:comment "Audio to Midi Onset Trigger, intended to trigger Bass/Kick-drums (summed dtereo input)"
	.
