@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 midi:  <http://lv2plug.in/ns/ext/midi#> .
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
@prefix pprop: <http://lv2plug.in/ns/ext/port-props#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix urid:  <http://lv2plug.in/ns/ext/urid#> .
@prefix work:  <http://lv2plug.in/ns/ext/worker#> .

<http://ardour.org/credits.html>
  a foaf:Person ;
  foaf:name "Ardour Community" ;
  foaf:homepage <http://ardour.org/> .

<urn:ardour:a-fluidsynth:sf2file>
  a lv2:Parameter ;
  rdfs:label "SF2 File" ;
  rdfs:range atom:Path .

<urn:ardour:a-fluidsynth>
  a doap:Project, lv2:InstrumentPlugin, lv2:Plugin ;

  doap:name "ACE Fluid Synth" ;
  rdfs:comment "SF2 Synthesizer using Fluidsynth" ;

  doap:maintainer <http://ardour.org/credits.html> ;
  doap:license <http://usefulinc.com/doap/licenses/gpl> ;

  lv2:microVersion 2 ;
  lv2:minorVersion 2 ;

  lv2:requiredFeature urid:map, work:schedule ;
  lv2:extensionData work:interface, state:interface ;
  lv2:optionalFeature lv2:hardRTCapable;

  patch:writable <urn:ardour:a-fluidsynth:sf2file> ;

    lv2:port [
        a lv2:InputPort, atom:AtomPort ;
        atom:bufferType atom:Sequence ;
        atom:supports patch:Message, midi:MidiEvent;
        lv2:designation lv2:control ;
        lv2:index 0 ;
        lv2:symbol "control" ;
        lv2:name "Midi In" ;
    ] , [
        a lv2:OutputPort, atom:AtomPort ;
        atom:bufferType atom:Sequence ;
        atom:supports patch:Message;
        lv2:designation lv2:control ;
        lv2:index 1 ;
        lv2:symbol "notify" ;
        lv2:name "UI Notifications" ;
    ] , [
        a lv2:OutputPort, lv2:AudioPort ;
        lv2:index 2 ;
        lv2:symbol "outL" ;
        lv2:name "Left Output" ;
    ] , [
        a lv2:OutputPort, lv2:AudioPort ;
        lv2:index 3 ;
        lv2:symbol "outR" ;
        lv2:name "Right Output" ;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 4 ;
        lv2:symbol "level" ;
        lv2:name "Output Level" ;
        lv2:default 0.0 ;
        lv2:minimum -80.0 ;
        lv2:maximum 20.0;
        units:unit units:db ;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 5 ;
        lv2:symbol "rev_enable" ;
        lv2:name "Reverb Enable" ;
        lv2:default 1 ;
        lv2:minimum 0 ;
        lv2:maximum 1 ;
        lv2:portProperty lv2:integer, lv2:toggled;
      ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 6 ;
        lv2:symbol "rev_roomsize" ;
        lv2:name "Reverb Roomsize" ;
        lv2:default 0.5 ;
        lv2:minimum 0.0 ;
        lv2:maximum 1.2;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 7 ;
        lv2:symbol "rev_damp" ;
        lv2:name "Reverb Damping" ;
        lv2:default 0.5 ;
        lv2:minimum 0.0 ;
        lv2:maximum 1.0;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 8 ;
        lv2:symbol "rev_width" ;
        lv2:name "Reverb Width" ;
        lv2:default 10.0 ;
        lv2:minimum 0.0 ;
        lv2:maximum 100.0;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 9 ;
        lv2:symbol "rev_level" ;
        lv2:name "Reverb Dry/Wet" ;
        lv2:default 0.1 ;
        lv2:minimum 0.0 ;
        lv2:maximum 1.0;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 10 ;
        lv2:symbol "chorus_enable" ;
        lv2:name "Chorus Enable" ;
        lv2:default 1 ;
        lv2:minimum 0 ;
        lv2:maximum 1 ;
        lv2:portProperty lv2:integer, lv2:toggled;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 11 ;
        lv2:symbol "chorus_nr" ;
        lv2:name "Chorus Voice Count" ;
        lv2:default 1 ;
        lv2:minimum 0 ;
        lv2:maximum 99;
        lv2:portProperty lv2:integer;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 12 ;
        lv2:symbol "chorus_speed" ;
        lv2:name "Chorus Speed" ;
        lv2:default 1.0 ;
        lv2:minimum 0.29 ;
        lv2:maximum 5.0;
        units:unit units:hz ;
        lv2:portProperty pprop:logarithmic;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 13 ;
        lv2:symbol "chorus_depth" ;
        lv2:name "Chorus Depth" ;
        lv2:default 0.0 ;
        lv2:minimum 0.0 ;
        lv2:maximum 21.0;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 14 ;
        lv2:symbol "chorus_level" ;
        lv2:name "Chorus Level" ;
        lv2:default 0.0 ;
        lv2:minimum -80.0 ;
        lv2:maximum 20.0;
        units:unit units:db ;
    ] , [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 15 ;
        lv2:symbol "chorus_type" ;
        lv2:name "Chorus Type" ;
        lv2:default 0.0 ;
        lv2:minimum 0.0 ;
        lv2:maximum 1.0;
        lv2:portProperty lv2:integer, lv2:enumeration;
        lv2:scalePoint [ rdfs:label  "Sine";  rdf:value 0.0 ; ] ;
        lv2:scalePoint [ rdfs:label  "Triangle";  rdf:value 1.0 ; ] ;
    ] ,
    [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 16 ;
        lv2:name "Enable" ;
        lv2:symbol "enable" ;
        lv2:default 1 ;
        lv2:minimum 0 ;
        lv2:maximum 1 ;
        lv2:portProperty lv2:integer, lv2:toggled ;
        lv2:designation lv2:enabled;
    ] .
