Browse Source

add module bsp.Legato

pull/1639/head
bsp2 6 years ago
parent
commit
d9251c2944
8 changed files with 1472 additions and 0 deletions
  1. +15
    -0
      plugins/community/repos/bsp/README.md
  2. +1
    -0
      plugins/community/repos/bsp/make.objects
  3. +555
    -0
      plugins/community/repos/bsp/res/Legato.svg
  4. +197
    -0
      plugins/community/repos/bsp/src/Legato.cpp
  5. +2
    -0
      plugins/community/repos/bsp/src/bsp.cpp
  6. +132
    -0
      plugins/community/repos/bsp/src/curve_test.tks
  7. +15
    -0
      vst2_bin/plugins/bsp/README.md
  8. +555
    -0
      vst2_bin/plugins/bsp/res/Legato.svg

+ 15
- 0
plugins/community/repos/bsp/README.md View File

@@ -32,6 +32,21 @@ NOTE: here's an example video: https://vimeo.com/288968750



# Legato

Meant for legato-slides, this module applies a slew filter to the incoming (V/oct) signal.

Two parameter sets are used to configure the slide speed
1) when a new note is triggered ("min")
2) when the next note is played while the previous note key is still held down (i.e. no new trigger) ("max")

- Connect the original V/oct signal to the "I" input
- Connect the trigger (gate) to the "T" input.
- The "R" knob (rate) determines the interpolation speed between the min/max parameter sets. The speed can be modulated via the "M" input. Whe a new note is triggered, the interpolation is reset to 0.
- The "min" and "max" knobs are used to adjust the rise and fall rates



# Obxd_VCF

An adaption of Filatov Vadim's excellent Ob-Xd filter. Distributed under terms of the GNU General Public License V3.


+ 1
- 0
plugins/community/repos/bsp/make.objects View File

@@ -2,6 +2,7 @@ ALL_OBJ= \
src/AttenuMixer.o \
src/DownSampler.o \
src/bsp.o \
src/Legato.o \
src/Obxd_VCF.o \
src/RMS.o \
src/Scanner.o \


+ 555
- 0
plugins/community/repos/bsp/res/Legato.svg View File

@@ -0,0 +1,555 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="15.239717mm"
height="128.4993mm"
viewBox="0 0 15.239717 128.4993"
version="1.1"
id="svg261903"
sodipodi:docname="Legato.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<defs
id="defs261897">
<linearGradient
id="linear20"
gradientUnits="userSpaceOnUse"
x1="-0.095554203"
y1="0"
x2="1.32507"
y2="0"
gradientTransform="matrix(0,6.4087959,-6.4087959,0,64.256445,118.95198)">
<stop
offset="0"
style="stop-color:rgb(25.489807%,25.097656%,25.881958%);stop-opacity:1;"
id="stop217759" />
<stop
offset="0.0625"
style="stop-color:rgb(25.489807%,25.097656%,25.881958%);stop-opacity:1;"
id="stop217761" />
<stop
offset="0.078125"
style="stop-color:rgb(25.398254%,24.996948%,25.778198%);stop-opacity:1;"
id="stop217763" />
<stop
offset="0.09375"
style="stop-color:rgb(25.177002%,24.754333%,25.527954%);stop-opacity:1;"
id="stop217765" />
<stop
offset="0.109375"
style="stop-color:rgb(24.916077%,24.465942%,25.231934%);stop-opacity:1;"
id="stop217767" />
<stop
offset="0.125"
style="stop-color:rgb(24.653625%,24.179077%,24.935913%);stop-opacity:1;"
id="stop217769" />
<stop
offset="0.140625"
style="stop-color:rgb(24.3927%,23.892212%,24.639893%);stop-opacity:1;"
id="stop217771" />
<stop
offset="0.15625"
style="stop-color:rgb(24.131775%,23.605347%,24.343872%);stop-opacity:1;"
id="stop217773" />
<stop
offset="0.171875"
style="stop-color:rgb(23.87085%,23.316956%,24.047852%);stop-opacity:1;"
id="stop217775" />
<stop
offset="0.1875"
style="stop-color:rgb(23.609924%,23.03009%,23.751831%);stop-opacity:1;"
id="stop217777" />
<stop
offset="0.203125"
style="stop-color:rgb(23.348999%,22.743225%,23.455811%);stop-opacity:1;"
id="stop217779" />
<stop
offset="0.21875"
style="stop-color:rgb(23.088074%,22.45636%,23.15979%);stop-opacity:1;"
id="stop217781" />
<stop
offset="0.234375"
style="stop-color:rgb(22.825623%,22.167969%,22.86377%);stop-opacity:1;"
id="stop217783" />
<stop
offset="0.25"
style="stop-color:rgb(22.564697%,21.881104%,22.567749%);stop-opacity:1;"
id="stop217785" />
<stop
offset="0.265625"
style="stop-color:rgb(22.303772%,21.594238%,22.271729%);stop-opacity:1;"
id="stop217787" />
<stop
offset="0.28125"
style="stop-color:rgb(22.042847%,21.307373%,21.975708%);stop-opacity:1;"
id="stop217789" />
<stop
offset="0.296875"
style="stop-color:rgb(21.781921%,21.018982%,21.679688%);stop-opacity:1;"
id="stop217791" />
<stop
offset="0.3125"
style="stop-color:rgb(21.520996%,20.732117%,21.383667%);stop-opacity:1;"
id="stop217793" />
<stop
offset="0.328125"
style="stop-color:rgb(21.260071%,20.445251%,21.087646%);stop-opacity:1;"
id="stop217795" />
<stop
offset="0.34375"
style="stop-color:rgb(20.99762%,20.15686%,20.793152%);stop-opacity:1;"
id="stop217797" />
<stop
offset="0.359375"
style="stop-color:rgb(20.736694%,19.869995%,20.497131%);stop-opacity:1;"
id="stop217799" />
<stop
offset="0.375"
style="stop-color:rgb(20.475769%,19.58313%,20.201111%);stop-opacity:1;"
id="stop217801" />
<stop
offset="0.390625"
style="stop-color:rgb(20.214844%,19.296265%,19.90509%);stop-opacity:1;"
id="stop217803" />
<stop
offset="0.40625"
style="stop-color:rgb(19.953918%,19.007874%,19.60907%);stop-opacity:1;"
id="stop217805" />
<stop
offset="0.421875"
style="stop-color:rgb(19.692993%,18.721008%,19.313049%);stop-opacity:1;"
id="stop217807" />
<stop
offset="0.4375"
style="stop-color:rgb(19.432068%,18.434143%,19.017029%);stop-opacity:1;"
id="stop217809" />
<stop
offset="0.453125"
style="stop-color:rgb(19.169617%,18.147278%,18.721008%);stop-opacity:1;"
id="stop217811" />
<stop
offset="0.46875"
style="stop-color:rgb(18.908691%,17.858887%,18.424988%);stop-opacity:1;"
id="stop217813" />
<stop
offset="0.484375"
style="stop-color:rgb(18.647766%,17.572021%,18.128967%);stop-opacity:1;"
id="stop217815" />
<stop
offset="0.5"
style="stop-color:rgb(18.386841%,17.285156%,17.832947%);stop-opacity:1;"
id="stop217817" />
<stop
offset="0.515625"
style="stop-color:rgb(18.125916%,16.998291%,17.536926%);stop-opacity:1;"
id="stop217819" />
<stop
offset="0.53125"
style="stop-color:rgb(17.86499%,16.7099%,17.240906%);stop-opacity:1;"
id="stop217821" />
<stop
offset="0.546875"
style="stop-color:rgb(17.604065%,16.423035%,16.944885%);stop-opacity:1;"
id="stop217823" />
<stop
offset="0.5625"
style="stop-color:rgb(17.341614%,16.136169%,16.648865%);stop-opacity:1;"
id="stop217825" />
<stop
offset="0.578125"
style="stop-color:rgb(17.080688%,15.849304%,16.352844%);stop-opacity:1;"
id="stop217827" />
<stop
offset="0.59375"
style="stop-color:rgb(16.819763%,15.560913%,16.056824%);stop-opacity:1;"
id="stop217829" />
<stop
offset="0.609375"
style="stop-color:rgb(16.558838%,15.274048%,15.760803%);stop-opacity:1;"
id="stop217831" />
<stop
offset="0.625"
style="stop-color:rgb(16.297913%,14.987183%,15.464783%);stop-opacity:1;"
id="stop217833" />
<stop
offset="0.640625"
style="stop-color:rgb(16.036987%,14.700317%,15.168762%);stop-opacity:1;"
id="stop217835" />
<stop
offset="0.65625"
style="stop-color:rgb(15.776062%,14.411926%,14.872742%);stop-opacity:1;"
id="stop217837" />
<stop
offset="0.671875"
style="stop-color:rgb(15.513611%,14.125061%,14.576721%);stop-opacity:1;"
id="stop217839" />
<stop
offset="0.6875"
style="stop-color:rgb(15.252686%,13.838196%,14.280701%);stop-opacity:1;"
id="stop217841" />
<stop
offset="0.703125"
style="stop-color:rgb(14.99176%,13.551331%,13.98468%);stop-opacity:1;"
id="stop217843" />
<stop
offset="0.71875"
style="stop-color:rgb(14.730835%,13.262939%,13.68866%);stop-opacity:1;"
id="stop217845" />
<stop
offset="0.734375"
style="stop-color:rgb(14.46991%,12.976074%,13.392639%);stop-opacity:1;"
id="stop217847" />
<stop
offset="0.75"
style="stop-color:rgb(14.208984%,12.689209%,13.096619%);stop-opacity:1;"
id="stop217849" />
<stop
offset="0.765625"
style="stop-color:rgb(13.948059%,12.402344%,12.802124%);stop-opacity:1;"
id="stop217851" />
<stop
offset="0.78125"
style="stop-color:rgb(13.771057%,12.207031%,12.600708%);stop-opacity:1;"
id="stop217853" />
<stop
offset="0.8125"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217855" />
<stop
offset="0.875"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217857" />
<stop
offset="1"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217859" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="84.442981"
inkscape:cy="427.99593"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-nodes="false"
inkscape:snap-others="false"
inkscape:window-width="1600"
inkscape:window-height="882"
inkscape:window-x="299"
inkscape:window-y="76"
inkscape:window-maximized="0"
inkscape:snap-global="false" />
<metadata
id="metadata261900">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-56.636094,-70.97654)">
<path
inkscape:connector-curvature="0"
id="path227414"
d="M 56.636094,70.97654 H 71.689792 V 199.2898 H 56.636094 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
<path
inkscape:connector-curvature="0"
id="path227416"
d="M 71.875811,70.97654 H 56.636094 v 128.4993 H 71.875811 Z M 71.689756,199.28981 H 56.823489 V 71.163954 h 14.866267 z m 0,0"
style="fill:#ababab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
<rect
style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.20018744;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="rect866-0-0"
width="10.705551"
height="10.537507"
x="59.100956"
y="179.87476"
ry="1.2795542" />
<g
aria-label="I"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text915"
transform="matrix(0.33151022,0,0,0.33151022,70.343906,61.159974)">
<path
d="m -1.3917749,85.387271 h 1.04386388 v 7.715291 H -1.3917749 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path937"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="T"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text919"
transform="matrix(0.33151022,0,0,0.33151022,70.4384,67.963546)">
<path
d="m -4.0650935,97.147136 h 6.5267332 v 0.878499 h -2.73885084 v 6.836795 H -1.3262427 v -6.836795 h -2.7388508 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path940"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text923"
transform="matrix(0.33151022,0,0,0.33151022,70.046656,73.784863)">
<path
d="m 1.4651083,114.07401 q 0.3358968,0.11369 0.651123,0.48576 0.3203939,0.37207 0.6407877,1.02319 l 1.0593669,2.1084 H 2.6950073 L 1.7079875,115.71215 Q 1.3255819,114.93701 0.96384688,114.68379 0.6072795,114.43058 -0.01283767,114.43058 H -1.1497191 v 3.26078 H -2.193583 v -7.71529 h 2.3564452 q 1.3229166,0 1.9740397,0.55294 0.651123,0.55293 0.651123,1.66915 0,0.72863 -0.3410645,1.20922 -0.3358968,0.4806 -0.9818521,0.66663 z m -2.6148274,-3.24011 v 2.73885 h 1.3125813 q 0.75447589,0 1.1368815,-0.34623 0.3875732,-0.3514 0.3875732,-1.02836 0,-0.67697 -0.3875732,-1.01803 -0.38240561,-0.34623 -1.1368815,-0.34623 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path943"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="M"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text927"
transform="matrix(0.33151022,0,0,0.33151022,69.846203,78.464046)">
<path
d="m -2.7281192,123.07228 h 1.5554606 l 1.96887201,5.25032 1.97920729,-5.25032 h 1.5554606 v 7.71529 H 3.3128556 v -6.77478 L 1.323313,129.30445 H 0.27428146 l -1.98954256,-5.29166 v 6.77478 h -1.0128581 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path946"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="MIN"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text931"
transform="matrix(0.28169956,0,0,0.28169956,62.81098,89.915833)">
<path
d="m -3.2626596,142.85021 h 1.5554606 l 1.968872,5.25033 1.9792073,-5.25033 h 1.5554606 v 7.7153 H 2.7783152 v -6.77478 l -1.98954261,5.29166 h -1.04903154 l -1.98954255,-5.29166 v 6.77478 h -1.0128581 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path949"
inkscape:connector-curvature="0" />
<path
d="m 5.873733,142.85021 h 1.0438639 v 7.7153 H 5.873733 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path951"
inkscape:connector-curvature="0" />
<path
d="m 8.9949889,142.85021 h 1.4055991 l 3.42098,6.45439 v -6.45439 h 1.012858 v 7.7153 h -1.405599 l -3.42098,-6.45439 v 6.45439 H 8.9949889 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path953"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="MAX"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text935"
transform="matrix(0.28169956,0,0,0.28169956,62.422471,108.66995)">
<path
d="m -2.7281192,160.75729 h 1.5554606 l 1.96887201,5.25032 1.97920729,-5.25032 h 1.5554606 v 7.71529 H 3.3128556 V 161.6978 L 1.323313,166.98947 H 0.27428146 L -1.7152611,161.6978 v 6.77478 h -1.0128581 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path956"
inkscape:connector-curvature="0" />
<path
d="m 8.9869273,161.78565 -1.4159342,3.83956 H 10.408029 Z M 8.397816,160.75729 h 1.1833903 l 2.9403887,7.71529 H 11.43639 l -0.702799,-1.97921 H 7.2557669 l -0.7027995,1.97921 H 5.4522595 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path958"
inkscape:connector-curvature="0" />
<path
d="m 13.270904,160.75729 h 1.121379 l 1.917195,2.86804 1.927531,-2.86804 h 1.121379 l -2.480469,3.7052 2.645833,4.01009 h -1.121378 l -2.17041,-3.28145 -2.185913,3.28145 h -1.126546 l 2.754353,-4.11861 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path960"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text965"
transform="matrix(0.3303036,0,0,0.3303036,41.602579,91.831285)">
<path
d="m 87.791817,136.9887 q 0.335896,0.11369 0.651123,0.48576 0.320393,0.37207 0.640787,1.02319 l 1.059367,2.1084 h -1.121378 l -0.98702,-1.97921 q -0.382406,-0.77515 -0.744141,-1.02836 -0.356567,-0.25321 -0.976684,-0.25321 h -1.136882 v 3.26078 h -1.043864 v -7.71529 h 2.356446 q 1.322916,0 1.974039,0.55294 0.651123,0.55293 0.651123,1.66914 0,0.72864 -0.341064,1.20923 -0.335897,0.48059 -0.981852,0.66663 z m -2.614828,-3.24011 v 2.73885 h 1.312582 q 0.754475,0 1.136881,-0.34624 0.387573,-0.35139 0.387573,-1.02836 0,-0.67696 -0.387573,-1.01802 -0.382406,-0.34623 -1.136881,-0.34623 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path974"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="F"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text969"
transform="matrix(0.3303036,0,0,0.3303036,41.413591,98.540362)">
<path
d="m 84.605591,141.39523 h 4.433838 v 0.8785 h -3.389974 v 2.27376 h 3.059244 v 0.8785 h -3.059244 v 3.68453 h -1.043864 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path971"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text965-9"
transform="matrix(0.33030361,0,0,0.33030361,41.572164,115.53042)">
<path
d="m 87.791817,136.9887 q 0.335896,0.11369 0.651123,0.48576 0.320393,0.37207 0.640787,1.02319 l 1.059367,2.1084 h -1.121378 l -0.98702,-1.97921 q -0.382406,-0.77515 -0.744141,-1.02836 -0.356567,-0.25321 -0.976684,-0.25321 h -1.136882 v 3.26078 h -1.043864 v -7.71529 h 2.356446 q 1.322916,0 1.974039,0.55294 0.651123,0.55293 0.651123,1.66914 0,0.72864 -0.341064,1.20923 -0.335897,0.48059 -0.981852,0.66663 z m -2.614828,-3.24011 v 2.73885 h 1.312582 q 0.754475,0 1.136881,-0.34624 0.387573,-0.35139 0.387573,-1.02836 0,-0.67696 -0.387573,-1.01802 -0.382406,-0.34623 -1.136881,-0.34623 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path974-5"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="F"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text969-2"
transform="matrix(0.33030361,0,0,0.33030361,41.383175,122.2395)">
<path
d="m 84.605591,141.39523 h 4.433838 v 0.8785 h -3.389974 v 2.27376 h 3.059244 v 0.8785 h -3.059244 v 3.68453 h -1.043864 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path971-6"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="LEG
ATO"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text1039"
transform="matrix(0.32357543,0,0,0.32357543,31.371788,59.230842)">
<path
d="m 93.015564,57.39001 h 1.043864 v 6.836792 h 3.756876 v 0.878499 h -4.80074 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1043"
inkscape:connector-curvature="0" />
<path
d="m 98.906677,57.39001 h 4.878253 v 0.878499 h -3.834389 v 2.284098 h 3.674199 v 0.8785 h -3.674199 v 2.795695 h 3.927409 v 0.878499 h -4.971273 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1045"
inkscape:connector-curvature="0" />
<path
d="m 110.8646,64.004593 v -2.072225 h -1.70532 v -0.857829 h 2.73885 v 3.31246 q -0.60461,0.428914 -1.33325,0.651123 -0.72864,0.217041 -1.55546,0.217041 -1.80868,0 -2.83187,-1.0542 -1.01802,-1.059366 -1.01802,-2.945556 0,-1.891358 1.01802,-2.945557 1.02319,-1.059367 2.83187,-1.059367 0.75448,0 1.43144,0.186036 0.68213,0.186035 1.25573,0.54777 v 1.111043 q -0.57877,-0.490926 -1.2299,-0.738973 -0.65112,-0.248047 -1.36942,-0.248047 -1.41593,0 -2.12907,0.79065 -0.70797,0.790649 -0.70797,2.356445 0,1.560628 0.70797,2.351277 0.71314,0.79065 2.12907,0.79065 0.55294,0 0.98702,-0.09302 0.43408,-0.09819 0.78031,-0.299723 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1047"
inkscape:connector-curvature="0" />
<path
d="m 95.594218,71.647537 -1.415934,3.839559 h 2.837036 z m -0.589111,-1.028361 h 1.18339 l 2.940389,7.715291 h -1.085205 l -0.7028,-1.979207 h -3.477824 l -0.702799,1.979207 H 92.05955 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1049"
inkscape:connector-curvature="0" />
<path
d="m 98.353739,70.619176 h 6.526731 v 0.878499 h -2.73885 v 6.836792 h -1.04903 v -6.836792 h -2.738851 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1051"
inkscape:connector-curvature="0" />
<path
d="m 109.02492,71.327143 q -1.13688,0 -1.80867,0.847494 -0.66663,0.847493 -0.66663,2.309936 0,1.457275 0.66663,2.304769 0.67179,0.847493 1.80867,0.847493 1.13688,0 1.79834,-0.847493 0.66663,-0.847494 0.66663,-2.304769 0,-1.462443 -0.66663,-2.309936 -0.66146,-0.847494 -1.79834,-0.847494 z m 0,-0.847493 q 1.62264,0 2.59416,1.090372 0.97152,1.085205 0.97152,2.914551 0,1.824178 -0.97152,2.914551 -0.97152,1.085205 -2.59416,1.085205 -1.62781,0 -2.60449,-1.085205 -0.97152,-1.085205 -0.97152,-2.914551 0,-1.829346 0.97152,-2.914551 0.97668,-1.090372 2.60449,-1.090372 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1053"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="widgets"
style="display:none">
<rect
style="opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.19901438;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262182"
width="4.7473311"
height="10.000421"
x="5.2461929"
y="46.91531" />
<rect
y="17.69401"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect262989"
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262991"
width="8.2117491"
height="8.2103519"
x="3.513984"
y="32.18959" />
<rect
y="62.809601"
x="3.5153599"
height="8.2103519"
width="8.2117491"
id="rect262993"
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262995"
width="8.2117491"
height="8.2103519"
x="3.5153599"
y="77.809547" />
<rect
y="87.811348"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect262997"
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262999"
width="8.2117491"
height="8.2103519"
x="3.513984"
y="97.809021" />
<rect
y="107.80944"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect263001"
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
y="77.715843"
x="10.820329"
height="0.99907935"
width="0.99910229"
id="rect263003"
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect263005"
width="0.99910229"
height="0.99907935"
x="10.820329"
y="87.716263" />
<rect
y="97.716682"
x="10.820329"
height="0.99907935"
width="0.99910229"
id="rect263007"
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect263009"
width="0.99910229"
height="0.99907935"
x="10.820329"
y="107.71573" />
</g>
</svg>

+ 197
- 0
plugins/community/repos/bsp/src/Legato.cpp View File

@@ -0,0 +1,197 @@
/*
Copyright (c) 2018 bsp

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/

#include <math.h>

#include "bsp.hpp"
#include "dsp/digital.hpp"

namespace rack_plugin_bsp {

struct Legato : Module {
enum ParamIds {
DECAY_RATE_PARAM,
SMOOTH_MIN_RISE_PARAM,
SMOOTH_MIN_FALL_PARAM,
SMOOTH_MAX_RISE_PARAM,
SMOOTH_MAX_FALL_PARAM,
NUM_PARAMS
};
enum InputIds {
CTL_INPUT,
TRIG_INPUT,
RATE_MOD_INPUT,
NUM_INPUTS
};
enum OutputIds {
CTL_OUTPUT,
NUM_OUTPUTS
};

double smoothed_sign;
double last_smoothed_val;
double smoothed_val;
double decay_t;

SchmittTrigger trigger;

double rcp_sample_rate;

Legato() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {
smoothed_sign = 0.0;
last_smoothed_val = 0.0;
smoothed_val = 0.0;
decay_t = 0.0;
handleSampleRateChanged();
}

void handleSampleRateChanged(void) {
rcp_sample_rate = 1.0 / double(engineGetSampleRate());
}

void onSampleRateChange() override {
Module::onSampleRateChange();

handleSampleRateChanged();
}

void step() override;
};


void Legato::step() {

// Read ctl input
float inVal = inputs[CTL_INPUT].value;

if(trigger.process(inputs[TRIG_INPUT].value))
{
decay_t = 0.0;
smoothed_sign = 0.0f;
}
else
{
double dcyR = params[DECAY_RATE_PARAM].value;

if(inputs[RATE_MOD_INPUT].active)
{
dcyR += inputs[RATE_MOD_INPUT].value * (1.0 / 5);
if(dcyR < 0.0)
dcyR = 0.0;
else if(dcyR > 1.0)
dcyR = 1.0;
}

dcyR *= dcyR;
dcyR *= dcyR;
dcyR *= 4000.0f;
dcyR += 1.0f;
dcyR *= rcp_sample_rate; // divide by sample rate
decay_t += dcyR;
if(decay_t >= 1.0)
decay_t = 1.0;
}

double smoothAmt;

if(smoothed_sign >= 0.0f)
{
smoothAmt = params[SMOOTH_MIN_RISE_PARAM].value + (params[SMOOTH_MAX_RISE_PARAM].value - params[SMOOTH_MIN_RISE_PARAM].value) * decay_t;
}
else
{
smoothAmt = params[SMOOTH_MIN_FALL_PARAM].value + (params[SMOOTH_MAX_FALL_PARAM].value - params[SMOOTH_MIN_FALL_PARAM].value) * decay_t;
}

smoothAmt = (1.0 - smoothAmt);
smoothAmt *= smoothAmt;
smoothAmt *= smoothAmt;
smoothAmt *= smoothAmt;

smoothed_val = smoothed_val + (inVal - smoothed_val) * smoothAmt;

smoothed_sign = (smoothed_val - last_smoothed_val);
last_smoothed_val = smoothed_val;

outputs[CTL_OUTPUT].value = float(smoothed_val);

#if 0
static int xxx = 0;
if(0 == (++xxx & 32767))
{
printf("xxx smoothAmt=%g decay_t=%g\n", smoothAmt, decay_t);
}
#endif
}


struct LegatoWidget : ModuleWidget {
LegatoWidget(Legato *module);
};

LegatoWidget::LegatoWidget(Legato *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/Legato.svg")));

addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));

float cx;
float cy;

#define STY 30.0f
cx = 12.0f;
cy = 50.0f;
addInput(Port::create<PJ301MPort>(Vec(11.0f, cy), Port::INPUT, module, Legato::CTL_INPUT));
cy += STY;
addInput(Port::create<PJ301MPort>(Vec(11.0f, cy), Port::INPUT, module, Legato::TRIG_INPUT));
cy += STY;
addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(cx, cy), module, Legato::DECAY_RATE_PARAM, 0.0f, 1.0f, 0.2f));
cy += STY;
addInput(Port::create<PJ301MPort>(Vec(11.0f, cy), Port::INPUT, module, Legato::RATE_MOD_INPUT));
#undef STY

#define STY 30.0f
cx = 12.0f;
cy = 185.0f;
addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(cx, cy), module, Legato::SMOOTH_MIN_RISE_PARAM, 0.0f, 1.0f, 0.0f));
cy += STY;
addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(cx, cy), module, Legato::SMOOTH_MIN_FALL_PARAM, 0.0f, 1.0f, 0.0f));

cy += 10.0f;
cy += STY;
addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(cx, cy), module, Legato::SMOOTH_MAX_RISE_PARAM, 0.0f, 1.0f, 0.6f));
cy += STY;
addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(cx, cy), module, Legato::SMOOTH_MAX_FALL_PARAM, 0.0f, 1.0f, 0.6f));
#undef STX
#undef STY

addOutput(Port::create<PJ301MPort>(Vec(11, 325), Port::OUTPUT, module, Legato::CTL_OUTPUT));
}

} // namespace rack_plugin_bsp

using namespace rack_plugin_bsp;

RACK_PLUGIN_MODEL_INIT(bsp, Legato) {
Model *modelLegato = Model::create<Legato, LegatoWidget>("bsp", "Legato", "Legato", SLEW_LIMITER_TAG, UTILITY_TAG);
return modelLegato;
}

+ 2
- 0
plugins/community/repos/bsp/src/bsp.cpp View File

@@ -2,6 +2,7 @@

RACK_PLUGIN_MODEL_DECLARE(bsp, AttenuMixer);
RACK_PLUGIN_MODEL_DECLARE(bsp, DownSampler);
RACK_PLUGIN_MODEL_DECLARE(bsp, Legato);
RACK_PLUGIN_MODEL_DECLARE(bsp, Obxd_VCF);
RACK_PLUGIN_MODEL_DECLARE(bsp, RMS);
RACK_PLUGIN_MODEL_DECLARE(bsp, Scanner);
@@ -15,6 +16,7 @@ RACK_PLUGIN_INIT(bsp) {

RACK_PLUGIN_MODEL_ADD(bsp, AttenuMixer);
RACK_PLUGIN_MODEL_ADD(bsp, DownSampler);
RACK_PLUGIN_MODEL_ADD(bsp, Legato);
RACK_PLUGIN_MODEL_ADD(bsp, Obxd_VCF);
RACK_PLUGIN_MODEL_ADD(bsp, RMS);
RACK_PLUGIN_MODEL_ADD(bsp, Scanner);


+ 132
- 0
plugins/community/repos/bsp/src/curve_test.tks View File

@@ -0,0 +1,132 @@

use tksdl;
use tkopengl;

int numframesrendered=0;

float shape = 0.0f;

function onDraw() {

float dt=FPS.precision;
glClearColor(0,0,0.2,1);
// glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glClear(GL_COLOR_BUFFER_BIT);
glDisable(GL_DEPTH_TEST);

if( !(++numframesrendered&127) )
trace "FPS.real="+FPS.real;

zglInitOrtho(1, 1);
glColor3f(0.9,0.9,0.9);

float cx = -1.0f;
float stepCx = (2.0f / Viewport.width);

float x = 0.0f;
float stepX = (1.0f / Viewport.width);

float lx = 0;
float ly = 0;

glBegin(GL_LINES);
loop(Viewport.width)
{
float cy = 0.0f;
float triY = x*2;
if(triY > 1.0f)
triY = (2.0f - triY);

float expY = sin(x*PI);
expY = mathPowerf(expY, mathPowerf(1.0f - shape, 9.0f)*64 + 1.0f);

float rectY = triY;
// rectY = (triY < 0.5) ? 0.0f : 1.0f;
rectY = mathPowerf(triY * 2.0f, mathPowerf((shape - 0.75f)*4, 20) * 400.0f + 1.0f);
if(rectY > 1.0f)
rectY = 1.0f;

float t;

if(shape < 0.5f)
{
cy = expY;
}
else if( (shape >= 0.5f) && (shape < 0.75f))
{
t = (shape -0.5f) * 4.0f;
cy = expY + (triY - expY) * t;
}
else if(shape >= 0.75f)
{
t = (shape - 0.75f) * 4.0f;
cy = triY + (rectY - triY) * t;
}

// cy = triY;
// cy = expY;

glVertex2f(lx, ly);
glVertex2f(cx, cy);
lx = cx;
ly = cy;
cx += stepCx;
x += stepX;
}
glVertex2f(0.0f, 0.0f);
glVertex2f(1.0f, 0.0f);

glEnd();
}

function onMouse(int _x, int _y, int _cbs, int _nbs) {
print "x="+_x+" y="+_y+" cbs="+_cbs+" nbs="+_nbs;

shape = (_y / float(Viewport.height));
}

function onKeyboard(Key _k) {
switch(_k.pressed)
{
case VKEY_ESCAPE:
SDL.exitEventLoop();
break;
}
}

int tim_count = 0;
function onTimer() {
// trace "xxx onTimer";
// if(++tim_count > 100)
// SDL.exitEventLoop();
}

function main() {
use callbacks;

FPS.tickInterval=1000.0/60;
//FPS.limit=30;
FPS.limit=60;

SDL.eventPolling = false; // tksdl default is "true" (do not block while waiting for an SDL event)
SDL.timerInterval = 20;

// SDL.dpiAwareness = true; // no OS scaling
// SDL.dpiAwareness = false; // assume 96dpi and let OS scale window to actual DPI

// SDL.touchInput = true; // enable WM_POINTER* messages

Viewport.multisampleSamples = 4;
Viewport.multisampleBuffers = 1;
// Viewport.stencilBits = 8;
Viewport.openWindow(640, 480);
//Viewport.openScreen(640, 480, 32);
//Viewport.swapInterval(1);

trace "xxx Viewport.dpi="+Viewport.dpi;
trace "xxx entering eventloop";

SDL.eventLoop();
}

+ 15
- 0
vst2_bin/plugins/bsp/README.md View File

@@ -32,6 +32,21 @@ NOTE: here's an example video: https://vimeo.com/288968750



# Legato

Meant for legato-slides, this module applies a slew filter to the incoming (V/oct) signal.

Two parameter sets are used to configure the slide speed
1) when a new note is triggered ("min")
2) when the next note is played while the previous note key is still held down (i.e. no new trigger) ("max")

- Connect the original V/oct signal to the "I" input
- Connect the trigger (gate) to the "T" input.
- The "R" knob (rate) determines the interpolation speed between the min/max parameter sets. The speed can be modulated via the "M" input. Whe a new note is triggered, the interpolation is reset to 0.
- The "min" and "max" knobs are used to adjust the rise and fall rates



# Obxd_VCF

An adaption of Filatov Vadim's excellent Ob-Xd filter. Distributed under terms of the GNU General Public License V3.


+ 555
- 0
vst2_bin/plugins/bsp/res/Legato.svg View File

@@ -0,0 +1,555 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="15.239717mm"
height="128.4993mm"
viewBox="0 0 15.239717 128.4993"
version="1.1"
id="svg261903"
sodipodi:docname="Legato.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<defs
id="defs261897">
<linearGradient
id="linear20"
gradientUnits="userSpaceOnUse"
x1="-0.095554203"
y1="0"
x2="1.32507"
y2="0"
gradientTransform="matrix(0,6.4087959,-6.4087959,0,64.256445,118.95198)">
<stop
offset="0"
style="stop-color:rgb(25.489807%,25.097656%,25.881958%);stop-opacity:1;"
id="stop217759" />
<stop
offset="0.0625"
style="stop-color:rgb(25.489807%,25.097656%,25.881958%);stop-opacity:1;"
id="stop217761" />
<stop
offset="0.078125"
style="stop-color:rgb(25.398254%,24.996948%,25.778198%);stop-opacity:1;"
id="stop217763" />
<stop
offset="0.09375"
style="stop-color:rgb(25.177002%,24.754333%,25.527954%);stop-opacity:1;"
id="stop217765" />
<stop
offset="0.109375"
style="stop-color:rgb(24.916077%,24.465942%,25.231934%);stop-opacity:1;"
id="stop217767" />
<stop
offset="0.125"
style="stop-color:rgb(24.653625%,24.179077%,24.935913%);stop-opacity:1;"
id="stop217769" />
<stop
offset="0.140625"
style="stop-color:rgb(24.3927%,23.892212%,24.639893%);stop-opacity:1;"
id="stop217771" />
<stop
offset="0.15625"
style="stop-color:rgb(24.131775%,23.605347%,24.343872%);stop-opacity:1;"
id="stop217773" />
<stop
offset="0.171875"
style="stop-color:rgb(23.87085%,23.316956%,24.047852%);stop-opacity:1;"
id="stop217775" />
<stop
offset="0.1875"
style="stop-color:rgb(23.609924%,23.03009%,23.751831%);stop-opacity:1;"
id="stop217777" />
<stop
offset="0.203125"
style="stop-color:rgb(23.348999%,22.743225%,23.455811%);stop-opacity:1;"
id="stop217779" />
<stop
offset="0.21875"
style="stop-color:rgb(23.088074%,22.45636%,23.15979%);stop-opacity:1;"
id="stop217781" />
<stop
offset="0.234375"
style="stop-color:rgb(22.825623%,22.167969%,22.86377%);stop-opacity:1;"
id="stop217783" />
<stop
offset="0.25"
style="stop-color:rgb(22.564697%,21.881104%,22.567749%);stop-opacity:1;"
id="stop217785" />
<stop
offset="0.265625"
style="stop-color:rgb(22.303772%,21.594238%,22.271729%);stop-opacity:1;"
id="stop217787" />
<stop
offset="0.28125"
style="stop-color:rgb(22.042847%,21.307373%,21.975708%);stop-opacity:1;"
id="stop217789" />
<stop
offset="0.296875"
style="stop-color:rgb(21.781921%,21.018982%,21.679688%);stop-opacity:1;"
id="stop217791" />
<stop
offset="0.3125"
style="stop-color:rgb(21.520996%,20.732117%,21.383667%);stop-opacity:1;"
id="stop217793" />
<stop
offset="0.328125"
style="stop-color:rgb(21.260071%,20.445251%,21.087646%);stop-opacity:1;"
id="stop217795" />
<stop
offset="0.34375"
style="stop-color:rgb(20.99762%,20.15686%,20.793152%);stop-opacity:1;"
id="stop217797" />
<stop
offset="0.359375"
style="stop-color:rgb(20.736694%,19.869995%,20.497131%);stop-opacity:1;"
id="stop217799" />
<stop
offset="0.375"
style="stop-color:rgb(20.475769%,19.58313%,20.201111%);stop-opacity:1;"
id="stop217801" />
<stop
offset="0.390625"
style="stop-color:rgb(20.214844%,19.296265%,19.90509%);stop-opacity:1;"
id="stop217803" />
<stop
offset="0.40625"
style="stop-color:rgb(19.953918%,19.007874%,19.60907%);stop-opacity:1;"
id="stop217805" />
<stop
offset="0.421875"
style="stop-color:rgb(19.692993%,18.721008%,19.313049%);stop-opacity:1;"
id="stop217807" />
<stop
offset="0.4375"
style="stop-color:rgb(19.432068%,18.434143%,19.017029%);stop-opacity:1;"
id="stop217809" />
<stop
offset="0.453125"
style="stop-color:rgb(19.169617%,18.147278%,18.721008%);stop-opacity:1;"
id="stop217811" />
<stop
offset="0.46875"
style="stop-color:rgb(18.908691%,17.858887%,18.424988%);stop-opacity:1;"
id="stop217813" />
<stop
offset="0.484375"
style="stop-color:rgb(18.647766%,17.572021%,18.128967%);stop-opacity:1;"
id="stop217815" />
<stop
offset="0.5"
style="stop-color:rgb(18.386841%,17.285156%,17.832947%);stop-opacity:1;"
id="stop217817" />
<stop
offset="0.515625"
style="stop-color:rgb(18.125916%,16.998291%,17.536926%);stop-opacity:1;"
id="stop217819" />
<stop
offset="0.53125"
style="stop-color:rgb(17.86499%,16.7099%,17.240906%);stop-opacity:1;"
id="stop217821" />
<stop
offset="0.546875"
style="stop-color:rgb(17.604065%,16.423035%,16.944885%);stop-opacity:1;"
id="stop217823" />
<stop
offset="0.5625"
style="stop-color:rgb(17.341614%,16.136169%,16.648865%);stop-opacity:1;"
id="stop217825" />
<stop
offset="0.578125"
style="stop-color:rgb(17.080688%,15.849304%,16.352844%);stop-opacity:1;"
id="stop217827" />
<stop
offset="0.59375"
style="stop-color:rgb(16.819763%,15.560913%,16.056824%);stop-opacity:1;"
id="stop217829" />
<stop
offset="0.609375"
style="stop-color:rgb(16.558838%,15.274048%,15.760803%);stop-opacity:1;"
id="stop217831" />
<stop
offset="0.625"
style="stop-color:rgb(16.297913%,14.987183%,15.464783%);stop-opacity:1;"
id="stop217833" />
<stop
offset="0.640625"
style="stop-color:rgb(16.036987%,14.700317%,15.168762%);stop-opacity:1;"
id="stop217835" />
<stop
offset="0.65625"
style="stop-color:rgb(15.776062%,14.411926%,14.872742%);stop-opacity:1;"
id="stop217837" />
<stop
offset="0.671875"
style="stop-color:rgb(15.513611%,14.125061%,14.576721%);stop-opacity:1;"
id="stop217839" />
<stop
offset="0.6875"
style="stop-color:rgb(15.252686%,13.838196%,14.280701%);stop-opacity:1;"
id="stop217841" />
<stop
offset="0.703125"
style="stop-color:rgb(14.99176%,13.551331%,13.98468%);stop-opacity:1;"
id="stop217843" />
<stop
offset="0.71875"
style="stop-color:rgb(14.730835%,13.262939%,13.68866%);stop-opacity:1;"
id="stop217845" />
<stop
offset="0.734375"
style="stop-color:rgb(14.46991%,12.976074%,13.392639%);stop-opacity:1;"
id="stop217847" />
<stop
offset="0.75"
style="stop-color:rgb(14.208984%,12.689209%,13.096619%);stop-opacity:1;"
id="stop217849" />
<stop
offset="0.765625"
style="stop-color:rgb(13.948059%,12.402344%,12.802124%);stop-opacity:1;"
id="stop217851" />
<stop
offset="0.78125"
style="stop-color:rgb(13.771057%,12.207031%,12.600708%);stop-opacity:1;"
id="stop217853" />
<stop
offset="0.8125"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217855" />
<stop
offset="0.875"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217857" />
<stop
offset="1"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217859" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="84.442981"
inkscape:cy="427.99593"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-nodes="false"
inkscape:snap-others="false"
inkscape:window-width="1600"
inkscape:window-height="882"
inkscape:window-x="299"
inkscape:window-y="76"
inkscape:window-maximized="0"
inkscape:snap-global="false" />
<metadata
id="metadata261900">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-56.636094,-70.97654)">
<path
inkscape:connector-curvature="0"
id="path227414"
d="M 56.636094,70.97654 H 71.689792 V 199.2898 H 56.636094 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
<path
inkscape:connector-curvature="0"
id="path227416"
d="M 71.875811,70.97654 H 56.636094 v 128.4993 H 71.875811 Z M 71.689756,199.28981 H 56.823489 V 71.163954 h 14.866267 z m 0,0"
style="fill:#ababab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
<rect
style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.20018744;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="rect866-0-0"
width="10.705551"
height="10.537507"
x="59.100956"
y="179.87476"
ry="1.2795542" />
<g
aria-label="I"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text915"
transform="matrix(0.33151022,0,0,0.33151022,70.343906,61.159974)">
<path
d="m -1.3917749,85.387271 h 1.04386388 v 7.715291 H -1.3917749 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path937"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="T"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text919"
transform="matrix(0.33151022,0,0,0.33151022,70.4384,67.963546)">
<path
d="m -4.0650935,97.147136 h 6.5267332 v 0.878499 h -2.73885084 v 6.836795 H -1.3262427 v -6.836795 h -2.7388508 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path940"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text923"
transform="matrix(0.33151022,0,0,0.33151022,70.046656,73.784863)">
<path
d="m 1.4651083,114.07401 q 0.3358968,0.11369 0.651123,0.48576 0.3203939,0.37207 0.6407877,1.02319 l 1.0593669,2.1084 H 2.6950073 L 1.7079875,115.71215 Q 1.3255819,114.93701 0.96384688,114.68379 0.6072795,114.43058 -0.01283767,114.43058 H -1.1497191 v 3.26078 H -2.193583 v -7.71529 h 2.3564452 q 1.3229166,0 1.9740397,0.55294 0.651123,0.55293 0.651123,1.66915 0,0.72863 -0.3410645,1.20922 -0.3358968,0.4806 -0.9818521,0.66663 z m -2.6148274,-3.24011 v 2.73885 h 1.3125813 q 0.75447589,0 1.1368815,-0.34623 0.3875732,-0.3514 0.3875732,-1.02836 0,-0.67697 -0.3875732,-1.01803 -0.38240561,-0.34623 -1.1368815,-0.34623 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path943"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="M"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text927"
transform="matrix(0.33151022,0,0,0.33151022,69.846203,78.464046)">
<path
d="m -2.7281192,123.07228 h 1.5554606 l 1.96887201,5.25032 1.97920729,-5.25032 h 1.5554606 v 7.71529 H 3.3128556 v -6.77478 L 1.323313,129.30445 H 0.27428146 l -1.98954256,-5.29166 v 6.77478 h -1.0128581 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path946"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="MIN"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text931"
transform="matrix(0.28169956,0,0,0.28169956,62.81098,89.915833)">
<path
d="m -3.2626596,142.85021 h 1.5554606 l 1.968872,5.25033 1.9792073,-5.25033 h 1.5554606 v 7.7153 H 2.7783152 v -6.77478 l -1.98954261,5.29166 h -1.04903154 l -1.98954255,-5.29166 v 6.77478 h -1.0128581 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path949"
inkscape:connector-curvature="0" />
<path
d="m 5.873733,142.85021 h 1.0438639 v 7.7153 H 5.873733 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path951"
inkscape:connector-curvature="0" />
<path
d="m 8.9949889,142.85021 h 1.4055991 l 3.42098,6.45439 v -6.45439 h 1.012858 v 7.7153 h -1.405599 l -3.42098,-6.45439 v 6.45439 H 8.9949889 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path953"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="MAX"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text935"
transform="matrix(0.28169956,0,0,0.28169956,62.422471,108.66995)">
<path
d="m -2.7281192,160.75729 h 1.5554606 l 1.96887201,5.25032 1.97920729,-5.25032 h 1.5554606 v 7.71529 H 3.3128556 V 161.6978 L 1.323313,166.98947 H 0.27428146 L -1.7152611,161.6978 v 6.77478 h -1.0128581 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path956"
inkscape:connector-curvature="0" />
<path
d="m 8.9869273,161.78565 -1.4159342,3.83956 H 10.408029 Z M 8.397816,160.75729 h 1.1833903 l 2.9403887,7.71529 H 11.43639 l -0.702799,-1.97921 H 7.2557669 l -0.7027995,1.97921 H 5.4522595 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path958"
inkscape:connector-curvature="0" />
<path
d="m 13.270904,160.75729 h 1.121379 l 1.917195,2.86804 1.927531,-2.86804 h 1.121379 l -2.480469,3.7052 2.645833,4.01009 h -1.121378 l -2.17041,-3.28145 -2.185913,3.28145 h -1.126546 l 2.754353,-4.11861 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path960"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text965"
transform="matrix(0.3303036,0,0,0.3303036,41.602579,91.831285)">
<path
d="m 87.791817,136.9887 q 0.335896,0.11369 0.651123,0.48576 0.320393,0.37207 0.640787,1.02319 l 1.059367,2.1084 h -1.121378 l -0.98702,-1.97921 q -0.382406,-0.77515 -0.744141,-1.02836 -0.356567,-0.25321 -0.976684,-0.25321 h -1.136882 v 3.26078 h -1.043864 v -7.71529 h 2.356446 q 1.322916,0 1.974039,0.55294 0.651123,0.55293 0.651123,1.66914 0,0.72864 -0.341064,1.20923 -0.335897,0.48059 -0.981852,0.66663 z m -2.614828,-3.24011 v 2.73885 h 1.312582 q 0.754475,0 1.136881,-0.34624 0.387573,-0.35139 0.387573,-1.02836 0,-0.67696 -0.387573,-1.01802 -0.382406,-0.34623 -1.136881,-0.34623 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path974"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="F"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text969"
transform="matrix(0.3303036,0,0,0.3303036,41.413591,98.540362)">
<path
d="m 84.605591,141.39523 h 4.433838 v 0.8785 h -3.389974 v 2.27376 h 3.059244 v 0.8785 h -3.059244 v 3.68453 h -1.043864 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path971"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text965-9"
transform="matrix(0.33030361,0,0,0.33030361,41.572164,115.53042)">
<path
d="m 87.791817,136.9887 q 0.335896,0.11369 0.651123,0.48576 0.320393,0.37207 0.640787,1.02319 l 1.059367,2.1084 h -1.121378 l -0.98702,-1.97921 q -0.382406,-0.77515 -0.744141,-1.02836 -0.356567,-0.25321 -0.976684,-0.25321 h -1.136882 v 3.26078 h -1.043864 v -7.71529 h 2.356446 q 1.322916,0 1.974039,0.55294 0.651123,0.55293 0.651123,1.66914 0,0.72864 -0.341064,1.20923 -0.335897,0.48059 -0.981852,0.66663 z m -2.614828,-3.24011 v 2.73885 h 1.312582 q 0.754475,0 1.136881,-0.34624 0.387573,-0.35139 0.387573,-1.02836 0,-0.67696 -0.387573,-1.01802 -0.382406,-0.34623 -1.136881,-0.34623 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path974-5"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="F"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text969-2"
transform="matrix(0.33030361,0,0,0.33030361,41.383175,122.2395)">
<path
d="m 84.605591,141.39523 h 4.433838 v 0.8785 h -3.389974 v 2.27376 h 3.059244 v 0.8785 h -3.059244 v 3.68453 h -1.043864 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path971-6"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="LEG
ATO"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text1039"
transform="matrix(0.32357543,0,0,0.32357543,31.371788,59.230842)">
<path
d="m 93.015564,57.39001 h 1.043864 v 6.836792 h 3.756876 v 0.878499 h -4.80074 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1043"
inkscape:connector-curvature="0" />
<path
d="m 98.906677,57.39001 h 4.878253 v 0.878499 h -3.834389 v 2.284098 h 3.674199 v 0.8785 h -3.674199 v 2.795695 h 3.927409 v 0.878499 h -4.971273 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1045"
inkscape:connector-curvature="0" />
<path
d="m 110.8646,64.004593 v -2.072225 h -1.70532 v -0.857829 h 2.73885 v 3.31246 q -0.60461,0.428914 -1.33325,0.651123 -0.72864,0.217041 -1.55546,0.217041 -1.80868,0 -2.83187,-1.0542 -1.01802,-1.059366 -1.01802,-2.945556 0,-1.891358 1.01802,-2.945557 1.02319,-1.059367 2.83187,-1.059367 0.75448,0 1.43144,0.186036 0.68213,0.186035 1.25573,0.54777 v 1.111043 q -0.57877,-0.490926 -1.2299,-0.738973 -0.65112,-0.248047 -1.36942,-0.248047 -1.41593,0 -2.12907,0.79065 -0.70797,0.790649 -0.70797,2.356445 0,1.560628 0.70797,2.351277 0.71314,0.79065 2.12907,0.79065 0.55294,0 0.98702,-0.09302 0.43408,-0.09819 0.78031,-0.299723 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1047"
inkscape:connector-curvature="0" />
<path
d="m 95.594218,71.647537 -1.415934,3.839559 h 2.837036 z m -0.589111,-1.028361 h 1.18339 l 2.940389,7.715291 h -1.085205 l -0.7028,-1.979207 h -3.477824 l -0.702799,1.979207 H 92.05955 Z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1049"
inkscape:connector-curvature="0" />
<path
d="m 98.353739,70.619176 h 6.526731 v 0.878499 h -2.73885 v 6.836792 h -1.04903 v -6.836792 h -2.738851 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1051"
inkscape:connector-curvature="0" />
<path
d="m 109.02492,71.327143 q -1.13688,0 -1.80867,0.847494 -0.66663,0.847493 -0.66663,2.309936 0,1.457275 0.66663,2.304769 0.67179,0.847493 1.80867,0.847493 1.13688,0 1.79834,-0.847493 0.66663,-0.847494 0.66663,-2.304769 0,-1.462443 -0.66663,-2.309936 -0.66146,-0.847494 -1.79834,-0.847494 z m 0,-0.847493 q 1.62264,0 2.59416,1.090372 0.97152,1.085205 0.97152,2.914551 0,1.824178 -0.97152,2.914551 -0.97152,1.085205 -2.59416,1.085205 -1.62781,0 -2.60449,-1.085205 -0.97152,-1.085205 -0.97152,-2.914551 0,-1.829346 0.97152,-2.914551 0.97668,-1.090372 2.60449,-1.090372 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path1053"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="widgets"
style="display:none">
<rect
style="opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.19901438;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262182"
width="4.7473311"
height="10.000421"
x="5.2461929"
y="46.91531" />
<rect
y="17.69401"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect262989"
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262991"
width="8.2117491"
height="8.2103519"
x="3.513984"
y="32.18959" />
<rect
y="62.809601"
x="3.5153599"
height="8.2103519"
width="8.2117491"
id="rect262993"
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262995"
width="8.2117491"
height="8.2103519"
x="3.5153599"
y="77.809547" />
<rect
y="87.811348"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect262997"
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262999"
width="8.2117491"
height="8.2103519"
x="3.513984"
y="97.809021" />
<rect
y="107.80944"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect263001"
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
y="77.715843"
x="10.820329"
height="0.99907935"
width="0.99910229"
id="rect263003"
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect263005"
width="0.99910229"
height="0.99907935"
x="10.820329"
y="87.716263" />
<rect
y="97.716682"
x="10.820329"
height="0.99907935"
width="0.99910229"
id="rect263007"
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect263009"
width="0.99910229"
height="0.99907935"
x="10.820329"
y="107.71573" />
</g>
</svg>

Loading…
Cancel
Save