@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2:  <http://lv2plug.in/ns/lv2core#> .
@prefix mod:  <http://moddevices.com/ns/mod#> .
@prefix opts: <http://lv2plug.in/ns/ext/options#> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix unit: <http://lv2plug.in/ns/extensions/units#> .

<urn:zamaudio:ZamGrains>
    a lv2:DelayPlugin, lv2:Plugin ;

    lv2:extensionData opts:interface ,
                      <http://kxstudio.sf.net/ns/lv2ext/programs#Interface> ;

    lv2:optionalFeature <http://lv2plug.in/ns/lv2core#hardRTCapable> ,
                        <http://lv2plug.in/ns/ext/buf-size#boundedBlockLength> ;

    lv2:requiredFeature opts:options ,
                        <http://lv2plug.in/ns/ext/urid#map> ;

    opts:supportedOption <http://lv2plug.in/ns/ext/buf-size#nominalBlockLength> ,
                         <http://lv2plug.in/ns/ext/buf-size#maxBlockLength> ,
                         <http://lv2plug.in/ns/ext/parameters#sampleRate> ;

    lv2:port [
        a lv2:InputPort, lv2:AudioPort ;
        lv2:index 0 ;
        lv2:symbol "lv2_audio_in_1" ;
        lv2:name "Audio Input 1" ;
    ] ;

    lv2:port [
        a lv2:OutputPort, lv2:AudioPort ;
        lv2:index 1 ;
        lv2:symbol "lv2_audio_out_1" ;
        lv2:name "Audio Output 1" ;
    ] ;

    lv2:port [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 2 ;
        lv2:name """Output Gain""" ;
        lv2:symbol "gain" ;
        lv2:default 0.000000 ;
        lv2:minimum -60.000000 ;
        lv2:maximum 0.000000 ;
        unit:unit unit:db ;
    ] ,
    [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 3 ;
        lv2:name """Grains""" ;
        lv2:symbol "grains" ;
        lv2:default 1 ;
        lv2:minimum 1 ;
        lv2:maximum 100 ;
        unit:unit [
            a unit:Unit ;
            rdfs:label  " " ;
            unit:symbol " " ;
            unit:render "%f  " ;
        ] ;
        lv2:portProperty lv2:integer ;
    ] ,
    [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 4 ;
        lv2:name """Grain Speed""" ;
        lv2:symbol "gs" ;
        lv2:default 1.000000 ;
        lv2:minimum 0.100000 ;
        lv2:maximum 20.000000 ;
        unit:unit [
            a unit:Unit ;
            rdfs:label  " " ;
            unit:symbol " " ;
            unit:render "%f  " ;
        ] ;
        lv2:portProperty <http://lv2plug.in/ns/ext/port-props#logarithmic> ;
    ] ,
    [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 5 ;
        lv2:name """Play Speed""" ;
        lv2:symbol "ps" ;
        lv2:default 1.000000 ;
        lv2:minimum 0.100000 ;
        lv2:maximum 20.000000 ;
        unit:unit [
            a unit:Unit ;
            rdfs:label  " " ;
            unit:symbol " " ;
            unit:render "%f  " ;
        ] ;
        lv2:portProperty <http://lv2plug.in/ns/ext/port-props#logarithmic> ;
    ] ,
    [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 6 ;
        lv2:name """Loop time""" ;
        lv2:symbol "time" ;
        lv2:default 1000.000000 ;
        lv2:minimum 5.000000 ;
        lv2:maximum 1000.000000 ;
        unit:unit unit:ms ;
    ] ,
    [
        a lv2:InputPort, lv2:ControlPort ;
        lv2:index 7 ;
        lv2:name """Freeze""" ;
        lv2:symbol "freeze" ;
        lv2:default 0.000000 ;
        lv2:minimum 0.000000 ;
        lv2:maximum 1.000000 ;
        unit:unit [
            a unit:Unit ;
            rdfs:label  " " ;
            unit:symbol " " ;
            unit:render "%f  " ;
        ] ;
        lv2:portProperty lv2:toggled ;
    ] ,
    [
        a lv2:OutputPort, lv2:ControlPort ;
        lv2:index 8 ;
        lv2:name """Grain Position""" ;
        lv2:symbol "grpos" ;
        lv2:minimum 0.000000 ;
        lv2:maximum 1.000000 ;
        unit:unit [
            a unit:Unit ;
            rdfs:label  " " ;
            unit:symbol " " ;
            unit:render "%f  " ;
        ] ;
    ] ,
    [
        a lv2:OutputPort, lv2:ControlPort ;
        lv2:index 9 ;
        lv2:name """Playback Position""" ;
        lv2:symbol "playpos" ;
        lv2:minimum 0.000000 ;
        lv2:maximum 1.000000 ;
        unit:unit [
            a unit:Unit ;
            rdfs:label  " " ;
            unit:symbol " " ;
            unit:render "%f  " ;
        ] ;
    ] ,
    [
        a lv2:OutputPort, lv2:ControlPort ;
        lv2:index 10 ;
        lv2:name """Final Position""" ;
        lv2:symbol "finalpos" ;
        lv2:minimum 0.000000 ;
        lv2:maximum 1.000000 ;
        unit:unit [
            a unit:Unit ;
            rdfs:label  " " ;
            unit:symbol " " ;
            unit:render "%f  " ;
        ] ;
    ] ;

    rdfs:comment """A granular delay plugin""" ;

    mod:brand "ZamAudio" ;
    mod:label "ZamGrains" ;

    doap:name """ZamGrains""" ;
    doap:license """GPL v2+""" ;

    doap:maintainer [
        foaf:name """Damien Zammit""" ;
        foaf:homepage <http://www.zamaudio.com> ;
    ] ;

    lv2:microVersion 14 ;
    lv2:minorVersion 2 .

