@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 lv2:     <http://lv2plug.in/ns/lv2core#> .
@prefix lv2ui:   <http://lv2plug.in/ns/extensions/ui#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix lv2atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix lv2midi: <http://lv2plug.in/ns/ext/midi#> .
@prefix lv2time: <http://lv2plug.in/ns/ext/time#> .
@prefix pg: <http://lv2plug.in/ns/ext/port-groups#> .
@prefix param: <http://lv2plug.in/ns/ext/parameters#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix pprops: <http://lv2plug.in/ns/ext/port-props#> .

<http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:auto>
a param:ControlGroup ;
lv2:name "Cell Automaton" ;
lv2:symbol "Cell_Automaton" .

<http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:env>
a param:ControlGroup ;
lv2:name "Envelope" ;
lv2:symbol "Envelope" .

<http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:mod>
a param:ControlGroup ;
lv2:name "Modulation" ;
lv2:symbol "Modulation" .

<http://ssj71.github.io/infamousPlugins/plugs.html#casynth>
        a lv2:Plugin, lv2:InstrumentPlugin ;
        doap:name "the infamous cellular automaton synth" ;
        doap:license <http://opensource.org/licenses/GPL-2.0> ;
        doap:description "Additive synth controlled by an automaton";
        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 "This additive synth is controlled by an elementary cellular automaton which determines which partials sound and which are silent. It is tempo sync'd and is excellent for pulsating sounds." ;
        lv2:requiredFeature <http://lv2plug.in/ns/ext/urid#map> ;
        lv2:optionalFeature lv2:hardRTCapable ;
        lv2ui:ui <http://ssj71.github.io/infamousPlugins/plugs.html#casynth_ui> ;

        lv2:port [
                a lv2:InputPort, lv2atom:AtomPort ;
                lv2atom:bufferType lv2atom:Sequence ;
                lv2atom:supports lv2midi:MidiEvent ;
                lv2atom:supports lv2time:Position ;
                lv2:index 0 ;
                lv2:symbol "MIDI_IN";
                lv2:name "MIDI In";
        ] ;
        lv2:port [
                a lv2:OutputPort, lv2:AudioPort ;
                lv2:index 1 ;
                lv2:symbol "OUTPUT" ;
                lv2:name "Audio Out" ;
        ] ;
        lv2:port [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index  2 ;
                lv2:symbol "CHANNEL" ;
                lv2:name "MIDI Channel" ;
                lv2:portProperty lv2:integer ;
                lv2:default 0 ;
                lv2:minimum 0 ;
                lv2:maximum 16 ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 3 ;
                lv2:symbol "MASTER_GAIN" ;
                lv2:name "Master Gain" ;
                lv2:default 1.0 ;
                lv2:minimum 0.001 ;
                lv2:maximum 2.0 ;
                units:unit units:coef ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 4 ;
                lv2:symbol "RULE" ;
                lv2:name "Cell Automaton Rule" ;
                lv2:portProperty lv2:integer ;
                lv2:default 30 ;
                lv2:minimum 0 ;
                lv2:maximum 255 ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:auto> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 5 ;
                lv2:symbol "CELL_LIFE" ;
                lv2:name "Cell Lifetime" ;
                lv2:portProperty pprops:logarithmic ;
                lv2:designation lv2time:beat;
                lv2:default 0.25 ;
                lv2:minimum 0.001 ;
                lv2:maximum 10.0 ;
                units:unit units:s ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:auto> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 6 ;
                lv2:symbol "INIT_CELLS" ;
                lv2:name "Initial Condition" ;
                lv2:portProperty lv2:integer ;
                lv2:default 1 ;
                lv2:minimum 0 ;
                lv2:maximum 65535 ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:auto> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 7 ;
                lv2:symbol "NHARMONICS" ;
                lv2:name "Harmonics" ;
                lv2:portProperty lv2:integer ;
                lv2:default 12 ;
                lv2:minimum 0 ;
                lv2:maximum 16 ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:auto> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 8 ;
                lv2:symbol "HARM_MODE" ;
                lv2:name "Harmonic Gain Mode" ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:enumeration ;
                lv2:scalePoint [ rdfs:label "Sinc"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "Saw"; rdf:value 1 ] ;
                lv2:scalePoint [ rdfs:label "Square"; rdf:value 2 ] ;
                lv2:scalePoint [ rdfs:label "Triangle"; rdf:value 3 ] ;
                lv2:default 1 ;
                lv2:minimum 0 ;
                lv2:maximum 3 ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:auto> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 9 ;
                lv2:symbol "HARM_WIDTH" ;
                lv2:name "Harmonic Width" ;
                lv2:default 0.0 ;
                lv2:minimum 0.000 ;
                lv2:maximum 50.0 ;
                units:unit units:cent ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:auto> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 10 ;
                lv2:symbol "WAVE" ;
                lv2:name "Waveform" ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:enumeration ;
                lv2:scalePoint [ rdfs:label "Sine"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "Saw"; rdf:value 1 ] ;
                lv2:scalePoint [ rdfs:label "Square"; rdf:value 2 ] ;
                lv2:scalePoint [ rdfs:label "Triangle"; rdf:value 3 ] ;
                lv2:scalePoint [ rdfs:label "White Noise"; rdf:value 4 ] ;
                lv2:scalePoint [ rdfs:label "Random"; rdf:value 5 ] ;
                lv2:default 0 ;
                lv2:minimum 0 ;
                lv2:maximum 5 ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:auto> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 11 ;
                lv2:symbol "ENV_A" ;
                lv2:name "Attack" ;
                lv2:portProperty pprops:logarithmic ;
                lv2:default 0.10 ;
                lv2:minimum 0.001 ;
                lv2:maximum 15.0 ;
                units:unit units:s ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:env> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 12 ;
                lv2:symbol "ENV_D" ;
                lv2:name "Decay" ;
                lv2:portProperty pprops:logarithmic ;
                lv2:default 0.10 ;
                lv2:minimum 0.001 ;
                lv2:maximum 15.0 ;
                units:unit units:s ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:env> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 13 ;
                lv2:symbol "ENV_B" ;
                lv2:name "Break Point" ;
                lv2:default 0.5 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:env> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 14 ;
                lv2:symbol "ENV_SWL" ;
                lv2:name "Swell" ;
                lv2:portProperty pprops:logarithmic ;
                lv2:default 3.0 ;
                lv2:minimum 0.001 ;
                lv2:maximum 15.0 ;
                units:unit units:s ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:env> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 15 ;
                lv2:symbol "ENV_SUS" ;
                lv2:name "Sustain" ;
                lv2:default 0.75 ;
                lv2:minimum 0.0 ;
                lv2:maximum 1.0 ;
                units:unit units:coef ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:env> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 16 ;
                lv2:symbol "ENV_R" ;
                lv2:name "Release" ;
                lv2:portProperty pprops:logarithmic ;
                lv2:default 0.1 ;
                lv2:minimum 0.001 ;
                lv2:maximum 15.0 ;
                units:unit units:s ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:env> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 17 ;
                lv2:symbol "AMOD_WAV" ;
                lv2:name "AM Waveform" ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:enumeration ;
                lv2:scalePoint [ rdfs:label "Sine"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "Saw"; rdf:value 1 ] ;
                lv2:scalePoint [ rdfs:label "Square"; rdf:value 2 ] ;
                lv2:scalePoint [ rdfs:label "Triangle"; rdf:value 3 ] ;
                lv2:scalePoint [ rdfs:label "White Noise"; rdf:value 4 ] ;
                lv2:scalePoint [ rdfs:label "Random"; rdf:value 5 ] ;
                lv2:default 0 ;
                lv2:minimum 0 ;
                lv2:maximum 5 ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:mod> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 18 ;
                lv2:symbol "AMOD_FREQ" ;
                lv2:name "AM Frequency" ;
                #lv2:portProperty pprops:logarithmic ;
                lv2:default 0.0 ;
                lv2:minimum 0.0 ;
                lv2:maximum 110.0 ;
                units:unit units:hz ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:mod> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 19 ;
                lv2:symbol "AMOD_GAIN" ;
                lv2:name "AM Gain" ;
                lv2:default 0.10 ;
                lv2:minimum -1.00 ;
                lv2:maximum 1.00 ;
                units:unit units:coef ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:mod> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 20 ;
                lv2:symbol "FMOD_WAV" ;
                lv2:name "FM Waveform" ;
                lv2:portProperty lv2:integer ;
                lv2:portProperty lv2:enumeration ;
                lv2:scalePoint [ rdfs:label "Sine"; rdf:value 0 ] ;
                lv2:scalePoint [ rdfs:label "Saw"; rdf:value 1 ] ;
                lv2:scalePoint [ rdfs:label "Square"; rdf:value 2 ] ;
                lv2:scalePoint [ rdfs:label "Triangle"; rdf:value 3 ] ;
                lv2:scalePoint [ rdfs:label "White Noise"; rdf:value 4 ] ;
                lv2:scalePoint [ rdfs:label "Random"; rdf:value 5 ] ;
                lv2:default 0 ;
                lv2:minimum 0 ;
                lv2:maximum 5 ;
                pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:mod> ;
        ], [
                a lv2:InputPort, lv2:ControlPort ;
                lv2:index 21 ;
                lv2:symbol "FMOD_FREQ" ;
                lv2:name "FM Frequency" ;
                    #lv2:portProperty pprops:logarithmic ;
                    lv2:default 0.0 ;
                    lv2:minimum 0.0 ;
                    lv2:maximum 110.0 ;
                    units:unit units:hz ;
                    pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:mod> ;
            ], [
                    a lv2:InputPort, lv2:ControlPort ;
                    lv2:index 22 ;
                    lv2:symbol "FMOD_GAIN" ;
                    lv2:name "FM Gain" ;
                    lv2:default 0.10 ;
                    lv2:minimum -4.00 ;
                    lv2:maximum 4.00 ;
                    units:unit units:semitone12TET ;
                    pg:group <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:group:mod> ;
            ].

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:00Dfault>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "00 Dfault" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:01RawSaw>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "01 RawSaw" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:02RawSqr>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "02 RawSqr" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:03Rule30>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "03 Rule30" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:04Rule110>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "04 Rule110" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:05Chimin>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "05 Chimin" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:06Downer>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "06 Downer" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:07Growe>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "07 Growe" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:08HapE>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "08 HapE" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:09Jangley>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "09 Jangley" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:10Phazour>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "10 Phazour" ;
            rdfs:seeAlso <casynth_presets.ttl> .

    <http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:11Phoney>
            a pset:Preset ;
            lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
            rdfs:label "11 Phoney" ;
            rdfs:seeAlso <casynth_presets.ttl> .

<http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:12Roar>
        a pset:Preset ;
        lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
        rdfs:label "12 Roar" ;
        rdfs:seeAlso <casynth_presets.ttl> .

<http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:13Shiny>
        a pset:Preset ;
        lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
        rdfs:label "13 Shiny" ;
        rdfs:seeAlso <casynth_presets.ttl> .

<http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:14Soothe>
        a pset:Preset ;
        lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
        rdfs:label "14 Soothe" ;
        rdfs:seeAlso <casynth_presets.ttl> .
	
<http://ssj71.github.io/infamousPlugins/plugs.html#casynth:preset:15ClarkKentSaw>
        a pset:Preset ;
        lv2:appliesTo <http://ssj71.github.io/infamousPlugins/plugs.html#casynth> ;
        rdfs:label "15 ClarkKentSaw" ;
        rdfs:seeAlso <casynth_presets.ttl> .
