@prefix doap:  <http://usefulinc.com/ns/doap#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pprops: <http://lv2plug.in/ns/ext/port-props#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .

@prefix lv2:   <http://lv2plug.in/ns/lv2core#> .
@prefix mod: <http://moddevices.com/ns/mod#>.
@prefix modgui: <http://moddevices.com/ns/modgui#>.

<http://ssj71.github.io/infamousPlugins/plugs.html#ewham>
        a lv2:Plugin, lv2:PitchPlugin ;
        doap:name "the infamous ewham" ;
        doap:license <http://opensource.org/licenses/GPL-2.0> ;
        doap:description "a low-latency monophonic pitch shifter";
        doap:maintainer [
                foaf:name "Spencer Jackson" ;
                foaf:homepage <http://ssj71.github.io/infamousPlugins> ;
                foaf:mbox <mailto:ssjackson71@gmail.com> ;
        ] ;
        mod:brand "infamous";        
        mod:label "ewham"; 
        modgui:gui [
            modgui:resourcesDirectory <modgui> ;
            modgui:iconTemplate <modgui/icon-the-infamous-ewham.html> ;
            modgui:stylesheet <modgui/stylesheet-the-infamous-ewham.css> ;
            modgui:screenshot <modgui/screenshot-the-infamous-ewham.png> ;
            modgui:thumbnail <modgui/thumbnail-the-infamous-ewham.png> ;
            modgui:brand "infamous" ;
            modgui:label "ewham" ;
            modgui:model "boxy" ;
            modgui:panel "1-select-2-knobs" ;
            modgui:color "dots" ;
            modgui:knob "steel" ;
            modgui:port [
                lv2:index 0 ;
                lv2:symbol "MODE" ;
                lv2:name "Mode" ;
            ] , [
                lv2:index 1 ;
                lv2:symbol "START" ;
                lv2:name "Start" ;
            ] , [
                lv2:index 2 ;
                lv2:symbol "FINISH" ;
                lv2:name "Finish" ;
            ] ;
        ] ;
        lv2:minorVersion 0 ;
        lv2:microVersion 1 ;
        rdfs:comment "This shifter works well for monophonic sounds, allowing an easy control to change the shifting interval. Any interval between 2 octaves down and 3 octaves up is available. It also has controls that will slide to the nearest semitone after being adjusted, or to jump directly from semitone to semitone. It also provides a dry mix for chorus effects." ;
        lv2:optionalFeature lv2:hardRTCapable ;


        lv2:port [
                a lv2:InputPort, lv2:AudioPort ;
                lv2:index 0 ;
                lv2:symbol "INPUT" ;
                lv2:name "Audio In" ;
        ] ;
        lv2:port [
                a lv2:OutputPort, lv2:AudioPort ;
                lv2:index 1 ;
                lv2:symbol "OUTPUT" ;
                lv2:name "Audio Out" ;
        ] ;
        lv2:port [
                a lv2:InputPort, lv2:CVPort ;
                lv2:index 2 ;
                lv2:symbol "EXPRESSION" ;
                lv2:name "Expression" ;
                lv2:default 0.0 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
        ], [
                a lv2:InputPort, lv2:CVPort ;
                lv2:index 3 ;
                lv2:symbol "START" ;
                lv2:name "Start" ;
                lv2:default 0 ;
                lv2:minimum -36 ;
                lv2:maximum 24 ;
                lv2:portProperty lv2:integer ;
                lv2:scalePoint [ rdfs:label "-3 Oct"; rdf:value -36 ] ;
                lv2:scalePoint [ rdfs:label "-2 Oct"; rdf:value -24 ] ;
                lv2:scalePoint [ rdfs:label "-1 Oct"; rdf:value -12 ] ;
                lv2:scalePoint [ rdfs:label "-5th"; rdf:value -7 ] ;
                lv2:scalePoint [ rdfs:label "No Shift"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "+5th"; rdf:value 7 ] ;
                lv2:scalePoint [ rdfs:label "+1 Oct"; rdf:value 12 ] ;
                lv2:scalePoint [ rdfs:label "+2 Oct"; rdf:value 24 ] ;
                units:unit units:semitone12TET;
        ], [
                a lv2:InputPort, lv2:CVPort ;
                lv2:index 4 ;
                lv2:symbol "FINISH" ;
                lv2:name "Finish" ;
                lv2:default 12 ;
                lv2:minimum -36 ;
                lv2:maximum 24 ; 
                lv2:portProperty lv2:integer ;
                lv2:scalePoint [ rdfs:label "-3 Oct"; rdf:value -36 ] ;
                lv2:scalePoint [ rdfs:label "-2 Oct"; rdf:value -24 ] ;
                lv2:scalePoint [ rdfs:label "-1 Oct"; rdf:value -12 ] ;
                lv2:scalePoint [ rdfs:label "-5th"; rdf:value -7 ] ;
                lv2:scalePoint [ rdfs:label "No Shift"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "+5th"; rdf:value 7 ] ;
                lv2:scalePoint [ rdfs:label "+1 Oct"; rdf:value 12 ] ;
                lv2:scalePoint [ rdfs:label "+2 Oct"; rdf:value 24 ] ;
                units:unit units:semitone12TET;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 5 ;
                lv2:symbol "MODE" ;
                lv2:name "Mode" ;
                lv2:default 0 ;
                lv2:minimum 0 ;
                lv2:maximum 2 ; 
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:enumeration ;
                lv2:scalePoint [ rdfs:label "Classic Shift"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "Harmonizer"; rdf:value 1 ] ;
                lv2:scalePoint [ rdfs:label "Chorus"; rdf:value 2 ] ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 6 ;
                lv2:symbol "LOCK" ;
                lv2:name "Lock Mode" ;
                lv2:default 1 ;
                lv2:minimum 0 ;
                lv2:maximum 2 ; 
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:enumeration ;
                lv2:scalePoint [ rdfs:label "None"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "Land on Semitone"; rdf:value 1 ] ;
                lv2:scalePoint [ rdfs:label "Lock to Semitone"; rdf:value 2 ] ;
        ] ;
        lv2:port [
                a lv2:OutputPort, lv2:ControlPort ;
                lv2:index 7 ;
                lv2:symbol "LATENCY" ;
                lv2:name "Latency" ;
                lv2:minimum 0 ;
                lv2:maximum 2048 ; 
                lv2:portProperty lv2:reportsLatency, lv2:integer, pprops:notOnGUI;
        ] .
