@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 units: <http://lv2plug.in/ns/extensions/units#> .
@prefix lv2atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix lv2time: <http://lv2plug.in/ns/ext/time#> .
@prefix pprops: <http://lv2plug.in/ns/ext/port-props#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .

@prefix lv2:   <http://lv2plug.in/ns/lv2core#> .
@prefix ui:   <http://lv2plug.in/ns/extensions/ui#> .

<http://ssj71.github.io/infamousPlugins/plugs.html#octolo>
        a lv2:Plugin, lv2:ModulatorPlugin ;
        doap:name "the infamous octolo" ;
        doap:license <http://opensource.org/licenses/GPL-2.0> ;
        doap:description "an octaved tremolo";
        doap:maintainer [
                a foaf:Person ;
                foaf:name "Spencer Jackson" ;
                foaf:homepage <http://ssj71.github.io/infamousPlugins> ;
                foaf:mbox <mailto:ssjackson71@gmail.com> ;
        ] ;
        lv2:minorVersion 0 ;
        lv2:microVersion 1 ;
        rdfs:comment "a combination octaver and tremolo with mix, phase control, and sequencing";
        lv2:optionalFeature lv2:hardRTCapable ;

        lv2:port [
                a lv2:InputPort, lv2atom:AtomPort ;
                lv2atom:bufferType lv2atom:Sequence ;
                lv2atom:supports lv2time:Position ;
                lv2:index 0 ;
                lv2:symbol "ATOM_IN";
                lv2:name "Atom In";
        ] ;
        lv2:port [
                a lv2:InputPort, lv2:AudioPort ;
                lv2:index 1 ;
                lv2:symbol "INPUT" ;
                lv2:name "Audio In" ;
        ] ;
        lv2:port [
                a lv2:OutputPort, lv2:AudioPort ;
                lv2:index 2 ;
                lv2:symbol "OUTPUT" ;
                lv2:name "Audio Out" ;
        ] ;
        lv2:port [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 3 ;
                lv2:symbol "ENABLE" ;
                lv2:name "Enable" ;
                lv2:default 1 ;
                lv2:minimum 0 ;
                lv2:maximum 1 ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:toggled ;
                lv2:designation lv2:enabled ;
        ] ;
        lv2:port [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 4 ;
                lv2:symbol "LENGTH" ;
                lv2:name "Length" ;
                lv2:default 1.0 ;
                lv2:minimum 0.01 ;
                lv2:maximum 8.0 ;
                units:unit units:beat ;
                #lv2:portProperty pprops:logarithmic ;
                rdfs:comment "number of beats for each tremolo fade in/out" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 5 ;
                lv2:symbol "DRY" ;
                lv2:name "Dry" ;
                lv2:default 0.5 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                rdfs:comment "gain of dry signal (no tremolo effect)" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 6 ;
                lv2:symbol "WET" ;
                lv2:name "Wet" ;
                lv2:default 0.5 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                rdfs:comment "gain of unshifted voice (only tremolo)" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 7 ;
                lv2:symbol "OCTDOWN" ;
                lv2:name "Octave Down" ;
                lv2:default 0.5 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                rdfs:comment "gain of octave down voice" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 8 ;
                lv2:symbol "OCTUP" ;
                lv2:name "Octave Up" ;
                lv2:default 0.5 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                rdfs:comment "gain of octave up voice" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 9 ;
                lv2:symbol "SLOPE" ;
                lv2:name "Slope" ;
                lv2:default 0.8 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                rdfs:comment "speed of the voice fade in/out, low values are smooth, high values a square wave" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 10 ;
                lv2:symbol "SEQUENCE" ;
                lv2:name "Sequence" ;
                lv2:default 0 ;
                lv2:minimum 0 ;
                lv2:maximum 5 ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:enumeration ;
                lv2:scalePoint [ rdfs:label "Syncronous"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "Alternate 1 Oct"; rdf:value 1 ] ;
                lv2:scalePoint [ rdfs:label "Alternate 2 Oct"; rdf:value 2 ] ;
                lv2:scalePoint [ rdfs:label "Step"; rdf:value 3 ] ;
                lv2:scalePoint [ rdfs:label "Cycle Up"; rdf:value 4 ] ;
                lv2:scalePoint [ rdfs:label "Cycle Down"; rdf:value 5 ] ;
                rdfs:comment "alternate playing voices in a pattern, if voice gain is 0 there will be silence at that point in the sequence" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 11 ;
                lv2:symbol "OVERLAP" ;
                lv2:name "Overlap" ;
                lv2:default 0.0 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:toggled ;
                rdfs:comment "fade in next voice in sequence before the current has finished fading out" ;
        ] .

<http://ssj71.github.io/infamousPlugins/plugs.html#stereoctolo>
        a lv2:Plugin, lv2:ModulatorPlugin ;
        doap:name "the infamous stereoctolo" ;
        doap:license <http://opensource.org/licenses/GPL-2.0> ;
        doap:description "an octaved tremolo";
        doap:maintainer [
                foaf:name "Spencer Jackson" ;
                foaf:homepage <http://ssj71.github.io/infamousPlugins> ;
                foaf:mbox <mailto:ssjackson71@gmail.com> ;
        ] ;
        lv2:minorVersion 0 ;
        lv2:microVersion 1 ;
        rdfs:comment "a combination stereo octaver and tremolo with width, mix, phase control, and sequencing";
        lv2:optionalFeature lv2:hardRTCapable ;

        lv2:port [
                a lv2:InputPort, lv2atom:AtomPort ;
                lv2atom:bufferType lv2atom:Sequence ;
                lv2atom:supports lv2time:Position ;
                lv2:index 0 ;
                lv2:symbol "ATOM_IN";
                lv2:name "Atom In";
        ] ;
        lv2:port [
                a lv2:InputPort, lv2:AudioPort ;
                lv2:index 1 ;
                lv2:symbol "INPUT" ;
                lv2:name "Audio In" ;
        ] ;
        lv2:port [
                a lv2:OutputPort, lv2:AudioPort ;
                lv2:index 2 ;
                lv2:symbol "OUTPUTL" ;
                lv2:name "Audio L Out" ;
        ] ;
        lv2:port [
                a lv2:OutputPort, lv2:AudioPort ;
                lv2:index 3 ;
                lv2:symbol "OUTPUTR" ;
                lv2:name "Audio R Out" ;
        ] ;
        lv2:port [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 4 ;
                lv2:symbol "ENABLE" ;
                lv2:name "Enable" ;
                lv2:default 1 ;
                lv2:minimum 0 ;
                lv2:maximum 1 ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:toggled ;
                lv2:designation lv2:enabled ;
        ] ;
        lv2:port [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 5 ;
                lv2:symbol "LENGTH" ;
                lv2:name "Length" ;
                lv2:default 1.0 ;
                lv2:minimum 0.01 ;
                lv2:maximum 8.0 ;
                units:unit units:beat ;
                #lv2:portProperty pprops:logarithmic ;
                rdfs:comment "number of beats for each tremolo fade in/out" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 6 ;
                lv2:symbol "DRY" ;
                lv2:name "Dry" ;
                lv2:default 0.5 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                rdfs:comment "gain of dry signal (no tremolo effect)" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 7 ;
                lv2:symbol "WET" ;
                lv2:name "Wet" ;
                lv2:default 0.5 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                rdfs:comment "gain of unshifted voice (only tremolo)" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 8 ;
                lv2:symbol "OCTDOWN" ;
                lv2:name "Octave Down" ;
                lv2:default 0.5 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                rdfs:comment "gain of octave down voice" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 9 ;
                lv2:symbol "OCTUP" ;
                lv2:name "Octave Up" ;
                lv2:default 0.5 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                rdfs:comment "gain of octave up voice" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 10 ;
                lv2:symbol "SLOPE" ;
                lv2:name "Slope" ;
                lv2:default 1.0 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                rdfs:comment "speed of the voice fade in/out, low values are smooth, high values a square wave" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 11 ;
                lv2:symbol "SEQUENCE" ;
                lv2:name "Voice Sequence" ;
                lv2:default 0 ;
                lv2:minimum 0 ;
                lv2:maximum 5 ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:enumeration ;
                lv2:scalePoint [ rdfs:label "Syncronous"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "Alternate 1 Oct"; rdf:value 1 ] ;
                lv2:scalePoint [ rdfs:label "Alternate 2 Oct"; rdf:value 2 ] ;
                lv2:scalePoint [ rdfs:label "Step"; rdf:value 3 ] ;
                lv2:scalePoint [ rdfs:label "Cycle Up"; rdf:value 4 ] ;
                lv2:scalePoint [ rdfs:label "Cycle Down"; rdf:value 5 ] ;
                rdfs:comment "alternate playing voices in a pattern, if voice gain is 0 there will be silence at that point in the sequence" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 12 ;
                lv2:symbol "OVERLAP" ;
                lv2:name "Overlap" ;
                lv2:default 0.0 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:toggled ;
                rdfs:comment "fade in next voice in sequence before the current has finished fading out" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 13 ;
                lv2:symbol "PSEQUENCE" ;
                lv2:name "Pan Sequence" ;
                lv2:default 0 ;
                lv2:minimum 0 ;
                lv2:maximum 5 ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:enumeration ;
                lv2:scalePoint [ rdfs:label "Center"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "Alternate"; rdf:value 1 ] ;
                lv2:scalePoint [ rdfs:label "Alternate 2"; rdf:value 2 ] ;
                lv2:scalePoint [ rdfs:label "Alternate 3"; rdf:value 3 ] ;
                lv2:scalePoint [ rdfs:label "Alternate 4"; rdf:value 4 ] ;
                lv2:scalePoint [ rdfs:label "Step"; rdf:value 5 ] ;
                lv2:scalePoint [ rdfs:label "Cycle Right"; rdf:value 6 ] ;
                lv2:scalePoint [ rdfs:label "Cycle Left"; rdf:value 7 ] ;
                rdfs:comment "alternate panning in a pattern, if voice gain is 0 there will be silence at that point in the sequence" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 14 ;
                lv2:symbol "WIDTH" ;
                lv2:name "Pan Width" ;
                lv2:default 0.7 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                rdfs:comment "width of panning, 0 is all centered, 1 is hard panned" ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 15 ;
                lv2:symbol "POFFS" ;
                lv2:name "Pan Seq. Offset" ;
                lv2:default 0 ;
                lv2:minimum 0 ;
                lv2:maximum 3 ;
                lv2:portProperty lv2:integer ;
                rdfs:comment "offset of pan sequence to change which voices are panned where" ;
        ] .

<http://ssj71.github.io/infamousPlugins/plugs.html#octolo:preset:00straighttrem>
    a pset:Preset ;
	rdfs:label "00 Straight Trem" ;
    lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#octolo> ;
    rdfs:seeAlso <octolo_presets.ttl> .
<http://ssj71.github.io/infamousPlugins/plugs.html#octolo:preset:01chopperdown>
    a pset:Preset ;
	rdfs:label "01 Chopper Down" ;
    lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#octolo> ;
    rdfs:seeAlso <octolo_presets.ttl> .
<http://ssj71.github.io/infamousPlugins/plugs.html#octolo:preset:02arp>
    a pset:Preset ;
	rdfs:label "02 Arp" ;
    lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#octolo> ;
    rdfs:seeAlso <octolo_presets.ttl> .
<http://ssj71.github.io/infamousPlugins/plugs.html#octolo:preset:03rumbley>
    a pset:Preset ;
	rdfs:label "03 Rumbley" ;
    lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#octolo> ;
    rdfs:seeAlso <octolo_presets.ttl> .
<http://ssj71.github.io/infamousPlugins/plugs.html#octolo:preset:04beater>
    a pset:Preset ;
	rdfs:label "04 Beater" ;
    lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#octolo> ;
    rdfs:seeAlso <octolo_presets.ttl> .
