@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix ingen: <http://drobilla.net/ns/ingen#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix midi: <http://lv2plug.in/ns/ext/midi#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@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#> .

<>
	ingen:arc [
		ingen:head <notify> ;
		ingen:tail <control>
	] , [
		ingen:head <Note/input> ;
		ingen:tail <control>
	] ;
	ingen:block <Note> ;
	ingen:polyphony 1 ;
	<http://lv2plug.in/ns/extensions/ui#ui> ingen:GraphUIGtk2 ;
	lv2:extensionData <http://lv2plug.in/ns/ext/state#interface> ;
	lv2:port <audio_out> ,
		<control> ,
		<notify> ;
	doap:name "Ingen Mono Instrument Template" ;
	a ingen:Graph ,
		lv2:InstrumentPlugin ,
		lv2:Plugin .

<Note>
	ingen:canvasX 206.5 ;
	ingen:canvasY 8.0 ;
	ingen:polyphonic true ;
	lv2:port <Note/bend> ,
		<Note/frequency> ,
		<Note/gate> ,
		<Note/input> ,
		<Note/number> ,
		<Note/pressure> ,
		<Note/trigger> ,
		<Note/velocity> ;
	lv2:prototype <http://drobilla.net/ns/ingen-internals#Note> ;
	a ingen:Block .

<Note/bend>
	atom:bufferType atom:Sequence ;
	atom:supports atom:Float ;
	lv2:default 0.0 ;
	lv2:maximum 1.0 ;
	lv2:minimum -1.0 ;
	lv2:name "Bender" ;
	a atom:AtomPort ,
		lv2:OutputPort .

<Note/frequency>
	atom:bufferType atom:Sequence ;
	atom:supports atom:Float ;
	lv2:maximum 25088.0 ;
	lv2:minimum 16.0 ;
	lv2:name "Frequency" ;
	a atom:AtomPort ,
		lv2:OutputPort .

<Note/gate>
	atom:bufferType atom:Sequence ;
	atom:supports atom:Float ;
	lv2:name "Gate" ;
	lv2:portProperty lv2:toggled ;
	a atom:AtomPort ,
		lv2:OutputPort .

<Note/input>
	atom:bufferType atom:Sequence ;
	atom:supports midi:MidiEvent ;
	lv2:name "Input" ;
	a atom:AtomPort ,
		lv2:InputPort .

<Note/number>
	atom:bufferType atom:Sequence ;
	atom:supports atom:Float ;
	lv2:maximum 127.0 ;
	lv2:minimum 0.0 ;
	lv2:name "Number" ;
	lv2:portProperty lv2:integer ;
	a atom:AtomPort ,
		lv2:OutputPort .

<Note/pressure>
	atom:bufferType atom:Sequence ;
	atom:supports atom:Float ;
	lv2:default 0.0 ;
	lv2:maximum 1.0 ;
	lv2:minimum 0.0 ;
	lv2:name "Pressure" ;
	a atom:AtomPort ,
		lv2:OutputPort .

<Note/trigger>
	atom:bufferType atom:Sequence ;
	atom:supports atom:Float ;
	lv2:name "Trigger" ;
	lv2:portProperty lv2:toggled ;
	a atom:AtomPort ,
		lv2:OutputPort .

<Note/velocity>
	atom:bufferType atom:Sequence ;
	atom:supports atom:Float ;
	lv2:maximum 1.0 ;
	lv2:minimum 0.0 ;
	lv2:name "Velocity" ;
	a atom:AtomPort ,
		lv2:OutputPort .

<audio_out>
	ingen:canvasX 506.0 ;
	ingen:canvasY 118.5 ;
	lv2:designation <http://lv2plug.in/ns/ext/port-groups#center> ;
	lv2:index 2 ;
	lv2:name "Audio Out" ;
	lv2:symbol "audio_out" ;
	a lv2:AudioPort ,
		lv2:OutputPort .

<control>
	ingen:canvasX 14.5 ;
	ingen:canvasY 136.5 ;
	ingen:polyphonic false ;
	atom:bufferType atom:Sequence ;
	atom:supports midi:MidiEvent ;
	<http://lv2plug.in/ns/ext/resize-port#minimumSize> 4096 ;
	lv2:index 0 ;
	lv2:name "Control" ;
	lv2:portProperty lv2:connectionOptional ;
	lv2:symbol "control" ;
	a atom:AtomPort ,
		lv2:InputPort .

<notify>
	ingen:canvasX 214.5 ;
	ingen:canvasY 260.5 ;
	ingen:polyphonic false ;
	atom:bufferType atom:Sequence ;
	atom:supports midi:MidiEvent ;
	<http://lv2plug.in/ns/ext/resize-port#minimumSize> 4096 ;
	lv2:index 1 ;
	lv2:name "Control" ;
	lv2:symbol "notify" ;
	a atom:AtomPort ,
		lv2:OutputPort .