@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 units: <http://lv2plug.in/ns/extensions/units#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ui:    <http://lv2plug.in/ns/extensions/ui#> .
@prefix urid:  <http://lv2plug.in/ns/ext/urid#> .
@prefix pprop: <http://lv2plug.in/ns/ext/port-props#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rsz:   <http://lv2plug.in/ns/ext/resize-port#> .
@prefix kx:    <http://kxstudio.sf.net/ns/lv2ext/external-ui#> .
@prefix mixtri: <http://gareus.org/oss/lv2/mixtri#> .

<http://gareus.org/rgareus#me>
	a foaf:Person ;
	foaf:name "Robin Gareus" ;
	foaf:mbox <mailto:robin@gareus.org> ;
	foaf:homepage <http://gareus.org/> .

<http://gareus.org/oss/lv2/mixtri>
	a doap:Project;
	doap:maintainer <http://gareus.org/rgareus#me> ;
	doap:name "Matrix Mixer and Trigger" .



mixtri:ui_gl
  a kx:Widget ;
  lv2:requiredFeature kx:Widget; lv2:requiredFeature ui:idleInterface; lv2:extensionData ui:idleInterface;
  .


mixtri:lv2
  a lv2:Plugin, doap:Project, lv2:UtilityPlugin;
  doap:license <http://usefulinc.com/doap/licenses/gpl> ;
  doap:maintainer <http://gareus.org/rgareus#me> ;
  doap:name "Mixer'n'Trigger";
  lv2:microVersion 0 ;lv2:minorVersion 1040 ;
  lv2:optionalFeature lv2:hardRTCapable ;
  ui:ui mixtri:ui_gl ;
  lv2:port
  [
    a lv2:AudioPort ,
      lv2:InputPort ;
    lv2:index 0 ;
    lv2:symbol "in1" ;
    lv2:name "Audio Input 1" ;
  ] , [
    a lv2:AudioPort ,
      lv2:InputPort ;
    lv2:index 1 ;
    lv2:symbol "in2" ;
    lv2:name "Audio Input 2" ;
  ] , [
    a lv2:AudioPort ,
      lv2:InputPort ;
    lv2:index 2 ;
    lv2:symbol "in3" ;
    lv2:name "Audio Input 3" ;
  ] , [
    a lv2:AudioPort ,
      lv2:InputPort ;
    lv2:index 3 ;
    lv2:symbol "in4" ;
    lv2:name "Audio Input 4" ;
  ] , [
    a lv2:AudioPort ,
      lv2:OutputPort ;
    lv2:index 4 ;
    lv2:symbol "out1" ;
    lv2:name "Audio Output 1" ;
  ] , [
    a lv2:AudioPort ,
      lv2:OutputPort ;
    lv2:index 5 ;
    lv2:symbol "out2" ;
    lv2:name "Audio Output 2" ;
  ] , [
    a lv2:AudioPort ,
      lv2:OutputPort ;
    lv2:index 6 ;
    lv2:symbol "out3" ;
    lv2:name "Audio Output 3" ;
  ] , [
    a lv2:AudioPort ,
      lv2:OutputPort ;
    lv2:index 7 ;
    lv2:symbol "trigger_out" ;
    lv2:name "Audio Output Trigger" ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 8 ;
    lv2:symbol "gain_in_0" ;
    lv2:name "Input Gain 0" ;
    lv2:minimum  -60.0;
    lv2:maximum  30.0;
    lv2:default  0.0;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 9 ;
    lv2:symbol "gain_in_1" ;
    lv2:name "Input Gain 1" ;
    lv2:minimum  -60.0;
    lv2:maximum  30.0;
    lv2:default  0.0;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 10 ;
    lv2:symbol "gain_in_2" ;
    lv2:name "Input Gain 2" ;
    lv2:minimum  -60.0;
    lv2:maximum  30.0;
    lv2:default  0.0;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 11 ;
    lv2:symbol "gain_in_3" ;
    lv2:name "Input Gain 3" ;
    lv2:minimum  -60.0;
    lv2:maximum  30.0;
    lv2:default  0.0;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 12 ;
    lv2:symbol "mix_0_0" ;
    lv2:name "Mix 0 0" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  1.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 13 ;
    lv2:symbol "mix_0_1" ;
    lv2:name "Mix 0 1" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  0.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 14 ;
    lv2:symbol "mix_0_2" ;
    lv2:name "Mix 0 2" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  0.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 15 ;
    lv2:symbol "mix_1_0" ;
    lv2:name "Mix 1 0" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  0.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 16 ;
    lv2:symbol "mix_1_1" ;
    lv2:name "Mix 1 1" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  1.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 17 ;
    lv2:symbol "mix_1_2" ;
    lv2:name "Mix 1 2" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  0.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 18 ;
    lv2:symbol "mix_2_0" ;
    lv2:name "Mix 2 0" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  0.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 19 ;
    lv2:symbol "mix_2_1" ;
    lv2:name "Mix 2 1" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  0.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 20 ;
    lv2:symbol "mix_2_2" ;
    lv2:name "Mix 2 2" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  1.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 21 ;
    lv2:symbol "mix_3_0" ;
    lv2:name "Mix 3 0" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  0.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 22 ;
    lv2:symbol "mix_3_1" ;
    lv2:name "Mix 3 1" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  0.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 23 ;
    lv2:symbol "mix_3_2" ;
    lv2:name "Mix 3 2" ;
    lv2:minimum -6.0;
    lv2:maximum  6.0;
    lv2:default  0.0;
    lv2:scalePoint [ rdfs:label "invert"; rdf:value -1.0 ; ] ;
    lv2:scalePoint [ rdfs:label "off"; rdf:value 0.0 ; ] ;
    lv2:scalePoint [ rdfs:label "on"; rdf:value 1.0 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 24 ;
    lv2:symbol "delay_in_0" ;
    lv2:name "Delay input 0" ;
    lv2:minimum  0;
    lv2:maximum  48000;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 25 ;
    lv2:symbol "delay_in_1" ;
    lv2:name "Delay input 1" ;
    lv2:minimum  0;
    lv2:maximum  48000;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 26 ;
    lv2:symbol "delay_in_2" ;
    lv2:name "Delay input 2" ;
    lv2:minimum  0;
    lv2:maximum  48000;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 27 ;
    lv2:symbol "delay_in_3" ;
    lv2:name "Delay input 3" ;
    lv2:minimum  0;
    lv2:maximum  48000;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 28 ;
    lv2:symbol "delay_out_0" ;
    lv2:name "Delay output 0" ;
    lv2:minimum  0;
    lv2:maximum  48000;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 29 ;
    lv2:symbol "delay_out_1" ;
    lv2:name "Delay output 1" ;
    lv2:minimum  0;
    lv2:maximum  48000;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 30 ;
    lv2:symbol "delay_out_2" ;
    lv2:name "Delay output 2" ;
    lv2:minimum  0;
    lv2:maximum  48000;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 31 ;
    lv2:symbol "mod_in_0" ;
    lv2:name "Input 0 Mode" ;
    lv2:minimum  0;
    lv2:maximum  3;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
    lv2:portProperty lv2:enumeration ;
    lv2:scalePoint [ rdfs:label "none"; rdf:value 0 ; ] ;
    lv2:scalePoint [ rdfs:label "mute"; rdf:value 1 ; ] ;
    lv2:scalePoint [ rdfs:label "high-pass filter"; rdf:value 2 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 32 ;
    lv2:symbol "mod_in_1" ;
    lv2:name "Input 1 Mode" ;
    lv2:minimum  0;
    lv2:maximum  3;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
    lv2:portProperty lv2:enumeration ;
    lv2:scalePoint [ rdfs:label "none"; rdf:value 0 ; ] ;
    lv2:scalePoint [ rdfs:label "mute"; rdf:value 1 ; ] ;
    lv2:scalePoint [ rdfs:label "high-pass filter"; rdf:value 2 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 33 ;
    lv2:symbol "mod_in_2" ;
    lv2:name "Input 2 Mode" ;
    lv2:minimum  0;
    lv2:maximum  3;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
    lv2:portProperty lv2:enumeration ;
    lv2:scalePoint [ rdfs:label "none"; rdf:value 0 ; ] ;
    lv2:scalePoint [ rdfs:label "mute"; rdf:value 1 ; ] ;
    lv2:scalePoint [ rdfs:label "high-pass filter"; rdf:value 2 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 34 ;
    lv2:symbol "mod_in_3" ;
    lv2:name "Input 3 Mode" ;
    lv2:minimum  0;
    lv2:maximum  3;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
    lv2:portProperty lv2:enumeration ;
    lv2:scalePoint [ rdfs:label "none"; rdf:value 0 ; ] ;
    lv2:scalePoint [ rdfs:label "mute"; rdf:value 1 ; ] ;
    lv2:scalePoint [ rdfs:label "high-pass filter"; rdf:value 2 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 35 ;
    lv2:symbol "trigger_channel" ;
    lv2:name "Trigger Channel" ;
    lv2:minimum  0;
    lv2:maximum  3;
    lv2:default  3;
    lv2:portProperty lv2:integer ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 36;
    lv2:symbol "trigger_mode" ;
    lv2:name "Trigger Mode" ;
    lv2:minimum  0;
    lv2:maximum  12;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
    lv2:portProperty lv2:enumeration ;
    lv2:scalePoint [ rdfs:label "passtru"; rdf:value 0 ; ] ;
    lv2:scalePoint [ rdfs:label "LTC"; rdf:value 1 ; ] ;
    lv2:scalePoint [ rdfs:label "Edge"; rdf:value 2 ; ] ;
    lv2:scalePoint [ rdfs:label "Pulsewidth"; rdf:value 3 ; ] ;
    lv2:scalePoint [ rdfs:label "Pulsetrain"; rdf:value 4 ; ] ;
    lv2:scalePoint [ rdfs:label "Window enter"; rdf:value 5 ; ] ;
    lv2:scalePoint [ rdfs:label "Window leave"; rdf:value 6 ; ] ;
    lv2:scalePoint [ rdfs:label "Hysteresis"; rdf:value 7 ; ] ;
    lv2:scalePoint [ rdfs:label "Runt"; rdf:value 8 ; ] ;
    lv2:scalePoint [ rdfs:label "Dropout"; rdf:value 9 ; ] ;
    lv2:scalePoint [ rdfs:label "Drop-in"; rdf:value 10 ; ] ;
    lv2:scalePoint [ rdfs:label "RMS"; rdf:value 11 ; ] ;
    lv2:scalePoint [ rdfs:label "LPF"; rdf:value 12 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 37;
    lv2:symbol "trigger_edge" ;
    lv2:name "Trigger Edge Mode" ;
    lv2:minimum  1;
    lv2:maximum  3;
    lv2:default  1;
    lv2:portProperty lv2:integer ;
    lv2:portProperty lv2:enumeration ;
    lv2:scalePoint [ rdfs:label "rising-edge"; rdf:value 1 ; ] ;
    lv2:scalePoint [ rdfs:label "falling-edge"; rdf:value 2 ; ] ;
    lv2:scalePoint [ rdfs:label "any-edge"; rdf:value 3 ; ] ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 38;
    lv2:symbol "trigger_level1" ;
    lv2:name "Trigger Level1" ;
    lv2:minimum  -1.0;
    lv2:maximum  1.0;
    lv2:default  0.0;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 39;
    lv2:symbol "trigger_level2" ;
    lv2:name "Trigger Level2" ;
    lv2:minimum  -1.0;
    lv2:maximum  1.0;
    lv2:default  0.0;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 40;
    lv2:symbol "trigger_time1" ;
    lv2:name "Trigger time1" ;
    lv2:minimum  0;
    lv2:maximum  192000;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
  ] , [
    a lv2:ControlPort ,
      lv2:InputPort ;
    lv2:index 41;
    lv2:symbol "trigger_time2" ;
    lv2:name "Trigger time2" ;
    lv2:minimum  0;
    lv2:maximum  192000;
    lv2:default  0;
    lv2:portProperty lv2:integer ;
  ] ;
  rdfs:comment "Matrix mixer with trigger intended for sisco.lv2." ;
  .
