@prefix atom:  <http://lv2plug.in/ns/ext/atom#> .
@prefix bufsz: <http://lv2plug.in/ns/ext/buf-size#> .
@prefix doap:  <http://usefulinc.com/ns/doap#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix lv2:   <http://lv2plug.in/ns/lv2core#> .
@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 rsz:   <http://lv2plug.in/ns/ext/resize-port#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix kx:    <http://kxstudio.sf.net/ns/lv2ext/external-ui#> .
@prefix spectra: <http://gareus.org/oss/lv2/spectra#> .

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

spectra:Mono
	a lv2:Plugin, lv2:AnalyserPlugin ;
	doap:name "Spectr" ;
	lv2:project <http://gareus.org/oss/lv2/spectra> ;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	lv2:microVersion 0 ;lv2:minorVersion 1542 ;
	lv2:requiredFeature urid:map ;
	lv2:optionalFeature lv2:hardRTCapable ;
	
	ui:ui spectra:ui_gl ;
	lv2:port [
		a atom:AtomPort ,
			lv2:InputPort ;
		atom:bufferType atom:Sequence ;
		lv2:designation lv2:control ;
		lv2:index 0 ;
		lv2:symbol "control" ;
		lv2:name "Control" ;
	  rdfs:comment "GUI to plugin communication"
	] , [
		a atom:AtomPort ,
			lv2:OutputPort ;
		atom:bufferType atom:Sequence ;
		lv2:designation lv2:control ;
		lv2:index 1 ;
		lv2:symbol "notify" ;
		lv2:name "Notify" ;
		# 8192 * sizeof(float) + LV2-Atoms
		rsz:minimumSize 33024;
	  rdfs:comment "Plugin to GUI communication"
	] , [
		a lv2:ControlPort, lv2:InputPort ;
		lv2:index 2 ;
		lv2:portProperty lv2:integer;
		lv2:portProperty lv2:enumeration;
		lv2:symbol "fftsize" ;
		lv2:name "FFT Size" ;
		lv2:default 4096 ;
		lv2:minimum 1024 ;
		lv2:maximum 16384 ;
		lv2:scalePoint [ rdfs:label "1024";  rdf:value  1024 ; ] ;
		lv2:scalePoint [ rdfs:label "2048";  rdf:value  2048 ; ] ;
		lv2:scalePoint [ rdfs:label "4096";  rdf:value  4096 ; ] ;
		lv2:scalePoint [ rdfs:label "8192";  rdf:value  8192 ; ] ;
		lv2:scalePoint [ rdfs:label "16384"; rdf:value 16384 ; ] ;
	] , [
		a lv2:ControlPort, lv2:InputPort ;
		lv2:portProperty lv2:toggled;
		lv2:portProperty lv2:integer;
		lv2:index 3 ;
		lv2:symbol "color" ;
		lv2:name "1/f scale" ;
		lv2:default 0 ;
		lv2:minimum 0 ;
		lv2:maximum 1 ;
		lv2:scalePoint [ rdfs:label  "Off (White)"; rdf:value 0; ] ;
		lv2:scalePoint [ rdfs:label  "On (Pink)";  rdf:value 1; ] ;
	] , [
		a lv2:ControlPort, lv2:InputPort ;
		lv2:portProperty lv2:integer;
		lv2:portProperty lv2:enumeration;
		lv2:index 4 ;
		lv2:symbol "window" ;
		lv2:name "Window Function" ;
		lv2:default 0 ;
		lv2:minimum 0 ;
		lv2:maximum 5 ;
		lv2:scalePoint [ rdfs:label "Hann"; rdf:value 0; ] ;
		lv2:scalePoint [ rdfs:label "Hamming"; rdf:value 1; ] ;
		lv2:scalePoint [ rdfs:label "Nuttall"; rdf:value 2; ] ;
		lv2:scalePoint [ rdfs:label "Blackman–Nuttall"; rdf:value 3; ] ;
		lv2:scalePoint [ rdfs:label "Blackman–Harris"; rdf:value 4; ] ;
		lv2:scalePoint [ rdfs:label "Flat top"; rdf:value 5; ] ;
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 5 ;
		lv2:symbol "in" ;
		lv2:name "In" ;
	  rdfs:comment "Audio Input"
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 6 ;
		lv2:symbol "out" ;
		lv2:name "Out" ;
	  rdfs:comment "Audio Signal pass-thru"
	] ;
	rdfs:comment "Audio Apectrum Analyzer"
	.

spectra:ui_gl
	a ui:X11UI ;
	lv2:requiredFeature urid:map ; lv2:requiredFeature ui:idleInterface; lv2:extensionData ui:idleInterface;
	.
