| @@ -1,5 +1,5 @@ | |||||
| SLUG = dBiz | SLUG = dBiz | ||||
| VERSION = 0.6.0 | |||||
| VERSION = 0.6.1 | |||||
| FLAGS += | FLAGS += | ||||
| CFLAGS += | CFLAGS += | ||||
| @@ -1,23 +1,37 @@ | |||||
| # dBiz_Modules | # dBiz_Modules | ||||
| Here's my collection of modules for VCVRack! | Here's my collection of modules for VCVRack! | ||||
| Many thx to Michael Hetrick, Strum's Mental and Jeremy Wen for sources and inspiring me! | |||||
| Ready for v 0.5 here's what i have: | |||||
| First of all many thx to all the awesome developers and VCV community! Whithout you this pack would not have existed! | |||||
| - Quad envelope generator based on rampage, | |||||
| Now ready for v 0.6.2 this is what you'll find | |||||
|  | |||||
| UTILITY AND QUANTIZER | |||||
| - Quad envelope AD, | |||||
| - Chord generator/transformer, | |||||
| - Utility transposer octave/sem/fine with ability to link the inputs, | - Utility transposer octave/sem/fine with ability to link the inputs, | ||||
| - Performance 8 channel stereo mixer with stereo sends and return | |||||
| - VCA based on Roland VCA530 | |||||
| - Simple transposer | |||||
|  | |||||
|  | |||||
| VCA AND ROUTERS | |||||
| Based on Strum modules i've made a compact 4 channel mixer, a 8 channel mixer,a chord utility and from Michael Hetrick Scanner i've made Remix Module ! | |||||
| - 6 Ch. mixer router/scanner, | |||||
| - 4x4 in/out matrix mixer, | |||||
| - 6 Ch. VCA based on Roland system 500 / 530 | |||||
| - 8 Ch. mixer scanner/sequencer/router | |||||
|  | |||||
|  | |||||
| GRID SEQUENCERS | |||||
| Starting from some grid sequencers like Cartesian by strum and Gridseq by JW i've made those grid sequencers: | Starting from some grid sequencers like Cartesian by strum and Gridseq by JW i've made those grid sequencers: | ||||
|  | |||||
|  | |||||
| - Bene | - Bene | ||||
| Classical 4x4 cv sequencer with internal quantization , | Classical 4x4 cv sequencer with internal quantization , | ||||
| BenePads is his "keyboard" it sends position to Bene(x,y) and a Gate out(g); | BenePads is his "keyboard" it sends position to Bene(x,y) and a Gate out(g); | ||||
| @@ -25,13 +39,25 @@ Classical 4x4 cv sequencer with internal quantization , | |||||
| - Bene2 | - Bene2 | ||||
| Evolution of Bene: Can out up to 8 individual sequence with cv (colums and rows) and gate (on the bottom) outs running with independent cloks. still some fix to do as usuall but it's really fun to play with it! | Evolution of Bene: Can out up to 8 individual sequence with cv (colums and rows) and gate (on the bottom) outs running with independent cloks. still some fix to do as usuall but it's really fun to play with it! | ||||
| And here's a collection of oscillator you might know... | |||||
|  | |||||
| OSCILLATORS: | |||||
| They don't need introductions ;) | |||||
|  | |||||
| VINTAGE SERIE | |||||
| This mini 4 modules series is based on subharmonicon sequencer,oscillator and clock subdivision. | |||||
| The Utility2 module is a collection of 2 glide generator, 2 ad envelope and 4 button/toggle with value selection. | |||||
|  | |||||
| I'm not a real coder so push req. and advice are always welcome | |||||
| The code and how it sounds can be improoved as usuall so push req. and advice are always welcome | |||||
| Have fun! | Have fun! | ||||
| @@ -1,4 +1,5 @@ | |||||
| ALL_OBJ= \ | ALL_OBJ= \ | ||||
| src/4Seq.o \ | |||||
| src/Bene.o \ | src/Bene.o \ | ||||
| src/Bene2.o \ | src/Bene2.o \ | ||||
| src/BenePads.o \ | src/BenePads.o \ | ||||
| @@ -7,13 +8,20 @@ ALL_OBJ= \ | |||||
| src/Contorno.o \ | src/Contorno.o \ | ||||
| src/DAOSC.o \ | src/DAOSC.o \ | ||||
| src/dBiz.o \ | src/dBiz.o \ | ||||
| src/Divider.o \ | |||||
| src/DualFilter.o \ | |||||
| src/DVCO.o \ | src/DVCO.o \ | ||||
| src/Multiple.o \ | src/Multiple.o \ | ||||
| src/PerfMixer.o \ | src/PerfMixer.o \ | ||||
| src/Remix.o \ | src/Remix.o \ | ||||
| src/SmiX.o \ | |||||
| src/SubMixer.o \ | src/SubMixer.o \ | ||||
| src/SuHa.o \ | |||||
| src/Transpose.o \ | src/Transpose.o \ | ||||
| src/TROSC.o \ | |||||
| src/Util2.o \ | |||||
| src/Utility.o \ | src/Utility.o \ | ||||
| src/VCA4.o \ | |||||
| src/VCA530.o \ | src/VCA530.o \ | ||||
| src/Verbo.o | src/Verbo.o | ||||
| @@ -3433,9 +3433,9 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="2.2606344" | |||||
| inkscape:cx="44.406358" | |||||
| inkscape:cy="169.31782" | |||||
| inkscape:zoom="2.5944565" | |||||
| inkscape:cx="86.453105" | |||||
| inkscape:cy="369.01201" | |||||
| inkscape:document-units="px" | inkscape:document-units="px" | ||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="true" | showgrid="true" | ||||
| @@ -3700,17 +3700,17 @@ | |||||
| style="display:inline"> | style="display:inline"> | ||||
| <path | <path | ||||
| style="fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | style="fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||
| d="M 62.653303,24.17144 V 349.34482" | |||||
| d="M 64.653303,24.17144 V 349.34482" | |||||
| id="path5273" | id="path5273" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| <path | <path | ||||
| style="display:inline;fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | style="display:inline;fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||
| d="M 127.49724,24.326629 V 349.5" | |||||
| d="M 129.49724,24.326629 V 349.5" | |||||
| id="path5273-3" | id="path5273-3" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| <path | <path | ||||
| style="display:inline;fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | style="display:inline;fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||
| d="M 192.30151,24.129685 V 349.30305" | |||||
| d="M 194.30151,24.129685 V 349.30305" | |||||
| id="path5273-5" | id="path5273-5" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| <path | <path | ||||
| @@ -4464,102 +4464,126 @@ | |||||
| <g | <g | ||||
| aria-label="RANGE" | aria-label="RANGE" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | ||||
| id="text5845"> | |||||
| id="text5845" | |||||
| transform="translate(-0.81763573,-3.8156334)"> | |||||
| <path | <path | ||||
| d="m 39.653742,20.575103 q 0.41227,0 0.721472,-0.309203 0.274846,-0.274846 0.274846,-0.824539 0,-0.515337 -0.309202,-0.824539 -0.343558,-0.343558 -0.927606,-0.343558 h -0.755828 v 2.301839 z m -0.06871,-2.954599 q 0.858895,0 1.408588,0.549693 0.446625,0.446625 0.446625,1.271164 0,0.755828 -0.446625,1.236809 -0.309202,0.343558 -0.618404,0.446625 l 1.236808,3.195089 h -0.824539 l -1.168097,-3.092021 h -0.961962 v 3.092021 h -0.790183 v -6.69938 z" | d="m 39.653742,20.575103 q 0.41227,0 0.721472,-0.309203 0.274846,-0.274846 0.274846,-0.824539 0,-0.515337 -0.309202,-0.824539 -0.343558,-0.343558 -0.927606,-0.343558 h -0.755828 v 2.301839 z m -0.06871,-2.954599 q 0.858895,0 1.408588,0.549693 0.446625,0.446625 0.446625,1.271164 0,0.755828 -0.446625,1.236809 -0.309202,0.343558 -0.618404,0.446625 l 1.236808,3.195089 h -0.824539 l -1.168097,-3.092021 h -0.961962 v 3.092021 h -0.790183 v -6.69938 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5922" /> | |||||
| id="path5922" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 42.814475,24.319884 h -0.824539 l 1.71779,-6.69938 h 0.687116 l 1.717789,6.69938 h -0.824539 l -0.480981,-1.95828 h -1.511655 z m 1.271164,-4.878523 h -0.06871 l -0.549693,2.267483 h 1.168097 z" | d="m 42.814475,24.319884 h -0.824539 l 1.71779,-6.69938 h 0.687116 l 1.717789,6.69938 h -0.824539 l -0.480981,-1.95828 h -1.511655 z m 1.271164,-4.878523 h -0.06871 l -0.549693,2.267483 h 1.168097 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5924" /> | |||||
| id="path5924" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 50.200971,17.620504 v 6.69938 h -0.961963 l -1.786501,-5.015946 h -0.03436 v 5.015946 h -0.790183 v -6.69938 h 0.961962 l 1.786502,5.015946 h 0.03435 v -5.015946 z" | d="m 50.200971,17.620504 v 6.69938 h -0.961963 l -1.786501,-5.015946 h -0.03436 v 5.015946 h -0.790183 v -6.69938 h 0.961962 l 1.786502,5.015946 h 0.03435 v -5.015946 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5926" /> | |||||
| id="path5926" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 53.877041,19.716208 q -0.03436,-0.893251 -0.343558,-1.202453 -0.240491,-0.240491 -0.549693,-0.240491 -0.274846,0 -0.446625,0.171779 -0.755827,0.755828 -0.755827,2.679752 0,1.683434 0.549692,2.233127 0.274847,0.274846 0.549693,0.274846 0.343558,0 0.618404,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.752146 v 3.641714 H 54.014464 L 53.911397,23.70148 q -0.480981,0.618404 -1.133741,0.618404 -0.584049,0 -0.996318,-0.41227 -0.790184,-0.790183 -0.790184,-2.782819 0,-2.130059 0.858895,-2.988954 0.515337,-0.515337 1.133741,-0.515337 0.65276,0 1.030674,0.377914 0.584049,0.584049 0.584049,1.71779 z" | d="m 53.877041,19.716208 q -0.03436,-0.893251 -0.343558,-1.202453 -0.240491,-0.240491 -0.549693,-0.240491 -0.274846,0 -0.446625,0.171779 -0.755827,0.755828 -0.755827,2.679752 0,1.683434 0.549692,2.233127 0.274847,0.274846 0.549693,0.274846 0.343558,0 0.618404,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.752146 v 3.641714 H 54.014464 L 53.911397,23.70148 q -0.480981,0.618404 -1.133741,0.618404 -0.584049,0 -0.996318,-0.41227 -0.790184,-0.790183 -0.790184,-2.782819 0,-2.130059 0.858895,-2.988954 0.515337,-0.515337 1.133741,-0.515337 0.65276,0 1.030674,0.377914 0.584049,0.584049 0.584049,1.71779 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5928" /> | |||||
| id="path5928" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 56.350658,20.437679 h 2.336193 v 0.65276 h -2.336193 v 2.576685 h 2.714107 v 0.65276 h -3.504291 v -6.69938 h 3.332512 v 0.65276 h -2.542328 z" | d="m 56.350658,20.437679 h 2.336193 v 0.65276 h -2.336193 v 2.576685 h 2.714107 v 0.65276 h -3.504291 v -6.69938 h 3.332512 v 0.65276 h -2.542328 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5930" /> | |||||
| id="path5930" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | </g> | ||||
| <g | <g | ||||
| aria-label="RANGE" | aria-label="RANGE" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | ||||
| id="text5845-7"> | |||||
| id="text5845-7" | |||||
| transform="translate(-0.81763573,-3.8156334)"> | |||||
| <path | <path | ||||
| d="m 102.54877,20.575103 q 0.41227,0 0.72147,-0.309203 0.27485,-0.274846 0.27485,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75583 v 2.301839 z m -0.0687,-2.954599 q 0.85889,0 1.40859,0.549693 0.44662,0.446625 0.44662,1.271164 0,0.755828 -0.44662,1.236809 -0.30921,0.343558 -0.61841,0.446625 l 1.23681,3.195089 h -0.82454 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79018 v -6.69938 z" | d="m 102.54877,20.575103 q 0.41227,0 0.72147,-0.309203 0.27485,-0.274846 0.27485,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75583 v 2.301839 z m -0.0687,-2.954599 q 0.85889,0 1.40859,0.549693 0.44662,0.446625 0.44662,1.271164 0,0.755828 -0.44662,1.236809 -0.30921,0.343558 -0.61841,0.446625 l 1.23681,3.195089 h -0.82454 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79018 v -6.69938 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5911" /> | |||||
| id="path5911" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 105.7095,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68712 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51166 z m 1.27117,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.1681 z" | d="m 105.7095,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68712 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51166 z m 1.27117,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.1681 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5913" /> | |||||
| id="path5913" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 113.096,17.620504 v 6.69938 h -0.96196 l -1.78651,-5.015946 h -0.0344 v 5.015946 H 109.523 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0343 v -5.015946 z" | d="m 113.096,17.620504 v 6.69938 h -0.96196 l -1.78651,-5.015946 h -0.0344 v 5.015946 H 109.523 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0343 v -5.015946 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5915" /> | |||||
| id="path5915" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 116.77207,19.716208 q -0.0344,-0.893251 -0.34356,-1.202453 -0.24049,-0.240491 -0.54969,-0.240491 -0.27485,0 -0.44663,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.5497,2.233127 0.27484,0.274846 0.54969,0.274846 0.34356,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75215 v 3.641714 h -0.58405 l -0.10307,-0.618404 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.8589,-2.988954 0.51533,-0.515337 1.13374,-0.515337 0.65276,0 1.03067,0.377914 0.58405,0.584049 0.58405,1.71779 z" | d="m 116.77207,19.716208 q -0.0344,-0.893251 -0.34356,-1.202453 -0.24049,-0.240491 -0.54969,-0.240491 -0.27485,0 -0.44663,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.5497,2.233127 0.27484,0.274846 0.54969,0.274846 0.34356,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75215 v 3.641714 h -0.58405 l -0.10307,-0.618404 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.8589,-2.988954 0.51533,-0.515337 1.13374,-0.515337 0.65276,0 1.03067,0.377914 0.58405,0.584049 0.58405,1.71779 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5917" /> | |||||
| id="path5917" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 119.24568,20.437679 h 2.3362 v 0.65276 h -2.3362 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | d="m 119.24568,20.437679 h 2.3362 v 0.65276 h -2.3362 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5919" /> | |||||
| id="path5919" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | </g> | ||||
| <g | <g | ||||
| aria-label="RANGE" | aria-label="RANGE" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | ||||
| id="text5845-4"> | |||||
| id="text5845-4" | |||||
| transform="translate(-0.81763573,-3.8156334)"> | |||||
| <path | <path | ||||
| d="m 167.87351,20.575103 q 0.41227,0 0.72148,-0.309203 0.27484,-0.274846 0.27484,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75582 v 2.301839 z m -0.0687,-2.954599 q 0.8589,0 1.40859,0.549693 0.44663,0.446625 0.44663,1.271164 0,0.755828 -0.44663,1.236809 -0.3092,0.343558 -0.6184,0.446625 l 1.2368,3.195089 h -0.82453 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79019 v -6.69938 z" | d="m 167.87351,20.575103 q 0.41227,0 0.72148,-0.309203 0.27484,-0.274846 0.27484,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75582 v 2.301839 z m -0.0687,-2.954599 q 0.8589,0 1.40859,0.549693 0.44663,0.446625 0.44663,1.271164 0,0.755828 -0.44663,1.236809 -0.3092,0.343558 -0.6184,0.446625 l 1.2368,3.195089 h -0.82453 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79019 v -6.69938 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5900" /> | |||||
| id="path5900" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 171.03425,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68711 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51165 z m 1.27116,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.16809 z" | d="m 171.03425,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68711 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51165 z m 1.27116,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.16809 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5902" /> | |||||
| id="path5902" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 178.42074,17.620504 v 6.69938 h -0.96196 l -1.7865,-5.015946 h -0.0344 v 5.015946 h -0.79018 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0344 v -5.015946 z" | d="m 178.42074,17.620504 v 6.69938 h -0.96196 l -1.7865,-5.015946 h -0.0344 v 5.015946 h -0.79018 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0344 v -5.015946 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5904" /> | |||||
| id="path5904" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 182.09681,19.716208 q -0.0344,-0.893251 -0.34355,-1.202453 -0.2405,-0.240491 -0.5497,-0.240491 -0.27484,0 -0.44662,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.54969,2.233127 0.27485,0.274846 0.5497,0.274846 0.34355,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75214 v 3.641714 h -0.58404 l -0.10307,-0.618404 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.85889,-2.988954 0.51534,-0.515337 1.13374,-0.515337 0.65276,0 1.03068,0.377914 0.58404,0.584049 0.58404,1.71779 z" | d="m 182.09681,19.716208 q -0.0344,-0.893251 -0.34355,-1.202453 -0.2405,-0.240491 -0.5497,-0.240491 -0.27484,0 -0.44662,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.54969,2.233127 0.27485,0.274846 0.5497,0.274846 0.34355,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75214 v 3.641714 h -0.58404 l -0.10307,-0.618404 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.85889,-2.988954 0.51534,-0.515337 1.13374,-0.515337 0.65276,0 1.03068,0.377914 0.58404,0.584049 0.58404,1.71779 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5906" /> | |||||
| id="path5906" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 184.57043,20.437679 h 2.33619 v 0.65276 h -2.33619 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | d="m 184.57043,20.437679 h 2.33619 v 0.65276 h -2.33619 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5908" /> | |||||
| id="path5908" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | </g> | ||||
| <g | <g | ||||
| aria-label="RANGE" | aria-label="RANGE" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | ||||
| id="text5845-7-9"> | |||||
| id="text5845-7-9" | |||||
| transform="translate(-0.81763573,-3.8156334)"> | |||||
| <path | <path | ||||
| d="m 230.76855,20.575103 q 0.41227,0 0.72147,-0.309203 0.27485,-0.274846 0.27485,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75583 v 2.301839 z m -0.0687,-2.954599 q 0.85889,0 1.40859,0.549693 0.44662,0.446625 0.44662,1.271164 0,0.755828 -0.44662,1.236809 -0.30921,0.343558 -0.61841,0.446625 l 1.23681,3.195089 h -0.82454 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79018 v -6.69938 z" | d="m 230.76855,20.575103 q 0.41227,0 0.72147,-0.309203 0.27485,-0.274846 0.27485,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75583 v 2.301839 z m -0.0687,-2.954599 q 0.85889,0 1.40859,0.549693 0.44662,0.446625 0.44662,1.271164 0,0.755828 -0.44662,1.236809 -0.30921,0.343558 -0.61841,0.446625 l 1.23681,3.195089 h -0.82454 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79018 v -6.69938 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5889" /> | |||||
| id="path5889" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 233.92928,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68712 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51166 z m 1.27117,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.1681 z" | d="m 233.92928,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68712 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51166 z m 1.27117,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.1681 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5891" /> | |||||
| id="path5891" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 241.31578,17.620504 v 6.69938 h -0.96196 l -1.78651,-5.015946 h -0.0343 v 5.015946 h -0.79018 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0343 v -5.015946 z" | d="m 241.31578,17.620504 v 6.69938 h -0.96196 l -1.78651,-5.015946 h -0.0343 v 5.015946 h -0.79018 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0343 v -5.015946 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5893" /> | |||||
| id="path5893" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 244.99185,19.716208 q -0.0344,-0.893251 -0.34356,-1.202453 -0.24049,-0.240491 -0.54969,-0.240491 -0.27485,0 -0.44663,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.5497,2.233127 0.27484,0.274846 0.54969,0.274846 0.34356,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75215 v 3.641714 h -0.58405 L 245.0262,23.70148 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.8589,-2.988954 0.51533,-0.515337 1.13374,-0.515337 0.65276,0 1.03067,0.377914 0.58405,0.584049 0.58405,1.71779 z" | d="m 244.99185,19.716208 q -0.0344,-0.893251 -0.34356,-1.202453 -0.24049,-0.240491 -0.54969,-0.240491 -0.27485,0 -0.44663,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.5497,2.233127 0.27484,0.274846 0.54969,0.274846 0.34356,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75215 v 3.641714 h -0.58405 L 245.0262,23.70148 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.8589,-2.988954 0.51533,-0.515337 1.13374,-0.515337 0.65276,0 1.03067,0.377914 0.58405,0.584049 0.58405,1.71779 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5895" /> | |||||
| id="path5895" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 247.46546,20.437679 h 2.3362 v 0.65276 h -2.3362 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | d="m 247.46546,20.437679 h 2.3362 v 0.65276 h -2.3362 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5897" /> | |||||
| id="path5897" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | </g> | ||||
| <g | <g | ||||
| aria-label="CYCLE" | aria-label="CYCLE" | ||||
| @@ -0,0 +1,110 @@ | |||||
| <?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="13mm" | |||||
| height="13mm" | |||||
| viewBox="0 0 13 13" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="DKnob.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="7.4839301" | |||||
| inkscape:cx="22.229954" | |||||
| inkscape:cy="13.125026" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | |||||
| showgrid="true" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="986" | |||||
| inkscape:window-height="1008" | |||||
| inkscape:window-x="804" | |||||
| inkscape:window-y="0" | |||||
| inkscape:window-maximized="0" | |||||
| inkscape:snap-grids="true" | |||||
| showguides="false" | |||||
| inkscape:snap-bbox="true"> | |||||
| <inkscape:grid | |||||
| type="xygrid" | |||||
| id="grid823" /> | |||||
| </sodipodi:namedview> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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(-230.09585,-119.75783)" | |||||
| style="display:inline"> | |||||
| <path | |||||
| transform="translate(230.09585,123.23243)" | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#4f4f4f;stroke-width:0.20298499;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 12.780098,2.3892771 C 12.50279,1.9403221 12.035939,1.4987435 11.776184,0.87041738 11.516429,0.24420331 11.533637,-0.39639345 11.413584,-0.90818097 11.13101,-1.258151 10.813,-1.5758158 10.462685,-1.8587352 9.9505398,-1.9784035 9.3106327,-1.9615544 8.6837277,-2.2213354 8.0554026,-2.481793 7.6138239,-2.9475971 7.165572,-3.2252488 6.946189,-3.2484662 6.7232903,-3.261733 6.4979371,-3.261733 c -0.2260564,0 -0.448955,0.0134 -0.667993,0.036484 C 5.3810022,-2.9475971 4.9394103,-2.481793 4.3110989,-2.2213354 3.6848835,-1.961581 3.0449765,-1.97843 2.5324859,-1.8587352 2.1825292,-1.5758158 1.8641478,-1.258151 1.5819323,-0.90818097 1.4618661,-0.39639345 1.4787151,0.24420331 1.2186291,0.87041738 0.95887465,1.4987435 0.49236733,1.9403221 0.21541884,2.3892771 c -0.0232172,0.2193831 -0.0362189,0.4422818 -0.0362189,0.667635 0,0.2257113 0.013267,0.4485968 0.0362189,0.668683 0.27694849,0.4482519 0.74345579,0.8898305 1.00321026,1.5181552 0.2600993,0.6262154 0.2432503,1.2668255 0.3633032,1.7782548 0.2822155,0.350315 0.6005969,0.6683381 0.9505536,0.9509118 0.5124906,0.1200663 1.1523976,0.1028191 1.778613,0.3622419 0.6283114,0.2608158 1.0699033,0.726965 1.5188452,1.0042716 0.219038,0.022819 0.4419366,0.03622 0.667993,0.03622 0.2253532,0 0.4482519,-0.0134 0.6676349,-0.03622 C 7.6138239,9.0621238 8.0554026,8.5959746 8.6837277,8.3351588 9.3106327,8.0757626 9.9505398,8.0929567 10.462685,7.9729169 10.813,7.6903432 11.13101,7.3723201 11.413584,7.0220051 c 0.120067,-0.5114293 0.102819,-1.1520394 0.3626,-1.7782548 0.259755,-0.6283247 0.726606,-1.0699033 1.003914,-1.5181552 0.02282,-0.2200862 0.03582,-0.4429717 0.03582,-0.668683 0,-0.2253532 -0.01327,-0.4482519 -0.03582,-0.667635" /> | |||||
| <path | |||||
| transform="translate(230.09585,123.23243)" | |||||
| style="display:inline;opacity:1;fill:#e7e7e7;fill-opacity:1;stroke:none;stroke-width:0.42333677;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" | |||||
| id="path833" | |||||
| sodipodi:type="arc" | |||||
| sodipodi:cx="6.4912686" | |||||
| sodipodi:cy="-2.325536" | |||||
| sodipodi:rx="0.61322403" | |||||
| sodipodi:ry="0.61322403" | |||||
| sodipodi:start="2.4454564" | |||||
| sodipodi:end="2.4435122" | |||||
| sodipodi:open="true" | |||||
| d="m 6.0207262,-1.9323014 a 0.61322403,0.61322403 0 0 1 0.077079,-0.8635859 0.61322403,0.61322403 0 0 1 0.8636233,0.076659 0.61322403,0.61322403 0 0 1 -0.07624,0.8636605 0.61322403,0.61322403 0 0 1 -0.8636974,-0.07582" /> | |||||
| <circle | |||||
| transform="translate(230.09585,123.23243)" | |||||
| style="display:inline;opacity:1;fill:#636363;fill-opacity:1;stroke:none;stroke-width:0.12466589;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path6739" | |||||
| cx="6.4975023" | |||||
| cy="3.057019" | |||||
| r="4.5814161" /> | |||||
| <circle | |||||
| style="display:inline;opacity:1;fill:#acacac;fill-opacity:1;stroke:none;stroke-width:0.11577436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path6739-8" | |||||
| cx="236.59123" | |||||
| cy="126.28621" | |||||
| r="4.2546558" /> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -1,105 +0,0 @@ | |||||
| <?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="12mm" | |||||
| height="12mm" | |||||
| viewBox="0 0 12 12" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="DaviesAzz.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="8.0171875" | |||||
| inkscape:cx="19.284931" | |||||
| inkscape:cy="31.695577" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="g2012" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-maximized="0" /> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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></dc:title> | |||||
| </cc:Work> | |||||
| </rdf:RDF> | |||||
| </metadata> | |||||
| <g | |||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-230.09585,-120.75783)"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.26457966,0,0,-0.26457966,-112.8694,754.07)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1341.4939,2370.9146)" | |||||
| id="g6443" | |||||
| style="stroke-width:1.33335185;fill:#00587e;fill-opacity:1"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6445" | |||||
| style="fill:#00587e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c 0,-9.941 -8.06,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.06,18 0,9.941 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1341.3664,2373.3046)" | |||||
| id="g6447" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="fill:#05d2ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c -0.79,1.279 -2.12,2.537 -2.86,4.327 -0.74,1.784 -0.691,3.609 -1.033,5.067 -0.805,0.997 -1.711,1.902 -2.709,2.708 -1.459,0.341 -3.282,0.293 -5.068,1.033 -1.79,0.742 -3.048,2.069 -4.325,2.86 -0.625,0.066 -1.26,0.104 -1.902,0.104 -0.644,0 -1.279,-0.038 -1.903,-0.104 -1.279,-0.791 -2.537,-2.118 -4.327,-2.86 -1.784,-0.74 -3.607,-0.692 -5.067,-1.033 -0.997,-0.806 -1.904,-1.711 -2.708,-2.708 -0.342,-1.458 -0.294,-3.283 -1.035,-5.067 -0.74,-1.79 -2.069,-3.048 -2.858,-4.327 -0.066,-0.625 -0.103,-1.26 -0.103,-1.902 0,-0.643 0.037,-1.278 0.103,-1.905 0.789,-1.277 2.118,-2.535 2.858,-4.325 0.741,-1.784 0.693,-3.609 1.035,-5.066 0.804,-0.998 1.711,-1.904 2.708,-2.709 1.46,-0.342 3.283,-0.293 5.067,-1.032 1.79,-0.743 3.048,-2.071 4.327,-2.861 0.624,-0.065 1.259,-0.103 1.903,-0.103 0.642,0 1.277,0.038 1.902,0.103 1.277,0.79 2.535,2.118 4.325,2.861 1.786,0.739 3.609,0.69 5.068,1.032 0.998,0.805 1.904,1.711 2.709,2.709 0.342,1.457 0.293,3.282 1.033,5.066 0.74,1.79 2.07,3.048 2.86,4.325 0.065,0.627 0.102,1.262 0.102,1.905 C 0.102,-1.26 0.065,-0.625 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1319.6315,2393.4433)" | |||||
| id="g6451" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="M 0,0 C -0.195,0.045 -0.393,0.069 -0.598,0.069 -0.804,0.069 -1.002,0.045 -1.196,0 V -18.157 H 0 Z" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -1,105 +0,0 @@ | |||||
| <?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="9.5249996mm" | |||||
| height="9.5253973mm" | |||||
| viewBox="0 0 9.5249996 9.5253972" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.1 r" | |||||
| sodipodi:docname="Davies1900hBlack.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="3.959798" | |||||
| inkscape:cx="-2.745519" | |||||
| inkscape:cy="9.5126135" | |||||
| 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:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-maximized="0" /> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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></dc:title> | |||||
| </cc:Work> | |||||
| </rdf:RDF> | |||||
| </metadata> | |||||
| <g | |||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-230.09585,-123.23243)"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.26457966,0,0,-0.26457966,-112.8694,754.07)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="translate(1332.2646,2366.2998)" | |||||
| id="g6443" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6445" | |||||
| style="fill:#aaaaaa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c 0,-9.941 -8.06,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.06,18 0,9.941 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="translate(1332.1631,2368.2021)" | |||||
| id="g6447" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c -0.79,1.279 -2.12,2.537 -2.86,4.327 -0.74,1.784 -0.691,3.609 -1.033,5.067 -0.805,0.997 -1.711,1.902 -2.709,2.708 -1.459,0.341 -3.282,0.293 -5.068,1.033 -1.79,0.742 -3.048,2.069 -4.325,2.86 -0.625,0.066 -1.26,0.104 -1.902,0.104 -0.644,0 -1.279,-0.038 -1.903,-0.104 -1.279,-0.791 -2.537,-2.118 -4.327,-2.86 -1.784,-0.74 -3.607,-0.692 -5.067,-1.033 -0.997,-0.806 -1.904,-1.711 -2.708,-2.708 -0.342,-1.458 -0.294,-3.283 -1.035,-5.067 -0.74,-1.79 -2.069,-3.048 -2.858,-4.327 -0.066,-0.625 -0.103,-1.26 -0.103,-1.902 0,-0.643 0.037,-1.278 0.103,-1.905 0.789,-1.277 2.118,-2.535 2.858,-4.325 0.741,-1.784 0.693,-3.609 1.035,-5.066 0.804,-0.998 1.711,-1.904 2.708,-2.709 1.46,-0.342 3.283,-0.293 5.067,-1.032 1.79,-0.743 3.048,-2.071 4.327,-2.861 0.624,-0.065 1.259,-0.103 1.903,-0.103 0.642,0 1.277,0.038 1.902,0.103 1.277,0.79 2.535,2.118 4.325,2.861 1.786,0.739 3.609,0.69 5.068,1.032 0.998,0.805 1.904,1.711 2.709,2.709 0.342,1.457 0.293,3.282 1.033,5.066 0.74,1.79 2.07,3.048 2.86,4.325 0.065,0.627 0.102,1.262 0.102,1.905 C 0.102,-1.26 0.065,-0.625 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="translate(1314.8633,2384.2314)" | |||||
| id="g6451" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="M 0,0 C -0.195,0.045 -0.393,0.069 -0.598,0.069 -0.804,0.069 -1.002,0.045 -1.196,0 V -18.157 H 0 Z" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -1,105 +0,0 @@ | |||||
| <?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="12mm" | |||||
| height="12mm" | |||||
| viewBox="0 0 12 12" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="DaviesBlu.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="8.0171875" | |||||
| inkscape:cx="19.284931" | |||||
| inkscape:cy="31.695577" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="g2012" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-maximized="0" /> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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></dc:title> | |||||
| </cc:Work> | |||||
| </rdf:RDF> | |||||
| </metadata> | |||||
| <g | |||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-230.09585,-120.75783)"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.26457966,0,0,-0.26457966,-112.8694,754.07)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1341.4939,2370.9146)" | |||||
| id="g6443" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6445" | |||||
| style="fill:#1b3c7e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c 0,-9.941 -8.06,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.06,18 0,9.941 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1341.3664,2373.3046)" | |||||
| id="g6447" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="fill:#0069b3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c -0.79,1.279 -2.12,2.537 -2.86,4.327 -0.74,1.784 -0.691,3.609 -1.033,5.067 -0.805,0.997 -1.711,1.902 -2.709,2.708 -1.459,0.341 -3.282,0.293 -5.068,1.033 -1.79,0.742 -3.048,2.069 -4.325,2.86 -0.625,0.066 -1.26,0.104 -1.902,0.104 -0.644,0 -1.279,-0.038 -1.903,-0.104 -1.279,-0.791 -2.537,-2.118 -4.327,-2.86 -1.784,-0.74 -3.607,-0.692 -5.067,-1.033 -0.997,-0.806 -1.904,-1.711 -2.708,-2.708 -0.342,-1.458 -0.294,-3.283 -1.035,-5.067 -0.74,-1.79 -2.069,-3.048 -2.858,-4.327 -0.066,-0.625 -0.103,-1.26 -0.103,-1.902 0,-0.643 0.037,-1.278 0.103,-1.905 0.789,-1.277 2.118,-2.535 2.858,-4.325 0.741,-1.784 0.693,-3.609 1.035,-5.066 0.804,-0.998 1.711,-1.904 2.708,-2.709 1.46,-0.342 3.283,-0.293 5.067,-1.032 1.79,-0.743 3.048,-2.071 4.327,-2.861 0.624,-0.065 1.259,-0.103 1.903,-0.103 0.642,0 1.277,0.038 1.902,0.103 1.277,0.79 2.535,2.118 4.325,2.861 1.786,0.739 3.609,0.69 5.068,1.032 0.998,0.805 1.904,1.711 2.709,2.709 0.342,1.457 0.293,3.282 1.033,5.066 0.74,1.79 2.07,3.048 2.86,4.325 0.065,0.627 0.102,1.262 0.102,1.905 C 0.102,-1.26 0.065,-0.625 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1319.6315,2393.4433)" | |||||
| id="g6451" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="M 0,0 C -0.195,0.045 -0.393,0.069 -0.598,0.069 -0.804,0.069 -1.002,0.045 -1.196,0 V -18.157 H 0 Z" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -1,105 +0,0 @@ | |||||
| <?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="9.5249996mm" | |||||
| height="9.5253973mm" | |||||
| viewBox="0 0 9.5249996 9.5253972" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="DaviesGre.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="8.0171875" | |||||
| inkscape:cx="-45.756295" | |||||
| inkscape:cy="-18.197231" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:current-layer="g6443" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-maximized="0" /> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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(-230.09585,-123.23243)"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.26457966,0,0,-0.26457966,-112.8694,754.07)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="translate(1332.2646,2366.2998)" | |||||
| id="g6443" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6445" | |||||
| style="fill:#008019;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c 0,-9.941 -8.06,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.06,18 0,9.941 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="translate(1332.1631,2368.2021)" | |||||
| id="g6447" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="fill:#71c837;fill-opacity:1;fill-rule:evenodd;stroke:#009300;stroke-width:0.37795801;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" | |||||
| d="m 0,0 c -0.79,1.279 -2.12,2.537 -2.86,4.327 -0.74,1.784 -0.691,3.609 -1.033,5.067 -0.805,0.997 -1.711,1.902 -2.709,2.708 -1.459,0.341 -3.282,0.293 -5.068,1.033 -1.79,0.742 -3.048,2.069 -4.325,2.86 -0.625,0.066 -1.26,0.104 -1.902,0.104 -0.644,0 -1.279,-0.038 -1.903,-0.104 -1.279,-0.791 -2.537,-2.118 -4.327,-2.86 -1.784,-0.74 -3.607,-0.692 -5.067,-1.033 -0.997,-0.806 -1.904,-1.711 -2.708,-2.708 -0.342,-1.458 -0.294,-3.283 -1.035,-5.067 -0.74,-1.79 -2.069,-3.048 -2.858,-4.327 -0.066,-0.625 -0.103,-1.26 -0.103,-1.902 0,-0.643 0.037,-1.278 0.103,-1.905 0.789,-1.277 2.118,-2.535 2.858,-4.325 0.741,-1.784 0.693,-3.609 1.035,-5.066 0.804,-0.998 1.711,-1.904 2.708,-2.709 1.46,-0.342 3.283,-0.293 5.067,-1.032 1.79,-0.743 3.048,-2.071 4.327,-2.861 0.624,-0.065 1.259,-0.103 1.903,-0.103 0.642,0 1.277,0.038 1.902,0.103 1.277,0.79 2.535,2.118 4.325,2.861 1.786,0.739 3.609,0.69 5.068,1.032 0.998,0.805 1.904,1.711 2.709,2.709 0.342,1.457 0.293,3.282 1.033,5.066 0.74,1.79 2.07,3.048 2.86,4.325 0.065,0.627 0.102,1.262 0.102,1.905 C 0.102,-1.26 0.065,-0.625 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="translate(1314.8633,2384.2314)" | |||||
| id="g6451" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="M 0,0 C -0.195,0.045 -0.393,0.069 -0.598,0.069 -0.804,0.069 -1.002,0.045 -1.196,0 V -18.157 H 0 Z" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -1,105 +0,0 @@ | |||||
| <?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="12mm" | |||||
| height="12mm" | |||||
| viewBox="0 0 12 12" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="DaviesPur.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="8.0171875" | |||||
| inkscape:cx="19.284931" | |||||
| inkscape:cy="31.695577" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="g2012" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-maximized="0" /> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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></dc:title> | |||||
| </cc:Work> | |||||
| </rdf:RDF> | |||||
| </metadata> | |||||
| <g | |||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-230.09585,-120.75783)"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.26457966,0,0,-0.26457966,-112.8694,754.07)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1341.4939,2370.9146)" | |||||
| id="g6443" | |||||
| style="stroke-width:1.33335185;fill:#7e0076;fill-opacity:1"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6445" | |||||
| style="fill:#7e0076;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c 0,-9.941 -8.06,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.06,18 0,9.941 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1341.3664,2373.3046)" | |||||
| id="g6447" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="fill:#dd0b7d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c -0.79,1.279 -2.12,2.537 -2.86,4.327 -0.74,1.784 -0.691,3.609 -1.033,5.067 -0.805,0.997 -1.711,1.902 -2.709,2.708 -1.459,0.341 -3.282,0.293 -5.068,1.033 -1.79,0.742 -3.048,2.069 -4.325,2.86 -0.625,0.066 -1.26,0.104 -1.902,0.104 -0.644,0 -1.279,-0.038 -1.903,-0.104 -1.279,-0.791 -2.537,-2.118 -4.327,-2.86 -1.784,-0.74 -3.607,-0.692 -5.067,-1.033 -0.997,-0.806 -1.904,-1.711 -2.708,-2.708 -0.342,-1.458 -0.294,-3.283 -1.035,-5.067 -0.74,-1.79 -2.069,-3.048 -2.858,-4.327 -0.066,-0.625 -0.103,-1.26 -0.103,-1.902 0,-0.643 0.037,-1.278 0.103,-1.905 0.789,-1.277 2.118,-2.535 2.858,-4.325 0.741,-1.784 0.693,-3.609 1.035,-5.066 0.804,-0.998 1.711,-1.904 2.708,-2.709 1.46,-0.342 3.283,-0.293 5.067,-1.032 1.79,-0.743 3.048,-2.071 4.327,-2.861 0.624,-0.065 1.259,-0.103 1.903,-0.103 0.642,0 1.277,0.038 1.902,0.103 1.277,0.79 2.535,2.118 4.325,2.861 1.786,0.739 3.609,0.69 5.068,1.032 0.998,0.805 1.904,1.711 2.709,2.709 0.342,1.457 0.293,3.282 1.033,5.066 0.74,1.79 2.07,3.048 2.86,4.325 0.065,0.627 0.102,1.262 0.102,1.905 C 0.102,-1.26 0.065,-0.625 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1319.6315,2393.4433)" | |||||
| id="g6451" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="M 0,0 C -0.195,0.045 -0.393,0.069 -0.598,0.069 -0.804,0.069 -1.002,0.045 -1.196,0 V -18.157 H 0 Z" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -1,105 +0,0 @@ | |||||
| <?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="12mm" | |||||
| height="12mm" | |||||
| viewBox="0 0 12 12" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="DaviesRed.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="8.0171875" | |||||
| inkscape:cx="19.284931" | |||||
| inkscape:cy="31.695577" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="g2012" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-maximized="0" /> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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></dc:title> | |||||
| </cc:Work> | |||||
| </rdf:RDF> | |||||
| </metadata> | |||||
| <g | |||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-230.09585,-120.75783)"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.26457966,0,0,-0.26457966,-112.8694,754.07)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1341.4939,2370.9146)" | |||||
| id="g6443" | |||||
| style="stroke-width:1.33335185;fill:#7e0000;fill-opacity:1"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6445" | |||||
| style="fill:#7e0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c 0,-9.941 -8.06,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.06,18 0,9.941 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1341.3664,2373.3046)" | |||||
| id="g6447" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="fill:#ff0505;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c -0.79,1.279 -2.12,2.537 -2.86,4.327 -0.74,1.784 -0.691,3.609 -1.033,5.067 -0.805,0.997 -1.711,1.902 -2.709,2.708 -1.459,0.341 -3.282,0.293 -5.068,1.033 -1.79,0.742 -3.048,2.069 -4.325,2.86 -0.625,0.066 -1.26,0.104 -1.902,0.104 -0.644,0 -1.279,-0.038 -1.903,-0.104 -1.279,-0.791 -2.537,-2.118 -4.327,-2.86 -1.784,-0.74 -3.607,-0.692 -5.067,-1.033 -0.997,-0.806 -1.904,-1.711 -2.708,-2.708 -0.342,-1.458 -0.294,-3.283 -1.035,-5.067 -0.74,-1.79 -2.069,-3.048 -2.858,-4.327 -0.066,-0.625 -0.103,-1.26 -0.103,-1.902 0,-0.643 0.037,-1.278 0.103,-1.905 0.789,-1.277 2.118,-2.535 2.858,-4.325 0.741,-1.784 0.693,-3.609 1.035,-5.066 0.804,-0.998 1.711,-1.904 2.708,-2.709 1.46,-0.342 3.283,-0.293 5.067,-1.032 1.79,-0.743 3.048,-2.071 4.327,-2.861 0.624,-0.065 1.259,-0.103 1.903,-0.103 0.642,0 1.277,0.038 1.902,0.103 1.277,0.79 2.535,2.118 4.325,2.861 1.786,0.739 3.609,0.69 5.068,1.032 0.998,0.805 1.904,1.711 2.709,2.709 0.342,1.457 0.293,3.282 1.033,5.066 0.74,1.79 2.07,3.048 2.86,4.325 0.065,0.627 0.102,1.262 0.102,1.905 C 0.102,-1.26 0.065,-0.625 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1.2563695,0,0,1.2563695,1319.6315,2393.4433)" | |||||
| id="g6451" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="M 0,0 C -0.195,0.045 -0.393,0.069 -0.598,0.069 -0.804,0.069 -1.002,0.045 -1.196,0 V -18.157 H 0 Z" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -1,105 +0,0 @@ | |||||
| <?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="9.5249996mm" | |||||
| height="9.5253973mm" | |||||
| viewBox="0 0 9.5249996 9.5253972" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="DaviesGrey.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="15.839192" | |||||
| inkscape:cx="18.587051" | |||||
| inkscape:cy="21.955931" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:current-layer="g6447" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-maximized="0" /> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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(-230.09585,-123.23243)"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.26457966,0,0,-0.26457966,-112.8694,754.07)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="translate(1332.2646,2366.2998)" | |||||
| id="g6443" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6445" | |||||
| style="fill:#aaaaaa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c 0,-9.941 -8.06,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.06,18 0,9.941 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="translate(1332.1631,2368.2021)" | |||||
| id="g6447" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#c6c6c6;stroke-width:0.3401622;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" | |||||
| d="m 0,0 c -0.79,1.279 -2.12,2.537 -2.86,4.327 -0.74,1.784 -0.691,3.609 -1.033,5.067 -0.805,0.997 -1.711,1.902 -2.709,2.708 -1.459,0.341 -3.282,0.293 -5.068,1.033 -1.79,0.742 -3.048,2.069 -4.325,2.86 -0.625,0.066 -1.26,0.104 -1.902,0.104 -0.644,0 -1.279,-0.038 -1.903,-0.104 -1.279,-0.791 -2.537,-2.118 -4.327,-2.86 -1.784,-0.74 -3.607,-0.692 -5.067,-1.033 -0.997,-0.806 -1.904,-1.711 -2.708,-2.708 -0.342,-1.458 -0.294,-3.283 -1.035,-5.067 -0.74,-1.79 -2.069,-3.048 -2.858,-4.327 -0.066,-0.625 -0.103,-1.26 -0.103,-1.902 0,-0.643 0.037,-1.278 0.103,-1.905 0.789,-1.277 2.118,-2.535 2.858,-4.325 0.741,-1.784 0.693,-3.609 1.035,-5.066 0.804,-0.998 1.711,-1.904 2.708,-2.709 1.46,-0.342 3.283,-0.293 5.067,-1.032 1.79,-0.743 3.048,-2.071 4.327,-2.861 0.624,-0.065 1.259,-0.103 1.903,-0.103 0.642,0 1.277,0.038 1.902,0.103 1.277,0.79 2.535,2.118 4.325,2.861 1.786,0.739 3.609,0.69 5.068,1.032 0.998,0.805 1.904,1.711 2.709,2.709 0.342,1.457 0.293,3.282 1.033,5.066 0.74,1.79 2.07,3.048 2.86,4.325 0.065,0.627 0.102,1.262 0.102,1.905 C 0.102,-1.26 0.065,-0.625 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="translate(1314.8633,2384.2314)" | |||||
| id="g6451" | |||||
| style="stroke-width:1.33335185;fill:#000000"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="M 0,0 C -0.195,0.045 -0.393,0.069 -0.598,0.069 -0.804,0.069 -1.002,0.045 -1.196,0 V -18.157 H 0 Z" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -1,105 +0,0 @@ | |||||
| <?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="9.5249996mm" | |||||
| height="9.5253973mm" | |||||
| viewBox="0 0 9.5249996 9.5253972" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="DaviesYel.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="22.955463" | |||||
| inkscape:cx="17.632106" | |||||
| inkscape:cy="-7.7422032" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:current-layer="g6443" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-maximized="0" /> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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(-230.09585,-123.23243)"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.26457966,0,0,-0.26457966,-112.8694,754.07)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="translate(1332.2646,2366.2998)" | |||||
| id="g6443" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6445" | |||||
| style="fill:#c6a600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33335185" | |||||
| d="m 0,0 c 0,-9.941 -8.06,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.06,18 0,9.941 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="translate(1332.1631,2368.2021)" | |||||
| id="g6447" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.37795801;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" | |||||
| d="m 0,0 c -0.79,1.279 -2.12,2.537 -2.86,4.327 -0.74,1.784 -0.691,3.609 -1.033,5.067 -0.805,0.997 -1.711,1.902 -2.709,2.708 -1.459,0.341 -3.282,0.293 -5.068,1.033 -1.79,0.742 -3.048,2.069 -4.325,2.86 -0.625,0.066 -1.26,0.104 -1.902,0.104 -0.644,0 -1.279,-0.038 -1.903,-0.104 -1.279,-0.791 -2.537,-2.118 -4.327,-2.86 -1.784,-0.74 -3.607,-0.692 -5.067,-1.033 -0.997,-0.806 -1.904,-1.711 -2.708,-2.708 -0.342,-1.458 -0.294,-3.283 -1.035,-5.067 -0.74,-1.79 -2.069,-3.048 -2.858,-4.327 -0.066,-0.625 -0.103,-1.26 -0.103,-1.902 0,-0.643 0.037,-1.278 0.103,-1.905 0.789,-1.277 2.118,-2.535 2.858,-4.325 0.741,-1.784 0.693,-3.609 1.035,-5.066 0.804,-0.998 1.711,-1.904 2.708,-2.709 1.46,-0.342 3.283,-0.293 5.067,-1.032 1.79,-0.743 3.048,-2.071 4.327,-2.861 0.624,-0.065 1.259,-0.103 1.903,-0.103 0.642,0 1.277,0.038 1.902,0.103 1.277,0.79 2.535,2.118 4.325,2.861 1.786,0.739 3.609,0.69 5.068,1.032 0.998,0.805 1.904,1.711 2.709,2.709 0.342,1.457 0.293,3.282 1.033,5.066 0.74,1.79 2.07,3.048 2.86,4.325 0.065,0.627 0.102,1.262 0.102,1.905 C 0.102,-1.26 0.065,-0.625 0,0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="translate(1314.8633,2384.2314)" | |||||
| id="g6451" | |||||
| style="stroke-width:1.33335185"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.33335185" | |||||
| d="M 0,0 C -0.195,0.045 -0.393,0.069 -0.598,0.069 -0.804,0.069 -1.002,0.045 -1.196,0 V -18.157 H 0 Z" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -9,13 +9,13 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="20mm" | |||||
| height="20mm" | |||||
| viewBox="0 0 20 20" | |||||
| width="30" | |||||
| height="30" | |||||
| viewBox="0 0 7.9374999 7.9374999" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg16908" | id="svg16908" | ||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | ||||
| sodipodi:docname="FlatWAz.svg"> | |||||
| sodipodi:docname="FlatA.svg"> | |||||
| <defs | <defs | ||||
| id="defs16902"> | id="defs16902"> | ||||
| <inkscape:path-effect | <inkscape:path-effect | ||||
| @@ -402,9 +402,9 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="1.6739121" | |||||
| inkscape:cx="73.44506" | |||||
| inkscape:cy="113.45171" | |||||
| inkscape:zoom="11.882199" | |||||
| inkscape:cx="6.0106506" | |||||
| inkscape:cy="6.3321755" | |||||
| inkscape:document-units="px" | inkscape:document-units="px" | ||||
| inkscape:current-layer="layer2" | inkscape:current-layer="layer2" | ||||
| showgrid="true" | showgrid="true" | ||||
| @@ -412,13 +412,14 @@ | |||||
| fit-margin-left="0" | fit-margin-left="0" | ||||
| fit-margin-right="0" | fit-margin-right="0" | ||||
| fit-margin-bottom="0" | fit-margin-bottom="0" | ||||
| inkscape:window-width="858" | |||||
| inkscape:window-height="890" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-width="1520" | |||||
| inkscape:window-height="889" | |||||
| inkscape:window-x="201" | |||||
| inkscape:window-y="132" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| inkscape:snap-grids="false" | inkscape:snap-grids="false" | ||||
| showguides="false"> | |||||
| showguides="false" | |||||
| units="px"> | |||||
| <inkscape:grid | <inkscape:grid | ||||
| type="xygrid" | type="xygrid" | ||||
| id="grid823" /> | id="grid823" /> | ||||
| @@ -431,7 +432,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -440,16 +441,16 @@ | |||||
| id="layer2" | id="layer2" | ||||
| inkscape:label="Layer 2" | inkscape:label="Layer 2" | ||||
| style="display:inline" | style="display:inline" | ||||
| transform="translate(0,10.474604)"> | |||||
| transform="translate(0,-1.5878963)"> | |||||
| <ellipse | <ellipse | ||||
| style="display:inline;fill:#51b1c4;fill-opacity:1;stroke:none;stroke-width:1.43382859;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| style="display:inline;fill:#51b1c4;fill-opacity:1;stroke:none;stroke-width:0.5676986;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | id="path821-6" | ||||
| cx="10.028528" | |||||
| cy="-0.46119985" | |||||
| rx="10.018121" | |||||
| ry="10.018414" /> | |||||
| cx="3.9769018" | |||||
| cy="5.5906043" | |||||
| rx="3.9664943" | |||||
| ry="3.9666104" /> | |||||
| <g | <g | ||||
| transform="matrix(1.8116759,0,0,1.7907501,-90.300547,-165.62678)" | |||||
| transform="matrix(0.71730041,0,0,0.70901522,-35.746587,-59.803731)" | |||||
| id="layer1-9" | id="layer1-9" | ||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| style="fill:#f3f3f3;fill-opacity:1"> | style="fill:#f3f3f3;fill-opacity:1"> | ||||
| @@ -470,8 +471,8 @@ | |||||
| id="path47006" /> | id="path47006" /> | ||||
| </g> | </g> | ||||
| <path | <path | ||||
| style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.87772757;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 10.127907,-0.45742148 V -8.7304144" | |||||
| style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34752038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 4.016249,5.5920989 V 2.3165565" | |||||
| id="path4695" | id="path4695" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| </g> | </g> | ||||
| @@ -9,13 +9,13 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="20mm" | |||||
| height="20mm" | |||||
| viewBox="0 0 20 20" | |||||
| width="30" | |||||
| height="30" | |||||
| viewBox="0 0 7.9374998 7.9374998" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg16908" | id="svg16908" | ||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | ||||
| sodipodi:docname="FlatGr2.svg"> | |||||
| sodipodi:docname="FlatG.svg"> | |||||
| <defs | <defs | ||||
| id="defs16902"> | id="defs16902"> | ||||
| <inkscape:path-effect | <inkscape:path-effect | ||||
| @@ -402,9 +402,9 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="2.3707967" | |||||
| inkscape:cx="80.338196" | |||||
| inkscape:cy="71.327541" | |||||
| inkscape:zoom="8.0129344" | |||||
| inkscape:cx="14.731218" | |||||
| inkscape:cy="20.124297" | |||||
| inkscape:document-units="px" | inkscape:document-units="px" | ||||
| inkscape:current-layer="layer2" | inkscape:current-layer="layer2" | ||||
| showgrid="true" | showgrid="true" | ||||
| @@ -412,13 +412,14 @@ | |||||
| fit-margin-left="0" | fit-margin-left="0" | ||||
| fit-margin-right="0" | fit-margin-right="0" | ||||
| fit-margin-bottom="0" | fit-margin-bottom="0" | ||||
| inkscape:window-width="858" | |||||
| inkscape:window-width="1036" | |||||
| inkscape:window-height="890" | inkscape:window-height="890" | ||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-x="591" | |||||
| inkscape:window-y="101" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| inkscape:snap-grids="false" | inkscape:snap-grids="false" | ||||
| showguides="false"> | |||||
| showguides="false" | |||||
| units="px"> | |||||
| <inkscape:grid | <inkscape:grid | ||||
| type="xygrid" | type="xygrid" | ||||
| id="grid823" /> | id="grid823" /> | ||||
| @@ -431,7 +432,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -439,23 +440,23 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-230.09585,-112.75783)" | |||||
| transform="translate(-230.09585,-124.82033)" | |||||
| style="display:inline" /> | style="display:inline" /> | ||||
| <g | <g | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer2" | id="layer2" | ||||
| inkscape:label="Layer 2" | inkscape:label="Layer 2" | ||||
| style="display:inline" | style="display:inline" | ||||
| transform="translate(0,10.474604)"> | |||||
| transform="translate(0,-1.5878965)"> | |||||
| <ellipse | <ellipse | ||||
| style="display:inline;fill:#23494d;fill-opacity:1;stroke:none;stroke-width:1.43382859;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| style="display:inline;fill:#23494d;fill-opacity:1;stroke:none;stroke-width:0.56873465;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | id="path821-6" | ||||
| cx="10.028528" | |||||
| cy="-0.46119985" | |||||
| rx="10.018121" | |||||
| ry="10.018414" /> | |||||
| cx="3.9841411" | |||||
| cy="5.583364" | |||||
| rx="3.9737337" | |||||
| ry="3.9738498" /> | |||||
| <g | <g | ||||
| transform="matrix(1.8116759,0,0,1.7907501,-90.300547,-165.62678)" | |||||
| transform="matrix(0.71860955,0,0,0.71030923,-35.811846,-59.930319)" | |||||
| id="layer1-9" | id="layer1-9" | ||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| style="fill:#f3f3f3;fill-opacity:1"> | style="fill:#f3f3f3;fill-opacity:1"> | ||||
| @@ -476,8 +477,8 @@ | |||||
| id="path47006" /> | id="path47006" /> | ||||
| </g> | </g> | ||||
| <path | <path | ||||
| style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.87772757;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 10.127907,-0.45742148 V -8.7304144" | |||||
| style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34815463;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 4.0235599,5.5848629 V 2.3033424" | |||||
| id="path4695" | id="path4695" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| </g> | </g> | ||||
| @@ -9,13 +9,13 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="20mm" | |||||
| height="20mm" | |||||
| viewBox="0 0 20 20" | |||||
| width="30" | |||||
| height="30" | |||||
| viewBox="0 0 7.9374998 7.9374998" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg16908" | id="svg16908" | ||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | ||||
| sodipodi:docname="FlatWRd.svg"> | |||||
| sodipodi:docname="FlatR.svg"> | |||||
| <defs | <defs | ||||
| id="defs16902"> | id="defs16902"> | ||||
| <inkscape:path-effect | <inkscape:path-effect | ||||
| @@ -402,9 +402,9 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="0.83695607" | |||||
| inkscape:cx="85.708237" | |||||
| inkscape:cy="-76.538434" | |||||
| inkscape:zoom="9.4268732" | |||||
| inkscape:cx="17.751314" | |||||
| inkscape:cy="32.935248" | |||||
| inkscape:document-units="px" | inkscape:document-units="px" | ||||
| inkscape:current-layer="layer2" | inkscape:current-layer="layer2" | ||||
| showgrid="true" | showgrid="true" | ||||
| @@ -418,7 +418,8 @@ | |||||
| inkscape:window-y="18" | inkscape:window-y="18" | ||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| inkscape:snap-grids="false" | inkscape:snap-grids="false" | ||||
| showguides="false"> | |||||
| showguides="false" | |||||
| units="px"> | |||||
| <inkscape:grid | <inkscape:grid | ||||
| type="xygrid" | type="xygrid" | ||||
| id="grid823" /> | id="grid823" /> | ||||
| @@ -431,7 +432,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -440,16 +441,16 @@ | |||||
| id="layer2" | id="layer2" | ||||
| inkscape:label="Layer 2" | inkscape:label="Layer 2" | ||||
| style="display:inline" | style="display:inline" | ||||
| transform="translate(0,10.474604)"> | |||||
| transform="translate(0,-1.5878963)"> | |||||
| <ellipse | <ellipse | ||||
| style="display:inline;fill:#e83351;fill-opacity:1;stroke:none;stroke-width:1.43382859;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| style="display:inline;fill:#e83351;fill-opacity:1;stroke:none;stroke-width:0.56545079;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | id="path821-6" | ||||
| cx="10.028528" | |||||
| cy="-0.46119985" | |||||
| rx="10.018121" | |||||
| ry="10.018414" /> | |||||
| cx="3.9611967" | |||||
| cy="5.6063094" | |||||
| rx="3.9507892" | |||||
| ry="3.9509046" /> | |||||
| <g | <g | ||||
| transform="matrix(1.8116759,0,0,1.7907501,-90.300547,-165.62678)" | |||||
| transform="matrix(0.71446024,0,0,0.70620786,-35.605007,-59.529094)" | |||||
| id="layer1-9" | id="layer1-9" | ||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| style="fill:#f3f3f3;fill-opacity:1"> | style="fill:#f3f3f3;fill-opacity:1"> | ||||
| @@ -470,8 +471,8 @@ | |||||
| id="path47006" /> | id="path47006" /> | ||||
| </g> | </g> | ||||
| <path | <path | ||||
| style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.87772757;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 10.127907,-0.45742148 V -8.7304144" | |||||
| style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34614441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 4.0003879,5.6077995 V 2.3452266" | |||||
| id="path4695" | id="path4695" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| </g> | </g> | ||||
| @@ -9,13 +9,13 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="20mm" | |||||
| height="20mm" | |||||
| viewBox="0 0 20 20" | |||||
| width="10" | |||||
| height="10" | |||||
| viewBox="0 0 2.6458332 2.6458332" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg16908" | id="svg16908" | ||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | ||||
| sodipodi:docname="FlatWSk.svg"> | |||||
| sodipodi:docname="FlatS.svg"> | |||||
| <defs | <defs | ||||
| id="defs16902"> | id="defs16902"> | ||||
| <inkscape:path-effect | <inkscape:path-effect | ||||
| @@ -402,9 +402,9 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="1.6739121" | |||||
| inkscape:cx="26.544952" | |||||
| inkscape:cy="8.5969557" | |||||
| inkscape:zoom="29.846366" | |||||
| inkscape:cx="6.8720435" | |||||
| inkscape:cy="6.3216552" | |||||
| inkscape:document-units="px" | inkscape:document-units="px" | ||||
| inkscape:current-layer="layer2" | inkscape:current-layer="layer2" | ||||
| showgrid="true" | showgrid="true" | ||||
| @@ -412,13 +412,15 @@ | |||||
| fit-margin-left="0" | fit-margin-left="0" | ||||
| fit-margin-right="0" | fit-margin-right="0" | ||||
| fit-margin-bottom="0" | fit-margin-bottom="0" | ||||
| inkscape:window-width="858" | |||||
| inkscape:window-height="890" | |||||
| inkscape:window-width="1242" | |||||
| inkscape:window-height="918" | |||||
| inkscape:window-x="0" | inkscape:window-x="0" | ||||
| inkscape:window-y="18" | inkscape:window-y="18" | ||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| inkscape:snap-grids="false" | inkscape:snap-grids="false" | ||||
| showguides="false"> | |||||
| showguides="false" | |||||
| units="px" | |||||
| inkscape:pagecheckerboard="true"> | |||||
| <inkscape:grid | <inkscape:grid | ||||
| type="xygrid" | type="xygrid" | ||||
| id="grid823" /> | id="grid823" /> | ||||
| @@ -431,7 +433,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -439,23 +441,23 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-230.09585,-112.75783)" | |||||
| transform="translate(-230.09585,-130.11199)" | |||||
| style="display:none" /> | style="display:none" /> | ||||
| <g | <g | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer2" | id="layer2" | ||||
| inkscape:label="Layer 2" | inkscape:label="Layer 2" | ||||
| style="display:inline" | style="display:inline" | ||||
| transform="translate(0,10.474604)"> | |||||
| transform="translate(0,-6.8795647)"> | |||||
| <ellipse | <ellipse | ||||
| style="display:inline;fill:#9ce2d9;fill-opacity:1;stroke:none;stroke-width:1.43382859;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| style="display:inline;fill:#9ce2d9;fill-opacity:1;stroke:none;stroke-width:0.18894145;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | id="path821-6" | ||||
| cx="10.028528" | |||||
| cy="-0.46119985" | |||||
| rx="10.018121" | |||||
| ry="10.018414" /> | |||||
| cx="1.3305361" | |||||
| cy="8.2370462" | |||||
| rx="1.3201287" | |||||
| ry="1.3201672" /> | |||||
| <g | <g | ||||
| transform="matrix(1.8116759,0,0,1.7907501,-90.300547,-165.62678)" | |||||
| transform="matrix(0.23873194,0,0,0.23597445,-11.890236,-13.527496)" | |||||
| id="layer1-9" | id="layer1-9" | ||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| style="fill:#f3f3f3;fill-opacity:1"> | style="fill:#f3f3f3;fill-opacity:1"> | ||||
| @@ -476,8 +478,8 @@ | |||||
| id="path47006" /> | id="path47006" /> | ||||
| </g> | </g> | ||||
| <path | <path | ||||
| style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.87772757;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 10.127907,-0.45742148 V -8.7304144" | |||||
| style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.11566175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 1.3436317,8.2375443 V 7.1473782" | |||||
| id="path4695" | id="path4695" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| </g> | </g> | ||||
| @@ -0,0 +1,123 @@ | |||||
| <?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="45" | |||||
| height="45" | |||||
| viewBox="0 0 11.906249 11.906249" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="LRoundBlu.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="5.2414003" | |||||
| inkscape:cx="-36.957413" | |||||
| inkscape:cy="-1.9695351" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer2" | |||||
| showgrid="true" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1920" | |||||
| inkscape:window-height="1017" | |||||
| inkscape:window-x="-8" | |||||
| inkscape:window-y="-8" | |||||
| inkscape:window-maximized="1" | |||||
| inkscape:snap-grids="false" | |||||
| showguides="false" | |||||
| units="px"> | |||||
| <inkscape:grid | |||||
| type="xygrid" | |||||
| id="grid823" /> | |||||
| </sodipodi:namedview> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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></dc:title> | |||||
| </cc:Work> | |||||
| </rdf:RDF> | |||||
| </metadata> | |||||
| <g | |||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-230.09585,-120.85159)" | |||||
| style="display:inline"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.02677645,0.31375336,0.30918119,-0.02717243,-530.91204,-221.4682)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="translate(1332.2646,2366.2998)" | |||||
| id="g6443" | |||||
| style="stroke:#393939;stroke-width:1.33306408;stroke-miterlimit:4;stroke-dasharray:10.66451237, 5.33225618;stroke-dashoffset:13.06402779;stroke-opacity:1"> | |||||
| <path | |||||
| style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.98999999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#393939;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33306408;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.66451237, 5.33225618;stroke-dashoffset:13.06402779;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" | |||||
| d="m -36.121865,1.5070325 -0.01072,-1.75366142 -9.19e-4,-0.0332479 0.0031,-0.031639 0.161016,-1.76265348 0.003,-0.033585 0.0051,-0.031808 0.337827,-1.7583616 0.007,-0.031976 0.009,-0.032145 0.21149,-0.7044686 0.189809,-0.6378964 1.277908,0.3813969 -0.191756,0.6380651 -0.198788,0.670041 -0.324435,1.6866263 -0.157783,1.7094417 0.01278,1.6868287 0.173777,1.6670041 0.332324,1.6415106 0.320685,1.0543878 0.192494,0.6381148 -1.273946,0.3887113 -0.19444,-0.6379463 -0.329051,-1.0830699 -0.0085,-0.030628 -0.0066,-0.030796 -0.345668,-1.7050493 -0.0066,-0.030796 -0.0027,-0.031134 -0.181789,-1.7368859 -0.0027,-0.031133 z m 4.049212,8.3634577 0.367728,0.5562838 0.246474,0.378583 1.065067,1.319275 1.197584,1.219578 1.314288,1.095766 1.459923,0.989052 1.575111,0.847727 1.059451,0.439524 0.616216,0.256383 -0.510986,1.230317 -0.616047,-0.254436 -1.100223,-0.457559 -0.03054,-0.01304 -0.0307,-0.01498 -1.628736,-0.878371 -0.02893,-0.0171 -0.0291,-0.01905 -1.503649,-1.018592 -0.02698,-0.01727 -0.02537,-0.02133 -1.375605,-1.147308 -0.02537,-0.02133 -0.0236,-0.02344 -1.238431,-1.261131 -0.02359,-0.02344 -0.01987,-0.02573 -1.102527,-1.367001 -0.0197,-0.02378 -0.01809,-0.02784 -0.270744,-0.409809 -0.365781,-0.556452 z m 0.07142,-21.1102772 0.921495,-1.08551 0.02133,-0.02537 0.02539,-0.02376 1.271702,-1.229544 0.02361,-0.02165 0.02573,-0.01987 1.375796,-1.091526 0.02572,-0.01987 0.02606,-0.01598 1.466774,-0.946491 0.02589,-0.01793 0.03012,-0.01437 1.5443,-0.79833 0.02801,-0.01615 0.02851,-0.01031 1.612265,-0.647382 0.02835,-0.01226 0.03063,-0.0085 0.476089,-0.139254 0.640397,-0.18877 0.375427,1.279018 -0.638619,0.186656 -0.449185,0.133002 -1.545845,0.622026 -1.495561,0.772545 -1.412873,0.912416 -1.320791,1.047554 -1.219486,1.176011 -0.903554,1.066312 -0.432396,0.5079515 -1.015735,-0.8628435 z m 12.525334,29.066754 0.662137,0.06224 0.656298,0.06275 1.705016,-0.0065 1.669287,-0.170052 1.638125,-0.326151 1.623968,-0.4896 0.01151,-0.003 1.5147121,-0.61933 1.0839157,-0.568297 0.5887495,-0.309765 0.6197002,1.179445 -0.5906956,0.309935 -1.1062537,0.581994 -0.028177,0.0142 -0.030291,0.01242 -1.6076982,0.654829 -0.02834,0.01226 -0.03063,0.0085 -1.662212,0.500755 -0.03046,0.01048 -0.03097,0.0046 -1.705554,0.339832 -0.0308,0.0066 -0.03291,0.0048 -1.735613,0.173838 -0.03291,0.0048 -0.03147,-0.0012 -1.755944,0.007 -0.0313,7.5e-4 -0.03358,-0.003 -0.699614,-0.06488 -0.664251,-0.06402 z m 1.227117,-36.084192 0.666642,0.0011 1.146911,6.54e-4 0.03147,0.0012 0.03358,0.003 1.759941,0.174974 0.03359,0.003 0.03198,0.007 1.753872,0.3539 0.03392,0.0069 0.03214,0.009 1.736128,0.533836 0.03231,0.01093 0.03054,0.01304 1.7051003,0.718843 0.030536,0.01304 0.028927,0.0171 1.6256869,0.888438 0.028759,0.01515 0.029095,0.01904 0.3626746,0.248934 0.5502707,0.377759 -0.7537403,1.098426 -0.5501021,-0.375813 -0.3459281,-0.23666 -1.5434717,-0.844586 -1.6463123,-0.696488 -1.685628,-0.516645 -1.684083,-0.340339 -1.686934,-0.169534 -1.123562,-0.0027 -0.666641,-0.0011 z m 13.4052803,30.919616 0.2837582,-0.277472 1.1069352,-1.321138 0.9861717,-1.4479091 0.851956,-1.5715561 0.68531922,-1.639463 0.50970364,-1.6752252 0.208736,-1.0531876 0.12958087,-0.6542452 1.30849047,0.2591618 -0.1295809,0.6542452 -0.21704063,1.0931155 -0.007033,0.031976 -0.008979,0.032145 -0.52977555,1.737737 -0.0109246,0.032313 -0.013039,0.030536 -0.71461466,1.7086549 -0.013039,0.030536 -0.0151534,0.028758 -0.88437696,1.6272958 -0.015153,0.02876 -0.019045,0.02909 -1.0228216,1.500095 -0.019045,0.0291 -0.021328,0.02537 -1.1497595,1.369935 -0.021328,0.02537 -0.023442,0.0236 -0.3036458,0.296838 -0.4773021,0.46479 -0.9313587,-0.95249 z m 1.4397322,-24.755604 0.4157918,0.522715 0.8467211,1.061763 0.019703,0.02378 0.018095,0.02784 0.950046,1.4625447 0.018094,0.02784 0.014203,0.028176 0.80205409,1.5420168 0.0161487,0.028008 0.0124255,0.030291 0.65093677,1.608036 0.0104797,0.030459 0.0104797,0.030459 0.49491668,1.6627173 0.008534,0.030628 0.006588,0.030796 0.33593956,1.7058919 0.00481,0.032911 0.00464,0.030965 0.058752,0.6104887 0.065248,0.66285779 -1.32571575,0.13049632 -0.06524816,-0.66285781 -0.05783335,-0.5772409 -0.32276365,-1.644299 -0.47573467,-1.5996841 -0.62836872,-1.5511774 -0.7760998,-1.4913329 -0.9161398,-1.4105895 -0.8226205,-1.0324829 -0.4156233,-0.52077 z" | |||||
| id="path830" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1,0,0,0.89360324,1314.8633,2382.2996)" | |||||
| id="g6451" | |||||
| style="fill:#000000;stroke-width:1.33335185" /> | |||||
| </g> | |||||
| </g> | |||||
| <g | |||||
| inkscape:groupmode="layer" | |||||
| id="layer2" | |||||
| inkscape:label="Layer 2" | |||||
| style="display:inline" | |||||
| transform="translate(0,2.380853)"> | |||||
| <ellipse | |||||
| style="fill:#3e4be4;fill-opacity:1;stroke:#393939;stroke-width:0.35010242;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path821" | |||||
| cx="5.9689016" | |||||
| cy="3.5465229" | |||||
| rx="4.8220005" | |||||
| ry="4.8652225" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.39527428" | |||||
| d="m 6.1713161,-1.1854015 c -0.064576,-0.011943 -0.1301455,-0.018311 -0.198033,-0.018311 -0.068218,0 -0.133788,0.00638 -0.198033,0.018311 v 4.8185396 h 0.396066 z" /> | |||||
| <ellipse | |||||
| style="display:inline;fill:#000000;fill-opacity:0;stroke:#393939;stroke-width:0.55056494;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | |||||
| cx="5.9689016" | |||||
| cy="3.5465229" | |||||
| rx="5.1742706" | |||||
| ry="5.2348886" /> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -0,0 +1,123 @@ | |||||
| <?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="45" | |||||
| height="45" | |||||
| viewBox="0 0 11.906249 11.906249" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="LRoundWhy.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="8.7245499" | |||||
| inkscape:cx="33.699585" | |||||
| inkscape:cy="27.578094" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer2" | |||||
| showgrid="true" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1920" | |||||
| inkscape:window-height="1017" | |||||
| inkscape:window-x="1912" | |||||
| inkscape:window-y="-8" | |||||
| inkscape:window-maximized="1" | |||||
| inkscape:snap-grids="false" | |||||
| showguides="false" | |||||
| units="px"> | |||||
| <inkscape:grid | |||||
| type="xygrid" | |||||
| id="grid823" /> | |||||
| </sodipodi:namedview> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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></dc:title> | |||||
| </cc:Work> | |||||
| </rdf:RDF> | |||||
| </metadata> | |||||
| <g | |||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-230.09585,-120.85159)" | |||||
| style="display:inline"> | |||||
| <g | |||||
| id="g2012" | |||||
| transform="matrix(0.02677645,0.31375336,0.30918119,-0.02717243,-530.91204,-221.4682)" | |||||
| style="stroke-width:1.33335185"> | |||||
| <g | |||||
| transform="translate(1332.2646,2366.2998)" | |||||
| id="g6443" | |||||
| style="stroke:#393939;stroke-width:1.33306408;stroke-miterlimit:4;stroke-dasharray:10.66451237, 5.33225618;stroke-dashoffset:13.06402779;stroke-opacity:1"> | |||||
| <path | |||||
| style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.98999999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#393939;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33306408;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.66451237, 5.33225618;stroke-dashoffset:13.06402779;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" | |||||
| d="m -36.121865,1.5070325 -0.01072,-1.75366142 -9.19e-4,-0.0332479 0.0031,-0.031639 0.161016,-1.76265348 0.003,-0.033585 0.0051,-0.031808 0.337827,-1.7583616 0.007,-0.031976 0.009,-0.032145 0.21149,-0.7044686 0.189809,-0.6378964 1.277908,0.3813969 -0.191756,0.6380651 -0.198788,0.670041 -0.324435,1.6866263 -0.157783,1.7094417 0.01278,1.6868287 0.173777,1.6670041 0.332324,1.6415106 0.320685,1.0543878 0.192494,0.6381148 -1.273946,0.3887113 -0.19444,-0.6379463 -0.329051,-1.0830699 -0.0085,-0.030628 -0.0066,-0.030796 -0.345668,-1.7050493 -0.0066,-0.030796 -0.0027,-0.031134 -0.181789,-1.7368859 -0.0027,-0.031133 z m 4.049212,8.3634577 0.367728,0.5562838 0.246474,0.378583 1.065067,1.319275 1.197584,1.219578 1.314288,1.095766 1.459923,0.989052 1.575111,0.847727 1.059451,0.439524 0.616216,0.256383 -0.510986,1.230317 -0.616047,-0.254436 -1.100223,-0.457559 -0.03054,-0.01304 -0.0307,-0.01498 -1.628736,-0.878371 -0.02893,-0.0171 -0.0291,-0.01905 -1.503649,-1.018592 -0.02698,-0.01727 -0.02537,-0.02133 -1.375605,-1.147308 -0.02537,-0.02133 -0.0236,-0.02344 -1.238431,-1.261131 -0.02359,-0.02344 -0.01987,-0.02573 -1.102527,-1.367001 -0.0197,-0.02378 -0.01809,-0.02784 -0.270744,-0.409809 -0.365781,-0.556452 z m 0.07142,-21.1102772 0.921495,-1.08551 0.02133,-0.02537 0.02539,-0.02376 1.271702,-1.229544 0.02361,-0.02165 0.02573,-0.01987 1.375796,-1.091526 0.02572,-0.01987 0.02606,-0.01598 1.466774,-0.946491 0.02589,-0.01793 0.03012,-0.01437 1.5443,-0.79833 0.02801,-0.01615 0.02851,-0.01031 1.612265,-0.647382 0.02835,-0.01226 0.03063,-0.0085 0.476089,-0.139254 0.640397,-0.18877 0.375427,1.279018 -0.638619,0.186656 -0.449185,0.133002 -1.545845,0.622026 -1.495561,0.772545 -1.412873,0.912416 -1.320791,1.047554 -1.219486,1.176011 -0.903554,1.066312 -0.432396,0.5079515 -1.015735,-0.8628435 z m 12.525334,29.066754 0.662137,0.06224 0.656298,0.06275 1.705016,-0.0065 1.669287,-0.170052 1.638125,-0.326151 1.623968,-0.4896 0.01151,-0.003 1.5147121,-0.61933 1.0839157,-0.568297 0.5887495,-0.309765 0.6197002,1.179445 -0.5906956,0.309935 -1.1062537,0.581994 -0.028177,0.0142 -0.030291,0.01242 -1.6076982,0.654829 -0.02834,0.01226 -0.03063,0.0085 -1.662212,0.500755 -0.03046,0.01048 -0.03097,0.0046 -1.705554,0.339832 -0.0308,0.0066 -0.03291,0.0048 -1.735613,0.173838 -0.03291,0.0048 -0.03147,-0.0012 -1.755944,0.007 -0.0313,7.5e-4 -0.03358,-0.003 -0.699614,-0.06488 -0.664251,-0.06402 z m 1.227117,-36.084192 0.666642,0.0011 1.146911,6.54e-4 0.03147,0.0012 0.03358,0.003 1.759941,0.174974 0.03359,0.003 0.03198,0.007 1.753872,0.3539 0.03392,0.0069 0.03214,0.009 1.736128,0.533836 0.03231,0.01093 0.03054,0.01304 1.7051003,0.718843 0.030536,0.01304 0.028927,0.0171 1.6256869,0.888438 0.028759,0.01515 0.029095,0.01904 0.3626746,0.248934 0.5502707,0.377759 -0.7537403,1.098426 -0.5501021,-0.375813 -0.3459281,-0.23666 -1.5434717,-0.844586 -1.6463123,-0.696488 -1.685628,-0.516645 -1.684083,-0.340339 -1.686934,-0.169534 -1.123562,-0.0027 -0.666641,-0.0011 z m 13.4052803,30.919616 0.2837582,-0.277472 1.1069352,-1.321138 0.9861717,-1.4479091 0.851956,-1.5715561 0.68531922,-1.639463 0.50970364,-1.6752252 0.208736,-1.0531876 0.12958087,-0.6542452 1.30849047,0.2591618 -0.1295809,0.6542452 -0.21704063,1.0931155 -0.007033,0.031976 -0.008979,0.032145 -0.52977555,1.737737 -0.0109246,0.032313 -0.013039,0.030536 -0.71461466,1.7086549 -0.013039,0.030536 -0.0151534,0.028758 -0.88437696,1.6272958 -0.015153,0.02876 -0.019045,0.02909 -1.0228216,1.500095 -0.019045,0.0291 -0.021328,0.02537 -1.1497595,1.369935 -0.021328,0.02537 -0.023442,0.0236 -0.3036458,0.296838 -0.4773021,0.46479 -0.9313587,-0.95249 z m 1.4397322,-24.755604 0.4157918,0.522715 0.8467211,1.061763 0.019703,0.02378 0.018095,0.02784 0.950046,1.4625447 0.018094,0.02784 0.014203,0.028176 0.80205409,1.5420168 0.0161487,0.028008 0.0124255,0.030291 0.65093677,1.608036 0.0104797,0.030459 0.0104797,0.030459 0.49491668,1.6627173 0.008534,0.030628 0.006588,0.030796 0.33593956,1.7058919 0.00481,0.032911 0.00464,0.030965 0.058752,0.6104887 0.065248,0.66285779 -1.32571575,0.13049632 -0.06524816,-0.66285781 -0.05783335,-0.5772409 -0.32276365,-1.644299 -0.47573467,-1.5996841 -0.62836872,-1.5511774 -0.7760998,-1.4913329 -0.9161398,-1.4105895 -0.8226205,-1.0324829 -0.4156233,-0.52077 z" | |||||
| id="path830" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | |||||
| <g | |||||
| transform="matrix(1,0,0,0.89360324,1314.8633,2382.2996)" | |||||
| id="g6451" | |||||
| style="fill:#000000;stroke-width:1.33335185" /> | |||||
| </g> | |||||
| </g> | |||||
| <g | |||||
| inkscape:groupmode="layer" | |||||
| id="layer2" | |||||
| inkscape:label="Layer 2" | |||||
| style="display:inline" | |||||
| transform="translate(0,2.380853)"> | |||||
| <ellipse | |||||
| style="fill:#ffffff;fill-opacity:1;stroke:#393939;stroke-width:0.35010242;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path821" | |||||
| cx="5.9689016" | |||||
| cy="3.5465229" | |||||
| rx="4.8220005" | |||||
| ry="4.8652225" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6453" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.39527428" | |||||
| d="m 6.1713161,-1.1854015 c -0.064576,-0.011943 -0.1301455,-0.018311 -0.198033,-0.018311 -0.068218,0 -0.133788,0.00638 -0.198033,0.018311 v 4.8185396 h 0.396066 z" /> | |||||
| <ellipse | |||||
| style="display:inline;fill:#000000;fill-opacity:0;stroke:#393939;stroke-width:0.55056494;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | |||||
| cx="5.9689016" | |||||
| cy="3.5465229" | |||||
| rx="5.1742706" | |||||
| ry="5.2348886" /> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -1,6 +1,4 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
| <svg | <svg | ||||
| xmlns:dc="http://purl.org/dc/elements/1.1/" | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
| xmlns:cc="http://creativecommons.org/ns#" | xmlns:cc="http://creativecommons.org/ns#" | ||||
| @@ -9,112 +7,94 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="6" | |||||
| height="15" | |||||
| viewBox="0 0 1.5875 3.9687501" | |||||
| width="10" | |||||
| height="20" | |||||
| viewBox="0 0 10 20" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg56722" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="MCKSSS_0.svg"> | |||||
| <defs | |||||
| id="defs56716" /> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="22.4" | |||||
| inkscape:cx="-5.6109902" | |||||
| inkscape:cy="12.134597" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | |||||
| showgrid="true" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1920" | |||||
| inkscape:window-height="1017" | |||||
| inkscape:window-x="1912" | |||||
| inkscape:window-y="-8" | |||||
| inkscape:window-maximized="1" | |||||
| units="px" | |||||
| inkscape:snap-grids="false"> | |||||
| <inkscape:grid | |||||
| type="xygrid" | |||||
| id="grid823" /> | |||||
| </sodipodi:namedview> | |||||
| id="svg6" | |||||
| sodipodi:docname="MCKSSS_0.svg" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | |||||
| <metadata | <metadata | ||||
| id="metadata56719"> | |||||
| id="metadata12"> | |||||
| <rdf:RDF> | <rdf:RDF> | ||||
| <cc:Work | <cc:Work | ||||
| rdf:about=""> | rdf:about=""> | ||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title></dc:title> | |||||
| <dc:title /> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| <defs | |||||
| id="defs10" /> | |||||
| <sodipodi:namedview | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1" | |||||
| objecttolerance="10" | |||||
| gridtolerance="10" | |||||
| guidetolerance="10" | |||||
| inkscape:pageopacity="0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:window-width="1480" | |||||
| inkscape:window-height="834" | |||||
| id="namedview8" | |||||
| showgrid="false" | |||||
| inkscape:zoom="15.80966" | |||||
| inkscape:cx="0.91872205" | |||||
| inkscape:cy="6.7567209" | |||||
| inkscape:window-x="137" | |||||
| inkscape:window-y="46" | |||||
| inkscape:window-maximized="0" | |||||
| inkscape:current-layer="moDllzSwitchH_0" /> | |||||
| <g | <g | ||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-35.423779,-64.83175)"> | |||||
| id="Page-1" | |||||
| style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1" | |||||
| transform="matrix(1,0,0,0.66551127,0,0.03466185)"> | |||||
| <g | <g | ||||
| transform="matrix(0.11820671,0,0,-0.19994136,-57.192093,298.52136)" | |||||
| id="g56714" | |||||
| style="stroke-width:1.2817142"> | |||||
| <path | |||||
| d="m 783.5078,1167.3652 c 0,0.779 0.639,1.418 1.418,1.418 h 10.622 c 0.779,0 1.418,-0.639 1.418,-1.418 v -17.007 c 0,-0.779 -0.639,-1.417 -1.418,-1.417 h -10.622 c -0.779,0 -1.418,0.638 -1.418,1.417 z" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| id="path5785" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <g | |||||
| style="fill:#282828;fill-opacity:1;stroke-width:1.2817142" | |||||
| id="g5795"> | |||||
| <g | |||||
| style="fill:#282828;fill-opacity:1;stroke-width:1.2817142" | |||||
| id="g5797"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5805" | |||||
| style="fill:#282828;fill-opacity:1;stroke:none;stroke-width:1.2817142" | |||||
| d="m 785.616,1167.502 c -0.468,0 -0.85,-0.382 -0.85,-0.85 v 0 -15.724 c 0,-0.468 0.382,-0.851 0.85,-0.851 v 0 h 9.241 c 0.466,0 0.849,0.383 0.849,0.851 v 0 15.724 c 0,0.468 -0.383,0.85 -0.849,0.85 v 0 z" /> | |||||
| </g> | |||||
| </g> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5815" | |||||
| style="fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 784.767,1158.581 h 10.94 v -8.504 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5817" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 784.767,1154.797 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5819" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 784.767,1151.013 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5821" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 784.767,1152.904 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5823" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 784.767,1156.689 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5825" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 784.767,1158.581 h 10.94 v -0.936 h -10.94 z" /> | |||||
| id="moDllzSwitchH_0"> | |||||
| <rect | |||||
| style="fill:#222222;fill-rule:evenodd;stroke:none;stroke-width:1.06787801" | |||||
| id="hole-4" | |||||
| x="-30.28513" | |||||
| y="0.66415089" | |||||
| width="30.439369" | |||||
| height="8.9912233" | |||||
| rx="6.3415351" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="fill:#cccccc;fill-rule:evenodd;stroke:#666666;stroke-width:1.03467059" | |||||
| id="led" | |||||
| cx="-24.07736" | |||||
| cy="5.1379118" | |||||
| rx="5.32689" | |||||
| ry="3.545105" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="opacity:0.6;fill:#dddddd;fill-rule:evenodd;stroke:none;stroke-width:1.03467059" | |||||
| id="hi" | |||||
| cx="-24.07736" | |||||
| cy="5.1379118" | |||||
| transform="rotate(-90)" | |||||
| rx="3.1707675" | |||||
| ry="2.1101816" /> | |||||
| <ellipse | |||||
| style="opacity:0.8;fill:#eeeeee;fill-rule:evenodd;stroke:none;stroke-width:1.03467059" | |||||
| id="circle5" | |||||
| cx="-25.345665" | |||||
| cy="5.1379118" | |||||
| rx="1.9024606" | |||||
| ry="1.2661089" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="opacity:1;fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:1.03467059" | |||||
| id="circle7" | |||||
| cx="-22.174898" | |||||
| cy="5.1379118" | |||||
| rx="0.95123029" | |||||
| ry="0.63305444" | |||||
| transform="rotate(-90)" /> | |||||
| </g> | </g> | ||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -1,6 +1,4 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
| <svg | <svg | ||||
| xmlns:dc="http://purl.org/dc/elements/1.1/" | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
| xmlns:cc="http://creativecommons.org/ns#" | xmlns:cc="http://creativecommons.org/ns#" | ||||
| @@ -9,112 +7,94 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="6" | |||||
| height="15" | |||||
| viewBox="0 0 1.5875 3.9687501" | |||||
| width="10" | |||||
| height="20" | |||||
| viewBox="0 0 10 20" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg56722" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="MCKSSS_1a.svg"> | |||||
| <defs | |||||
| id="defs56716" /> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="31.678384" | |||||
| inkscape:cx="-2.7566469" | |||||
| inkscape:cy="8.1603788" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:current-layer="g56702" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="2077" | |||||
| inkscape:window-y="142" | |||||
| inkscape:window-maximized="0" | |||||
| units="px" /> | |||||
| id="svg6" | |||||
| sodipodi:docname="MCKSSS_1.svg" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | |||||
| <metadata | <metadata | ||||
| id="metadata56719"> | |||||
| id="metadata12"> | |||||
| <rdf:RDF> | <rdf:RDF> | ||||
| <cc:Work | <cc:Work | ||||
| rdf:about=""> | rdf:about=""> | ||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title></dc:title> | |||||
| <dc:title /> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| <defs | |||||
| id="defs10" /> | |||||
| <sodipodi:namedview | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1" | |||||
| objecttolerance="10" | |||||
| gridtolerance="10" | |||||
| guidetolerance="10" | |||||
| inkscape:pageopacity="0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:window-width="1412" | |||||
| inkscape:window-height="853" | |||||
| id="namedview8" | |||||
| showgrid="false" | |||||
| inkscape:zoom="17.540687" | |||||
| inkscape:cx="-1.9842157" | |||||
| inkscape:cy="5.6701352" | |||||
| inkscape:window-x="933" | |||||
| inkscape:window-y="34" | |||||
| inkscape:window-maximized="0" | |||||
| inkscape:current-layer="moDllzSwitchH_0" /> | |||||
| <g | <g | ||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-30.16787,-66.867)"> | |||||
| id="Page-1" | |||||
| style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1" | |||||
| transform="matrix(1,0,0,0.66525424,0,0.04237288)"> | |||||
| <g | <g | ||||
| transform="matrix(0.11906604,0,0,-0.19999202,-60.620909,300.61482)" | |||||
| id="g56702" | |||||
| style="stroke-width:1.2817142"> | |||||
| <g | |||||
| transform="translate(762.5078,1167.3652)" | |||||
| id="g5827" | |||||
| style="stroke-width:1.2817142"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5829" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="M 0,0 C 0,0.779 0.639,1.418 1.418,1.418 H 12.04 c 0.779,0 1.418,-0.639 1.418,-1.418 v -17.007 c 0,-0.779 -0.639,-1.417 -1.418,-1.417 H 1.418 C 0.639,-18.424 0,-17.786 0,-17.007 Z" /> | |||||
| </g> | |||||
| <g | |||||
| style="fill:#282828;fill-opacity:1;stroke-width:1.2817142" | |||||
| id="g5839"> | |||||
| <g | |||||
| style="fill:#282828;fill-opacity:1;stroke-width:1.2817142" | |||||
| id="g5841"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5849" | |||||
| style="fill:#282828;fill-opacity:1;stroke:none;stroke-width:1.2817142" | |||||
| d="m 764.617,1167.502 c -0.468,0 -0.852,-0.382 -0.852,-0.85 v 0 -15.724 c 0,-0.468 0.384,-0.851 0.852,-0.851 v 0 h 9.239 c 0.467,0 0.85,0.383 0.85,0.851 v 0 15.724 c 0,0.468 -0.383,0.85 -0.85,0.85 v 0 z" /> | |||||
| </g> | |||||
| </g> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5859" | |||||
| style="fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1163.5773 h 10.94 v -8.504 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5861" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1159.7933 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5863" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1156.0093 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5865" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1157.9003 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5867" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1161.6853 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5869" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1163.5773 h 10.94 v -0.936 h -10.94 z" /> | |||||
| id="moDllzSwitchH_0"> | |||||
| <rect | |||||
| style="fill:#222222;fill-rule:evenodd;stroke:none;stroke-width:1.06808424" | |||||
| id="hole-4" | |||||
| x="-30.439911" | |||||
| y="0.66437244" | |||||
| width="30.45113" | |||||
| height="8.9912233" | |||||
| rx="6.3439856" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="fill:#cccccc;fill-rule:evenodd;stroke:#666666;stroke-width:1.03487051" | |||||
| id="led" | |||||
| cx="-13.882891" | |||||
| cy="5.1381335" | |||||
| rx="5.328948" | |||||
| ry="3.545105" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="opacity:0.6;fill:#dddddd;fill-rule:evenodd;stroke:none;stroke-width:1.03487051" | |||||
| id="hi" | |||||
| cx="-13.882891" | |||||
| cy="5.1381335" | |||||
| transform="rotate(-90)" | |||||
| rx="3.1719928" | |||||
| ry="2.1101816" /> | |||||
| <ellipse | |||||
| style="opacity:0.8;fill:#eeeeee;fill-rule:evenodd;stroke:none;stroke-width:1.03487051" | |||||
| id="circle5" | |||||
| cx="-15.151685" | |||||
| cy="5.1381335" | |||||
| rx="1.9031956" | |||||
| ry="1.2661089" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="opacity:1;fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:1.03487051" | |||||
| id="circle7" | |||||
| cx="-11.979693" | |||||
| cy="5.1381335" | |||||
| rx="0.95159781" | |||||
| ry="0.63305444" | |||||
| transform="rotate(-90)" /> | |||||
| </g> | </g> | ||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -1,6 +1,4 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
| <svg | <svg | ||||
| xmlns:dc="http://purl.org/dc/elements/1.1/" | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
| xmlns:cc="http://creativecommons.org/ns#" | xmlns:cc="http://creativecommons.org/ns#" | ||||
| @@ -9,112 +7,94 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="6" | |||||
| height="15" | |||||
| viewBox="0 0 1.5875 3.9687501" | |||||
| width="10" | |||||
| height="20" | |||||
| viewBox="0 0 10 20" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg56722" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="MCKSSS_1.svg"> | |||||
| <defs | |||||
| id="defs56716" /> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="31.678384" | |||||
| inkscape:cx="-2.7566469" | |||||
| inkscape:cy="8.1603788" | |||||
| 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:window-width="1600" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="2077" | |||||
| inkscape:window-y="142" | |||||
| inkscape:window-maximized="0" | |||||
| units="px" /> | |||||
| id="svg6" | |||||
| sodipodi:docname="MCKSSS_2.svg" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | |||||
| <metadata | <metadata | ||||
| id="metadata56719"> | |||||
| id="metadata12"> | |||||
| <rdf:RDF> | <rdf:RDF> | ||||
| <cc:Work | <cc:Work | ||||
| rdf:about=""> | rdf:about=""> | ||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title></dc:title> | |||||
| <dc:title /> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| <defs | |||||
| id="defs10" /> | |||||
| <sodipodi:namedview | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1" | |||||
| objecttolerance="10" | |||||
| gridtolerance="10" | |||||
| guidetolerance="10" | |||||
| inkscape:pageopacity="0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:window-width="1506" | |||||
| inkscape:window-height="814" | |||||
| id="namedview8" | |||||
| showgrid="false" | |||||
| inkscape:zoom="19.981919" | |||||
| inkscape:cx="-3.0609974" | |||||
| inkscape:cy="10.77842" | |||||
| inkscape:window-x="248" | |||||
| inkscape:window-y="246" | |||||
| inkscape:window-maximized="0" | |||||
| inkscape:current-layer="moDllzSwitchH_0" /> | |||||
| <g | <g | ||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-30.16787,-66.867)"> | |||||
| id="Page-1" | |||||
| style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1" | |||||
| transform="matrix(1,0,0,0.66525424,0,0.04237288)"> | |||||
| <g | <g | ||||
| transform="matrix(0.11906604,0,0,-0.19999202,-60.620909,300.61482)" | |||||
| id="g56702" | |||||
| style="stroke-width:1.2817142"> | |||||
| <g | |||||
| transform="translate(762.5078,1167.3652)" | |||||
| id="g5827" | |||||
| style="stroke-width:1.2817142"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5829" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="M 0,0 C 0,0.779 0.639,1.418 1.418,1.418 H 12.04 c 0.779,0 1.418,-0.639 1.418,-1.418 v -17.007 c 0,-0.779 -0.639,-1.417 -1.418,-1.417 H 1.418 C 0.639,-18.424 0,-17.786 0,-17.007 Z" /> | |||||
| </g> | |||||
| <g | |||||
| style="fill:#282828;fill-opacity:1;stroke-width:1.2817142" | |||||
| id="g5839"> | |||||
| <g | |||||
| style="fill:#282828;fill-opacity:1;stroke-width:1.2817142" | |||||
| id="g5841"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5849" | |||||
| style="fill:#282828;fill-opacity:1;stroke:none;stroke-width:1.2817142" | |||||
| d="m 764.617,1167.502 c -0.468,0 -0.852,-0.382 -0.852,-0.85 v 0 -15.724 c 0,-0.468 0.384,-0.851 0.852,-0.851 v 0 h 9.239 c 0.467,0 0.85,0.383 0.85,0.851 v 0 15.724 c 0,0.468 -0.383,0.85 -0.85,0.85 v 0 z" /> | |||||
| </g> | |||||
| </g> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5859" | |||||
| style="fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1167.503 h 10.94 v -8.504 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5861" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1163.719 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5863" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1159.935 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5865" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1161.826 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5867" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1165.611 h 10.94 v -0.936 h -10.94 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path5869" | |||||
| style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2817142" | |||||
| d="m 763.767,1167.503 h 10.94 v -0.936 h -10.94 z" /> | |||||
| id="moDllzSwitchH_0"> | |||||
| <rect | |||||
| style="fill:#222222;stroke-width:1.06808424" | |||||
| id="hole-4" | |||||
| x="-30.342781" | |||||
| y="0.51906741" | |||||
| width="30.45113" | |||||
| height="8.9912233" | |||||
| rx="6.3439856" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="fill:#cccccc;stroke:#666666;stroke-width:1.03487051" | |||||
| id="led" | |||||
| cx="-6.0899501" | |||||
| cy="4.9928284" | |||||
| rx="5.328948" | |||||
| ry="3.545105" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="opacity:0.6;fill:#dddddd;stroke-width:1.03487051" | |||||
| id="hi" | |||||
| cx="-6.0899501" | |||||
| cy="4.9928284" | |||||
| rx="3.1719928" | |||||
| ry="2.1101816" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="opacity:0.8;fill:#eeeeee;stroke-width:1.03487051" | |||||
| id="circle5" | |||||
| cx="-7.3587441" | |||||
| cy="4.9928284" | |||||
| rx="1.9031956" | |||||
| ry="1.2661089" | |||||
| transform="rotate(-90)" /> | |||||
| <ellipse | |||||
| style="opacity:1;fill:#ffffff;stroke-width:1.03487051" | |||||
| id="circle7" | |||||
| cx="-4.1867523" | |||||
| cy="4.9928284" | |||||
| rx="0.95159781" | |||||
| ry="0.63305444" | |||||
| transform="rotate(-90)" /> | |||||
| </g> | </g> | ||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -9,9 +9,9 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="8.3556204mm" | |||||
| height="8.3556299mm" | |||||
| viewBox="0 0 8.3556203 8.3556298" | |||||
| width="26" | |||||
| height="26" | |||||
| viewBox="0 0 6.8791666 6.8791665" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg15246" | id="svg15246" | ||||
| sodipodi:docname="PJ301MA.svg" | sodipodi:docname="PJ301MA.svg" | ||||
| @@ -146,16 +146,16 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="7.7187105" | |||||
| inkscape:cx="-4.490289" | |||||
| inkscape:cy="-24.301521" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:zoom="7.7904062" | |||||
| inkscape:cx="7.1034477" | |||||
| inkscape:cy="-13.701213" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="false" | showgrid="false" | ||||
| inkscape:window-width="1148" | inkscape:window-width="1148" | ||||
| inkscape:window-height="1080" | inkscape:window-height="1080" | ||||
| inkscape:window-x="70" | |||||
| inkscape:window-y="15" | |||||
| inkscape:window-x="661" | |||||
| inkscape:window-y="378" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| units="px" | units="px" | ||||
| fit-margin-top="0" | fit-margin-top="0" | ||||
| @@ -170,7 +170,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -178,21 +178,21 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-88.611154,-119.19859)"> | |||||
| transform="translate(-88.611154,-120.67505)"> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7255" | |||||
| d="m 92.788964,127.42922 c -2.235179,0 -4.05281,-1.81762 -4.05281,-4.05282 0,-2.23516 1.817631,-4.05281 4.05281,-4.05281 2.235176,0 4.05281,1.81765 4.05281,4.05281 0,2.2352 -1.817634,4.05282 -4.05281,4.05282" | |||||
| style="fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:#7cb5a4;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261" | |||||
| d="m 92.056498,127.38399 c -1.806104,0 -3.275111,-1.46901 -3.275111,-3.27512 0,-1.8061 1.469007,-3.27509 3.275111,-3.27509 1.806106,0 3.275109,1.46899 3.275109,3.27509 0,1.80611 -1.469003,3.27512 -3.275109,3.27512" | |||||
| style="fill:#c2d8c3;fill-opacity:1;fill-rule:nonzero;stroke:#237b60;stroke-width:0.28052977;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7261" | |||||
| d="m 92.788964,126.29511 c -1.609548,0 -2.918685,-1.30916 -2.918685,-2.91871 0,-1.60954 1.309137,-2.91867 2.918685,-2.91867 1.609549,0 2.918682,1.30913 2.918682,2.91867 0,1.60955 -1.309133,2.91871 -2.918682,2.91871" | |||||
| style="fill:#b6d6cc;fill-opacity:1;fill-rule:nonzero;stroke:#7cb5a4;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261-6" | |||||
| d="m 92.056498,126.34769 c -1.23462,0 -2.238806,-1.00419 -2.238806,-2.23882 0,-1.23461 1.004186,-2.23879 2.238806,-2.23879 1.234621,0 2.238804,1.00418 2.238804,2.23879 0,1.23463 -1.004183,2.23882 -2.238804,2.23882" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#237b60;stroke-width:0.19176503;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7265" | id="path7265" | ||||
| d="m 94.588681,123.3764 c 0,0.99357 -0.806153,1.79974 -1.799717,1.79974 -0.993567,0 -1.79972,-0.80617 -1.79972,-1.79974 0,-0.99356 0.806153,-1.79969 1.79972,-1.79969 0.993564,0 1.799717,0.80613 1.799717,1.79969" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" /> | |||||
| d="m 93.564599,124.10887 c 0,0.83258 -0.675528,1.50812 -1.508101,1.50812 -0.832575,0 -1.508103,-0.67554 -1.508103,-1.50812 0,-0.83257 0.675528,-1.50808 1.508103,-1.50808 0.832573,0 1.508101,0.67551 1.508101,1.50808" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.29561555" /> | |||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -9,9 +9,9 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="8.3556204mm" | |||||
| height="8.3556299mm" | |||||
| viewBox="0 0 8.3556203 8.3556298" | |||||
| width="26" | |||||
| height="26" | |||||
| viewBox="0 0 6.8791666 6.8791665" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg15246" | id="svg15246" | ||||
| sodipodi:docname="PJ301MB.svg" | sodipodi:docname="PJ301MB.svg" | ||||
| @@ -146,16 +146,16 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="15.437421" | |||||
| inkscape:cx="17.647676" | |||||
| inkscape:cy="4.6666031" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:zoom="7.934896" | |||||
| inkscape:cx="7.1034477" | |||||
| inkscape:cy="-13.701213" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="false" | showgrid="false" | ||||
| inkscape:window-width="1148" | |||||
| inkscape:window-width="1160" | |||||
| inkscape:window-height="1080" | inkscape:window-height="1080" | ||||
| inkscape:window-x="566" | |||||
| inkscape:window-y="70" | |||||
| inkscape:window-x="672" | |||||
| inkscape:window-y="99" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| units="px" | units="px" | ||||
| fit-margin-top="0" | fit-margin-top="0" | ||||
| @@ -170,7 +170,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -178,21 +178,21 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-88.611154,-119.19859)"> | |||||
| transform="translate(-88.611154,-120.67505)"> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7255" | |||||
| d="m 92.788964,127.42922 c -2.235179,0 -4.05281,-1.81762 -4.05281,-4.05282 0,-2.23516 1.817631,-4.05281 4.05281,-4.05281 2.235176,0 4.05281,1.81765 4.05281,4.05281 0,2.2352 -1.817634,4.05282 -4.05281,4.05282" | |||||
| style="fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:#163142;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261" | |||||
| d="m 92.056498,127.38399 c -1.806104,0 -3.275111,-1.46901 -3.275111,-3.27512 0,-1.8061 1.469007,-3.27509 3.275111,-3.27509 1.806106,0 3.275109,1.46899 3.275109,3.27509 0,1.80611 -1.469003,3.27512 -3.275109,3.27512" | |||||
| style="fill:#92b5d1;fill-opacity:1;fill-rule:nonzero;stroke:#407097;stroke-width:0.28052977;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7261" | |||||
| d="m 92.788964,126.29511 c -1.609548,0 -2.918685,-1.30916 -2.918685,-2.91871 0,-1.60954 1.309137,-2.91867 2.918685,-2.91867 1.609549,0 2.918682,1.30913 2.918682,2.91867 0,1.60955 -1.309133,2.91871 -2.918682,2.91871" | |||||
| style="fill:#24506b;fill-opacity:1;fill-rule:nonzero;stroke:#163142;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261-6" | |||||
| d="m 92.056498,126.34769 c -1.23462,0 -2.238806,-1.00419 -2.238806,-2.23882 0,-1.23461 1.004186,-2.23879 2.238806,-2.23879 1.234621,0 2.238804,1.00418 2.238804,2.23879 0,1.23463 -1.004183,2.23882 -2.238804,2.23882" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#407097;stroke-width:0.19176503;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7265" | id="path7265" | ||||
| d="m 94.588681,123.3764 c 0,0.99357 -0.806153,1.79974 -1.799717,1.79974 -0.993567,0 -1.79972,-0.80617 -1.79972,-1.79974 0,-0.99356 0.806153,-1.79969 1.79972,-1.79969 0.993564,0 1.799717,0.80613 1.799717,1.79969" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" /> | |||||
| d="m 93.564599,124.10887 c 0,0.83258 -0.675528,1.50812 -1.508101,1.50812 -0.832575,0 -1.508103,-0.67554 -1.508103,-1.50812 0,-0.83257 0.675528,-1.50808 1.508103,-1.50808 0.832573,0 1.508101,0.67551 1.508101,1.50808" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.29561555" /> | |||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -9,9 +9,9 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="8.3556204mm" | |||||
| height="8.3556299mm" | |||||
| viewBox="0 0 8.3556203 8.3556298" | |||||
| width="26" | |||||
| height="26" | |||||
| viewBox="0 0 6.8791666 6.8791665" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg15246" | id="svg15246" | ||||
| sodipodi:docname="PJ301ML.svg" | sodipodi:docname="PJ301ML.svg" | ||||
| @@ -146,16 +146,16 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="11.2" | |||||
| inkscape:cx="1.2540944" | |||||
| inkscape:cy="5.9688197" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:zoom="7.7904062" | |||||
| inkscape:cx="7.1034477" | |||||
| inkscape:cy="-13.701213" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="false" | showgrid="false" | ||||
| inkscape:window-width="1148" | inkscape:window-width="1148" | ||||
| inkscape:window-height="1080" | inkscape:window-height="1080" | ||||
| inkscape:window-x="70" | |||||
| inkscape:window-y="15" | |||||
| inkscape:window-x="684" | |||||
| inkscape:window-y="99" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| units="px" | units="px" | ||||
| fit-margin-top="0" | fit-margin-top="0" | ||||
| @@ -178,21 +178,21 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-88.611154,-119.19859)"> | |||||
| transform="translate(-88.611154,-120.67505)"> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7255" | |||||
| d="m 92.788964,127.42922 c -2.235179,0 -4.05281,-1.81762 -4.05281,-4.05282 0,-2.23516 1.817631,-4.05281 4.05281,-4.05281 2.235176,0 4.05281,1.81765 4.05281,4.05281 0,2.2352 -1.817634,4.05282 -4.05281,4.05282" | |||||
| style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#636663;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261" | |||||
| d="m 92.056498,127.38399 c -1.806104,0 -3.275111,-1.46901 -3.275111,-3.27512 0,-1.8061 1.469007,-3.27509 3.275111,-3.27509 1.806106,0 3.275109,1.46899 3.275109,3.27509 0,1.80611 -1.469003,3.27512 -3.275109,3.27512" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#818181;stroke-width:0.28052977;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7261" | |||||
| d="m 92.788964,126.29511 c -1.609548,0 -2.918685,-1.30916 -2.918685,-2.91871 0,-1.60954 1.309137,-2.91867 2.918685,-2.91867 1.609549,0 2.918682,1.30913 2.918682,2.91867 0,1.60955 -1.309133,2.91871 -2.918682,2.91871" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#636663;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261-6" | |||||
| d="m 92.056498,126.34769 c -1.23462,0 -2.238806,-1.00419 -2.238806,-2.23882 0,-1.23461 1.004186,-2.23879 2.238806,-2.23879 1.234621,0 2.238804,1.00418 2.238804,2.23879 0,1.23463 -1.004183,2.23882 -2.238804,2.23882" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#818181;stroke-width:0.19176503;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7265" | id="path7265" | ||||
| d="m 94.588681,123.3764 c 0,0.99357 -0.806153,1.79974 -1.799717,1.79974 -0.993567,0 -1.79972,-0.80617 -1.79972,-1.79974 0,-0.99356 0.806153,-1.79969 1.79972,-1.79969 0.993564,0 1.799717,0.80613 1.799717,1.79969" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" /> | |||||
| d="m 93.564599,124.10887 c 0,0.83258 -0.675528,1.50812 -1.508101,1.50812 -0.832575,0 -1.508103,-0.67554 -1.508103,-1.50812 0,-0.83257 0.675528,-1.50808 1.508103,-1.50808 0.832573,0 1.508101,0.67551 1.508101,1.50808" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.29561555" /> | |||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -9,9 +9,9 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="8.3556204mm" | |||||
| height="8.3556299mm" | |||||
| viewBox="0 0 8.3556203 8.3556298" | |||||
| width="26" | |||||
| height="26" | |||||
| viewBox="0 0 6.8791666 6.8791665" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg15246" | id="svg15246" | ||||
| sodipodi:docname="PJ301MO.svg" | sodipodi:docname="PJ301MO.svg" | ||||
| @@ -146,16 +146,16 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="20.409375" | |||||
| inkscape:cx="15.839806" | |||||
| inkscape:cy="2.9252644" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:zoom="7.7904062" | |||||
| inkscape:cx="7.1034477" | |||||
| inkscape:cy="-13.701213" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="false" | showgrid="false" | ||||
| inkscape:window-width="1148" | inkscape:window-width="1148" | ||||
| inkscape:window-height="1080" | inkscape:window-height="1080" | ||||
| inkscape:window-x="70" | |||||
| inkscape:window-y="15" | |||||
| inkscape:window-x="684" | |||||
| inkscape:window-y="99" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| units="px" | units="px" | ||||
| fit-margin-top="0" | fit-margin-top="0" | ||||
| @@ -170,7 +170,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -178,21 +178,21 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-88.611154,-119.19859)"> | |||||
| transform="translate(-88.611154,-120.67505)"> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7255" | |||||
| d="m 92.788964,127.42922 c -2.235179,0 -4.05281,-1.81762 -4.05281,-4.05282 0,-2.23516 1.817631,-4.05281 4.05281,-4.05281 2.235176,0 4.05281,1.81765 4.05281,4.05281 0,2.2352 -1.817634,4.05282 -4.05281,4.05282" | |||||
| style="fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:#ffb340;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261" | |||||
| d="m 92.056498,127.38399 c -1.806104,0 -3.275111,-1.46901 -3.275111,-3.27512 0,-1.8061 1.469007,-3.27509 3.275111,-3.27509 1.806106,0 3.275109,1.46899 3.275109,3.27509 0,1.80611 -1.469003,3.27512 -3.275109,3.27512" | |||||
| style="fill:#ff8800;fill-opacity:1;fill-rule:nonzero;stroke:#944e00;stroke-width:0.28052977;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7261" | |||||
| d="m 92.788964,126.29511 c -1.609548,0 -2.918685,-1.30916 -2.918685,-2.91871 0,-1.60954 1.309137,-2.91867 2.918685,-2.91867 1.609549,0 2.918682,1.30913 2.918682,2.91867 0,1.60955 -1.309133,2.91871 -2.918682,2.91871" | |||||
| style="fill:#ffb340;fill-opacity:1;fill-rule:nonzero;stroke:#636663;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261-6" | |||||
| d="m 92.056498,126.34769 c -1.23462,0 -2.238806,-1.00419 -2.238806,-2.23882 0,-1.23461 1.004186,-2.23879 2.238806,-2.23879 1.234621,0 2.238804,1.00418 2.238804,2.23879 0,1.23463 -1.004183,2.23882 -2.238804,2.23882" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#944e00;stroke-width:0.19176503;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7265" | id="path7265" | ||||
| d="m 94.588681,123.3764 c 0,0.99357 -0.806153,1.79974 -1.799717,1.79974 -0.993567,0 -1.79972,-0.80617 -1.79972,-1.79974 0,-0.99356 0.806153,-1.79969 1.79972,-1.79969 0.993564,0 1.799717,0.80613 1.799717,1.79969" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" /> | |||||
| d="m 93.564599,124.10887 c 0,0.83258 -0.675528,1.50812 -1.508101,1.50812 -0.832575,0 -1.508103,-0.67554 -1.508103,-1.50812 0,-0.83257 0.675528,-1.50808 1.508103,-1.50808 0.832573,0 1.508101,0.67551 1.508101,1.50808" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.29561555" /> | |||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -9,9 +9,9 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="8.3556204mm" | |||||
| height="8.3556299mm" | |||||
| viewBox="0 0 8.3556203 8.3556298" | |||||
| width="26" | |||||
| height="26" | |||||
| viewBox="0 0 6.8791666 6.8791665" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg15246" | id="svg15246" | ||||
| sodipodi:docname="PJ301MR.svg" | sodipodi:docname="PJ301MR.svg" | ||||
| @@ -146,16 +146,16 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="18.002527" | |||||
| inkscape:cx="14.917473" | |||||
| inkscape:cy="0.65960658" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:zoom="7.934896" | |||||
| inkscape:cx="7.1034477" | |||||
| inkscape:cy="-13.701213" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="false" | showgrid="false" | ||||
| inkscape:window-width="1053" | |||||
| inkscape:window-width="1160" | |||||
| inkscape:window-height="1080" | inkscape:window-height="1080" | ||||
| inkscape:window-x="70" | |||||
| inkscape:window-y="15" | |||||
| inkscape:window-x="672" | |||||
| inkscape:window-y="99" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| units="px" | units="px" | ||||
| fit-margin-top="0" | fit-margin-top="0" | ||||
| @@ -170,7 +170,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -178,21 +178,21 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-88.611154,-119.19859)"> | |||||
| transform="translate(-88.611154,-120.67505)"> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7255" | |||||
| d="m 92.788964,127.42922 c -2.235179,0 -4.05281,-1.81762 -4.05281,-4.05282 0,-2.23516 1.817631,-4.05281 4.05281,-4.05281 2.235176,0 4.05281,1.81765 4.05281,4.05281 0,2.2352 -1.817634,4.05282 -4.05281,4.05282" | |||||
| style="fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:#ff4c40;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261" | |||||
| d="m 92.056498,127.38399 c -1.806104,0 -3.275111,-1.46901 -3.275111,-3.27512 0,-1.8061 1.469007,-3.27509 3.275111,-3.27509 1.806106,0 3.275109,1.46899 3.275109,3.27509 0,1.80611 -1.469003,3.27512 -3.275109,3.27512" | |||||
| style="fill:#d62957;fill-opacity:1;fill-rule:nonzero;stroke:#8a1a38;stroke-width:0.28052977;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7261" | |||||
| d="m 92.788964,126.29511 c -1.609548,0 -2.918685,-1.30916 -2.918685,-2.91871 0,-1.60954 1.309137,-2.91867 2.918685,-2.91867 1.609549,0 2.918682,1.30913 2.918682,2.91867 0,1.60955 -1.309133,2.91871 -2.918682,2.91871" | |||||
| style="fill:#ff4c40;fill-opacity:1;fill-rule:nonzero;stroke:#636663;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261-6" | |||||
| d="m 92.056498,126.34769 c -1.23462,0 -2.238806,-1.00419 -2.238806,-2.23882 0,-1.23461 1.004186,-2.23879 2.238806,-2.23879 1.234621,0 2.238804,1.00418 2.238804,2.23879 0,1.23463 -1.004183,2.23882 -2.238804,2.23882" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#8a1a38;stroke-width:0.19176503;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7265" | id="path7265" | ||||
| d="m 94.588681,123.3764 c 0,0.99357 -0.806153,1.79974 -1.799717,1.79974 -0.993567,0 -1.79972,-0.80617 -1.79972,-1.79974 0,-0.99356 0.806153,-1.79969 1.79972,-1.79969 0.993564,0 1.799717,0.80613 1.799717,1.79969" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" /> | |||||
| d="m 93.564599,124.10887 c 0,0.83258 -0.675528,1.50812 -1.508101,1.50812 -0.832575,0 -1.508103,-0.67554 -1.508103,-1.50812 0,-0.83257 0.675528,-1.50808 1.508103,-1.50808 0.832573,0 1.508101,0.67551 1.508101,1.50808" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.29561555" /> | |||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -9,13 +9,13 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="8.3556204mm" | |||||
| height="8.3556299mm" | |||||
| viewBox="0 0 8.3556203 8.3556298" | |||||
| width="26" | |||||
| height="26" | |||||
| viewBox="0 0 6.8791666 6.8791665" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg15246" | id="svg15246" | ||||
| sodipodi:docname="PJ301M.svg" | |||||
| inkscape:version="0.92.2 5c3e80d, 2017-08-06"> | |||||
| sodipodi:docname="PJ301MVA.svg" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | |||||
| <defs | <defs | ||||
| id="defs15240"> | id="defs15240"> | ||||
| <clipPath | <clipPath | ||||
| @@ -146,22 +146,28 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="11.2" | |||||
| inkscape:cx="15.763023" | |||||
| inkscape:cy="5.9688197" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:zoom="14.196189" | |||||
| inkscape:cx="14.836952" | |||||
| inkscape:cy="-2.4235774" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="false" | |||||
| inkscape:window-width="1274" | |||||
| inkscape:window-height="1434" | |||||
| inkscape:window-x="1280" | |||||
| inkscape:window-y="0" | |||||
| showgrid="true" | |||||
| inkscape:window-width="1148" | |||||
| inkscape:window-height="1080" | |||||
| inkscape:window-x="661" | |||||
| inkscape:window-y="378" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| units="px" | units="px" | ||||
| fit-margin-top="0" | fit-margin-top="0" | ||||
| fit-margin-left="0" | fit-margin-left="0" | ||||
| fit-margin-right="0" | fit-margin-right="0" | ||||
| fit-margin-bottom="0" /> | |||||
| fit-margin-bottom="0" | |||||
| inkscape:snap-grids="false" | |||||
| showguides="false"> | |||||
| <inkscape:grid | |||||
| type="xygrid" | |||||
| id="grid855" /> | |||||
| </sodipodi:namedview> | |||||
| <metadata | <metadata | ||||
| id="metadata15243"> | id="metadata15243"> | ||||
| <rdf:RDF> | <rdf:RDF> | ||||
| @@ -178,21 +184,30 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-88.611154,-119.19859)"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path7255" | |||||
| d="m 92.788964,127.42922 c -2.235179,0 -4.05281,-1.81762 -4.05281,-4.05282 0,-2.23516 1.817631,-4.05281 4.05281,-4.05281 2.235176,0 4.05281,1.81765 4.05281,4.05281 0,2.2352 -1.817634,4.05282 -4.05281,4.05282" | |||||
| style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#636663;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path7261" | |||||
| d="m 92.788964,126.29511 c -1.609548,0 -2.918685,-1.30916 -2.918685,-2.91871 0,-1.60954 1.309137,-2.91867 2.918685,-2.91867 1.609549,0 2.918682,1.30913 2.918682,2.91867 0,1.60955 -1.309133,2.91871 -2.918682,2.91871" | |||||
| style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#636663;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path7265" | |||||
| d="m 94.588681,123.3764 c 0,0.99357 -0.806153,1.79974 -1.799717,1.79974 -0.993567,0 -1.79972,-0.80617 -1.79972,-1.79974 0,-0.99356 0.806153,-1.79969 1.79972,-1.79969 0.993564,0 1.799717,0.80613 1.799717,1.79969" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" /> | |||||
| transform="translate(-88.611154,-120.67505)"> | |||||
| <g | |||||
| transform="matrix(0.24896704,0,0,0.24896704,88.57248,120.62278)" | |||||
| style="clip-rule:evenodd;fill-rule:evenodd;stroke-miterlimit:10" | |||||
| id="IOPortB_3_"> | |||||
| <g | |||||
| id="g6"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| d="M 5.311,22.794 C 4.229,20.928 3.16,19.037 2.09,17.175 -0.039,13.46 -0.039,14.582 2.092,10.863 3.174,8.971 4.253,7.062 5.334,5.17 7.469,1.452 6.5,2.014 10.772,2.021 c 2.136,0.004 4.298,0.008 6.431,0.014 4.266,-0.012 3.3,-0.575 5.429,3.141 1.078,1.896 2.176,3.788 3.271,5.689 2.125,3.719 2.122,2.578 -0.018,6.309 -1.07,1.871 -2.151,3.749 -3.217,5.621 -2.142,3.726 -1.166,3.154 -5.426,3.155 -2.175,0.007 -4.341,0.009 -6.521,0.009 -4.254,0 -3.287,0.563 -5.41,-3.165 z M 8.975,22.759 C 4.18,19.969 2.54,13.791 5.311,8.957 c 2.771,-4.846 8.9,-6.5 13.7,-3.712 4.811,2.8 6.449,8.978 3.674,13.82 -2.774,4.834 -8.905,6.491 -13.71,3.694 z M 9.386,22.041 C 4.985,19.479 3.467,13.802 6.009,9.369 c 2.546,-4.447 8.186,-5.962 12.584,-3.4 4.415,2.566 5.922,8.24 3.372,12.685 -2.542,4.433 -8.168,5.95 -12.579,3.387 z M 10.395,20.28 C 6.957,18.282 5.783,13.849 7.764,10.39 c 1.99,-3.473 6.388,-4.658 9.82,-2.666 3.45,2.01 4.627,6.441 2.637,9.912 -1.986,3.462 -6.379,4.651 -9.826,2.644 z m 0.404,-0.709 c 3.051,1.776 6.951,0.713 8.712,-2.354 1.763,-3.073 0.719,-7.005 -2.337,-8.775 -3.051,-1.774 -6.945,-0.724 -8.707,2.354 -1.756,3.065 -0.709,7.01 2.332,8.775 z" | |||||
| style="fill:#999999;fill-rule:nonzero;stroke:#201e1e;stroke-width:0.44999999px" | |||||
| id="path2" /> | |||||
| <circle | |||||
| cx="13.982" | |||||
| cy="14.085" | |||||
| r="9.3330002" | |||||
| style="fill:#444444;stroke:#1a1a1a;stroke-width:2px;stroke-linejoin:round;stroke-miterlimit:1.41420996" | |||||
| id="circle4" /> | |||||
| </g> | |||||
| <circle | |||||
| cx="14.001" | |||||
| cy="14.084" | |||||
| r="6.4580002" | |||||
| id="circle8" /> | |||||
| </g> | |||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -9,9 +9,9 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="8.3556204mm" | |||||
| height="8.3556299mm" | |||||
| viewBox="0 0 8.3556203 8.3556298" | |||||
| width="26" | |||||
| height="26" | |||||
| viewBox="0 0 6.8791666 6.8791665" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg15246" | id="svg15246" | ||||
| sodipodi:docname="PJ301MW.svg" | sodipodi:docname="PJ301MW.svg" | ||||
| @@ -146,16 +146,16 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="28.936694" | |||||
| inkscape:cx="5.0823384" | |||||
| inkscape:cy="3.9616981" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:zoom="7.934896" | |||||
| inkscape:cx="7.1034477" | |||||
| inkscape:cy="-13.701213" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="false" | showgrid="false" | ||||
| inkscape:window-width="1053" | |||||
| inkscape:window-width="1160" | |||||
| inkscape:window-height="1080" | inkscape:window-height="1080" | ||||
| inkscape:window-x="70" | |||||
| inkscape:window-y="15" | |||||
| inkscape:window-x="672" | |||||
| inkscape:window-y="99" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| units="px" | units="px" | ||||
| fit-margin-top="0" | fit-margin-top="0" | ||||
| @@ -170,7 +170,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -178,21 +178,21 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-88.611154,-119.19859)"> | |||||
| transform="translate(-88.611154,-120.67505)"> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7255" | |||||
| d="m 92.788964,127.42922 c -2.235179,0 -4.05281,-1.81762 -4.05281,-4.05282 0,-2.23516 1.817631,-4.05281 4.05281,-4.05281 2.235176,0 4.05281,1.81765 4.05281,4.05281 0,2.2352 -1.817634,4.05282 -4.05281,4.05282" | |||||
| style="fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:#44758e;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261" | |||||
| d="m 92.056498,127.38399 c -1.806104,0 -3.275111,-1.46901 -3.275111,-3.27512 0,-1.8061 1.469007,-3.27509 3.275111,-3.27509 1.806106,0 3.275109,1.46899 3.275109,3.27509 0,1.80611 -1.469003,3.27512 -3.275109,3.27512" | |||||
| style="fill:#56c4ff;fill-opacity:1;fill-rule:nonzero;stroke:#0084cb;stroke-width:0.28052977;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7261" | |||||
| d="m 92.788964,126.29511 c -1.609548,0 -2.918685,-1.30916 -2.918685,-2.91871 0,-1.60954 1.309137,-2.91867 2.918685,-2.91867 1.609549,0 2.918682,1.30913 2.918682,2.91867 0,1.60955 -1.309133,2.91871 -2.918682,2.91871" | |||||
| style="fill:#74a4bc;fill-opacity:1;fill-rule:nonzero;stroke:#44758e;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261-6" | |||||
| d="m 92.056498,126.34769 c -1.23462,0 -2.238806,-1.00419 -2.238806,-2.23882 0,-1.23461 1.004186,-2.23879 2.238806,-2.23879 1.234621,0 2.238804,1.00418 2.238804,2.23879 0,1.23463 -1.004183,2.23882 -2.238804,2.23882" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#0084cb;stroke-width:0.19176503;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7265" | id="path7265" | ||||
| d="m 94.588681,123.3764 c 0,0.99357 -0.806153,1.79974 -1.799717,1.79974 -0.993567,0 -1.79972,-0.80617 -1.79972,-1.79974 0,-0.99356 0.806153,-1.79969 1.79972,-1.79969 0.993564,0 1.799717,0.80613 1.799717,1.79969" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" /> | |||||
| d="m 93.564599,124.10887 c 0,0.83258 -0.675528,1.50812 -1.508101,1.50812 -0.832575,0 -1.508103,-0.67554 -1.508103,-1.50812 0,-0.83257 0.675528,-1.50808 1.508103,-1.50808 0.832573,0 1.508101,0.67551 1.508101,1.50808" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.29561555" /> | |||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -9,9 +9,9 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="8.3556204mm" | |||||
| height="8.3556299mm" | |||||
| viewBox="0 0 8.3556203 8.3556298" | |||||
| width="26" | |||||
| height="26" | |||||
| viewBox="0 0 6.8791666 6.8791665" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg15246" | id="svg15246" | ||||
| sodipodi:docname="PJ3410.svg" | sodipodi:docname="PJ3410.svg" | ||||
| @@ -146,16 +146,16 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="11.2" | |||||
| inkscape:cx="1.2540944" | |||||
| inkscape:cy="5.9688197" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:zoom="7.934896" | |||||
| inkscape:cx="7.1034477" | |||||
| inkscape:cy="-13.701213" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="false" | showgrid="false" | ||||
| inkscape:window-width="1053" | |||||
| inkscape:window-width="1160" | |||||
| inkscape:window-height="1080" | inkscape:window-height="1080" | ||||
| inkscape:window-x="70" | |||||
| inkscape:window-y="15" | |||||
| inkscape:window-x="672" | |||||
| inkscape:window-y="99" | |||||
| inkscape:window-maximized="0" | inkscape:window-maximized="0" | ||||
| units="px" | units="px" | ||||
| fit-margin-top="0" | fit-margin-top="0" | ||||
| @@ -178,21 +178,21 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-88.611154,-119.19859)"> | |||||
| transform="translate(-88.611154,-120.67505)"> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7255" | |||||
| d="m 92.788964,127.42922 c -2.235179,0 -4.05281,-1.81762 -4.05281,-4.05282 0,-2.23516 1.817631,-4.05281 4.05281,-4.05281 2.235176,0 4.05281,1.81765 4.05281,4.05281 0,2.2352 -1.817634,4.05282 -4.05281,4.05282" | |||||
| style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#636663;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261" | |||||
| d="m 92.056498,127.38399 c -1.806104,0 -3.275111,-1.46901 -3.275111,-3.27512 0,-1.8061 1.469007,-3.27509 3.275111,-3.27509 1.806106,0 3.275109,1.46899 3.275109,3.27509 0,1.80611 -1.469003,3.27512 -3.275109,3.27512" | |||||
| style="fill:#473948;fill-opacity:1;fill-rule:nonzero;stroke:#221a22;stroke-width:0.28052977;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7261" | |||||
| d="m 92.788964,126.29511 c -1.609548,0 -2.918685,-1.30916 -2.918685,-2.91871 0,-1.60954 1.309137,-2.91867 2.918685,-2.91867 1.609549,0 2.918682,1.30913 2.918682,2.91867 0,1.60955 -1.309133,2.91871 -2.918682,2.91871" | |||||
| style="fill:#545454;fill-opacity:1;fill-rule:nonzero;stroke:#636663;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| id="path7261-6" | |||||
| d="m 92.056498,126.34769 c -1.23462,0 -2.238806,-1.00419 -2.238806,-2.23882 0,-1.23461 1.004186,-2.23879 2.238806,-2.23879 1.234621,0 2.238804,1.00418 2.238804,2.23879 0,1.23463 -1.004183,2.23882 -2.238804,2.23882" | |||||
| style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#221a22;stroke-width:0.19176503;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path7265" | id="path7265" | ||||
| d="m 94.588681,123.3764 c 0,0.99357 -0.806153,1.79974 -1.799717,1.79974 -0.993567,0 -1.79972,-0.80617 -1.79972,-1.79974 0,-0.99356 0.806153,-1.79969 1.79972,-1.79969 0.993564,0 1.799717,0.80613 1.799717,1.79969" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" /> | |||||
| d="m 93.564599,124.10887 c 0,0.83258 -0.675528,1.50812 -1.508101,1.50812 -0.832575,0 -1.508103,-0.67554 -1.508103,-1.50812 0,-0.83257 0.675528,-1.50808 1.508103,-1.50808 0.832573,0 1.508101,0.67551 1.508101,1.50808" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.29561555" /> | |||||
| </g> | </g> | ||||
| </svg> | </svg> | ||||
| @@ -0,0 +1,107 @@ | |||||
| <?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="30" | |||||
| height="30" | |||||
| viewBox="0 0 7.9375001 7.9375001" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="SDKnob.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="14.886455" | |||||
| inkscape:cx="11.876247" | |||||
| inkscape:cy="19.252672" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer2" | |||||
| showgrid="true" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1381" | |||||
| inkscape:window-height="793" | |||||
| inkscape:window-x="2287" | |||||
| inkscape:window-y="60" | |||||
| inkscape:window-maximized="0" | |||||
| inkscape:snap-grids="false" | |||||
| showguides="false" | |||||
| units="px"> | |||||
| <inkscape:grid | |||||
| type="xygrid" | |||||
| id="grid823" /> | |||||
| </sodipodi:namedview> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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(-230.09585,-124.82033)" | |||||
| style="display:inline" /> | |||||
| <g | |||||
| inkscape:groupmode="layer" | |||||
| id="layer2" | |||||
| inkscape:label="Layer 2" | |||||
| style="display:inline" | |||||
| transform="translate(0,-1.5878976)"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6449" | |||||
| style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#282828;stroke-width:0.12499428;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 7.8389147,5.1481174 C 7.6681537,4.8716595 7.3806758,4.5997438 7.2207236,4.2128326 7.0607714,3.8272219 7.0713678,3.4327547 6.9974414,3.1176057 6.8234378,2.9021008 6.6276133,2.7064889 6.411896,2.5322726 6.0965268,2.4585831 5.7024842,2.4689585 5.3164481,2.3089903 4.9295375,2.1486055 4.6576217,1.8617722 4.3815968,1.6907996 4.2465049,1.6765027 4.1092482,1.6683333 3.97048,1.6683333 c -0.1392013,0 -0.276458,0.00825 -0.4113374,0.022466 C 3.2826928,1.8617722 3.0107689,2.1486055 2.6238668,2.3089903 2.2382553,2.4689421 1.8442128,2.4585668 1.5286308,2.5322726 1.3131342,2.7064889 1.117081,2.9021008 0.94329812,3.1176057 0.86936363,3.4327547 0.87973892,3.8272219 0.71958293,4.2128326 0.5596311,4.5997438 0.2723648,4.8716595 0.10182521,5.1481174 c -0.0142967,0.1350919 -0.0223029,0.2723487 -0.0223029,0.4111169 0,0.1389887 0.00817,0.2762373 0.0223029,0.4117622 0.17053959,0.276025 0.45780588,0.5479406 0.61775772,0.934851 C 0.87974711,7.291459 0.86937182,7.6859344 0.94329812,8.0008628 1.117081,8.2165801 1.3131342,8.4124127 1.5286308,8.5864162 c 0.315582,0.073935 0.7096245,0.063314 1.095236,0.2230616 0.3869021,0.1606054 0.658826,0.4476512 0.9352758,0.6184113 0.1348794,0.014052 0.2721361,0.022304 0.4113374,0.022304 0.1387682,0 0.2760249,-0.00825 0.4111168,-0.022304 C 4.6576217,9.257129 4.9295375,8.9700832 5.3164481,8.8094778 5.7024842,8.6497466 6.0965268,8.6603344 6.411896,8.5864162 6.6276133,8.4124127 6.8234378,8.2165801 6.9974414,8.0008628 7.0713764,7.6859344 7.0607554,7.291459 7.2207236,6.9058475 7.3806758,6.5189371 7.6681537,6.2470215 7.8389147,5.9709965 7.8529667,5.8354716 7.8609717,5.698223 7.8609717,5.5592343 c 0,-0.1387682 -0.00817,-0.276025 -0.022057,-0.4111169" /> | |||||
| <circle | |||||
| style="display:inline;opacity:1;fill:#b5b5b5;fill-opacity:1;stroke:none;stroke-width:0.23547918;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal" | |||||
| id="path6739" | |||||
| cx="3.9702125" | |||||
| cy="5.5592999" | |||||
| r="2.8211486" /> | |||||
| <path | |||||
| style="opacity:1;fill:#e7e7e7;fill-opacity:1;stroke:none;stroke-width:0.2606827;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" | |||||
| id="path833" | |||||
| sodipodi:type="arc" | |||||
| sodipodi:cx="3.9663734" | |||||
| sodipodi:cy="2.2448254" | |||||
| sodipodi:rx="0.37761164" | |||||
| sodipodi:ry="0.37761164" | |||||
| sodipodi:start="2.4454564" | |||||
| sodipodi:end="2.4435122" | |||||
| sodipodi:open="true" | |||||
| d="M 3.6766224,2.4869717 A 0.37761164,0.37761164 0 0 1 3.7240863,1.955192 0.37761164,0.37761164 0 0 1 4.255889,2.0023974 0.37761164,0.37761164 0 0 1 4.2089421,2.534223 0.37761164,0.37761164 0 0 1 3.6770937,2.4875346" /> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -0,0 +1,131 @@ | |||||
| <?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="27.993454" | |||||
| height="31.564199" | |||||
| viewBox="0 0 7.4066014 8.3513613" | |||||
| version="1.1" | |||||
| id="svg10799" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="SilverSwitch.svg"> | |||||
| <defs | |||||
| id="defs10793" /> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="14.972986" | |||||
| inkscape:cx="-3.1916386" | |||||
| inkscape:cy="1.3050348" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:current-layer="g5870" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1920" | |||||
| inkscape:window-height="1080" | |||||
| inkscape:window-x="-365" | |||||
| inkscape:window-y="110" | |||||
| inkscape:window-maximized="0" | |||||
| units="px" | |||||
| showguides="false" /> | |||||
| <metadata | |||||
| id="metadata10796"> | |||||
| <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(-78.695511,-76.621942)"> | |||||
| <g | |||||
| id="g3201" | |||||
| transform="matrix(0.22389288,0,0,-0.22685285,-171.54356,342.70568)" | |||||
| style="stroke-width:1.565341"> | |||||
| <path | |||||
| d="m 1134.1982,1138.7744 c -8.807,0 -15.938,7.132 -15.938,15.938 0,8.806 7.131,15.968 15.938,15.968 8.806,0 15.969,-7.162 15.969,-15.968 0,-8.806 -7.163,-15.938 -15.969,-15.938" | |||||
| style="opacity:1;vector-effect:none;fill:#e7e7e7;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path6575" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| d="m 1134.2607,1142.4248 c -6.783,0 -12.303,5.52 -12.303,12.304 0,6.783 5.52,12.302 12.303,12.302 6.784,0 12.304,-5.519 12.304,-12.302 0,-6.784 -5.52,-12.304 -12.304,-12.304" | |||||
| style="opacity:1;vector-effect:none;fill:#e7e7e7;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path6583" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" | |||||
| d="m 1134.3145,1145.7148 c -5.0639,0 -9.2344,4.1731 -9.2344,9.2364 0,5.0632 4.1705,9.2343 9.2344,9.2343 5.0643,0 9.2363,-4.1711 9.2363,-9.2343 0,-5.0633 -4.172,-9.2364 -9.2363,-9.2364 z" | |||||
| id="path5904" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <g | |||||
| id="g5870" | |||||
| style="stroke-width:1.565341;fill:#808080;fill-opacity:1"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6631" | |||||
| style="fill:#808080;fill-opacity:1;stroke:#656565;stroke-width:1.565341;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="m 1130.6064,1154.4414 v -3.023 c 2.259,-2.464 6.448,-2.248 7.659,0.144 l -0.038,2.966 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6635" | |||||
| style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:#727272;stroke-width:0.97833812;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="m 1129.6875,1153.2109 c 2.403,-2.906 7.479,-2.26 9.573,0.089 0.736,0.826 2.032,3.75 2.032,8.37 0,4.62 -0.91,8.369 -2.032,8.369 h -9.483 c -1.122,0 -2.032,-3.749 -2.032,-8.369 0,-4.62 0.82,-7.745 1.972,-8.459" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6643" | |||||
| style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.565341" | |||||
| d="m 1134.5156,1159.2344 c 3.783,0 6.851,3.067 6.851,6.851 0,3.784 -3.068,6.85 -6.851,6.85 -3.784,0 -6.851,-3.066 -6.851,-6.85 0,-3.784 3.067,-6.851 6.851,-6.851" /> | |||||
| </g> | |||||
| <g | |||||
| id="g5918" | |||||
| transform="matrix(1,0,0,-1,0,2309.0568)" | |||||
| style="stroke-width:1.565341;fill:#808080;fill-opacity:1"> | |||||
| <path | |||||
| d="m 1130.6064,1154.4414 v -3.023 c 2.259,-2.464 6.448,-2.248 7.659,0.144 l -0.038,2.966 z" | |||||
| style="fill:#808080;fill-opacity:1;stroke:#656565;stroke-width:1.565341;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path5912" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| d="m 1129.6875,1153.2109 c 2.403,-2.906 7.479,-2.26 9.573,0.089 0.736,0.826 2.032,3.75 2.032,8.37 0,4.62 -0.91,8.369 -2.032,8.369 h -9.483 c -1.122,0 -2.032,-3.749 -2.032,-8.369 0,-4.62 0.82,-7.745 1.972,-8.459" | |||||
| style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:#727272;stroke-width:0.97833812;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path5914" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| d="m 1134.5156,1159.2344 c 3.783,0 6.851,3.067 6.851,6.851 0,3.784 -3.068,6.85 -6.851,6.85 -3.784,0 -6.851,-3.066 -6.851,-6.85 0,-3.784 3.067,-6.851 6.851,-6.851" | |||||
| style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.565341" | |||||
| id="path5916" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | |||||
| <path | |||||
| d="m 1134.2137,1161.5779 c 3.783,0 6.851,-3.067 6.851,-6.851 0,-3.784 -3.068,-6.85 -6.851,-6.85 -3.784,0 -6.851,3.066 -6.851,6.85 0,3.784 3.067,6.851 6.851,6.851" | |||||
| style="opacity:1;vector-effect:none;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:#727272;stroke-width:0.97833812;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path5916-1" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | |||||
| </g> | |||||
| <g | |||||
| inkscape:groupmode="layer" | |||||
| id="layer2" | |||||
| inkscape:label="Layer 2" /> | |||||
| </svg> | |||||
| @@ -0,0 +1,102 @@ | |||||
| <?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="27.993454" | |||||
| height="31.564199" | |||||
| viewBox="0 0 7.4066014 8.3513613" | |||||
| version="1.1" | |||||
| id="svg10799" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="SilverSwitch_0.svg"> | |||||
| <defs | |||||
| id="defs10793" /> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="14.060376" | |||||
| inkscape:cx="-18.625062" | |||||
| inkscape:cy="6.1157055" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:current-layer="g5918" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1920" | |||||
| inkscape:window-height="1021" | |||||
| inkscape:window-x="-138" | |||||
| inkscape:window-y="64" | |||||
| inkscape:window-maximized="0" | |||||
| units="px" /> | |||||
| <metadata | |||||
| id="metadata10796"> | |||||
| <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(-78.695511,-76.621942)"> | |||||
| <g | |||||
| id="g3201" | |||||
| transform="matrix(0.22389288,0,0,-0.22685285,-171.54356,342.70568)" | |||||
| style="stroke-width:1.565341"> | |||||
| <path | |||||
| d="m 1134.1982,1138.7744 c -8.807,0 -15.938,7.132 -15.938,15.938 0,8.806 7.131,15.968 15.938,15.968 8.806,0 15.969,-7.162 15.969,-15.968 0,-8.806 -7.163,-15.938 -15.969,-15.938" | |||||
| style="opacity:1;vector-effect:none;fill:#e7e7e7;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path6575" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| d="m 1134.2607,1142.4248 c -6.783,0 -12.303,5.52 -12.303,12.304 0,6.783 5.52,12.302 12.303,12.302 6.784,0 12.304,-5.519 12.304,-12.302 0,-6.784 -5.52,-12.304 -12.304,-12.304" | |||||
| style="opacity:1;vector-effect:none;fill:#e7e7e7;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path6583" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" | |||||
| d="m 1134.3145,1145.7148 c -5.0639,0 -9.2344,4.1731 -9.2344,9.2364 0,5.0632 4.1705,9.2343 9.2344,9.2343 5.0643,0 9.2363,-4.1711 9.2363,-9.2343 0,-5.0633 -4.172,-9.2364 -9.2363,-9.2364 z" | |||||
| id="path5904" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <g | |||||
| id="g5918" | |||||
| transform="matrix(1,0,0,-1,0,2309.0568)" | |||||
| style="stroke-width:1.565341"> | |||||
| <path | |||||
| d="m 1130.6064,1154.4414 v -3.023 c 2.259,-2.464 6.448,-2.248 7.659,0.144 l -0.038,2.966 z" | |||||
| style="fill:#656565;fill-opacity:1;stroke:#656565;stroke-width:1.565341;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path5912" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| d="m 1129.6875,1153.2109 c 2.403,-2.906 7.479,-2.26 9.573,0.089 0.736,0.826 2.032,3.75 2.032,8.37 0,4.62 -0.91,8.369 -2.032,8.369 h -9.483 c -1.122,0 -2.032,-3.749 -2.032,-8.369 0,-4.62 0.82,-7.745 1.972,-8.459" | |||||
| style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:#727272;stroke-width:0.97833812;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path5914" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| d="m 1134.5156,1159.2344 c 3.783,0 6.851,3.067 6.851,6.851 0,3.784 -3.068,6.85 -6.851,6.85 -3.784,0 -6.851,-3.066 -6.851,-6.85 0,-3.784 3.067,-6.851 6.851,-6.851" | |||||
| style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.565341" | |||||
| id="path5916" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -0,0 +1,101 @@ | |||||
| <?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="27.993454" | |||||
| height="31.564199" | |||||
| viewBox="0 0 7.4066014 8.3513613" | |||||
| version="1.1" | |||||
| id="svg10799" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="SilverSwitch_2.svg"> | |||||
| <defs | |||||
| id="defs10793" /> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="14.972986" | |||||
| inkscape:cx="-12.308057" | |||||
| inkscape:cy="1.3050348" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:current-layer="g3201" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1920" | |||||
| inkscape:window-height="1080" | |||||
| inkscape:window-x="88" | |||||
| inkscape:window-y="41" | |||||
| inkscape:window-maximized="0" | |||||
| units="px" | |||||
| showguides="false" /> | |||||
| <metadata | |||||
| id="metadata10796"> | |||||
| <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></dc:title> | |||||
| </cc:Work> | |||||
| </rdf:RDF> | |||||
| </metadata> | |||||
| <g | |||||
| inkscape:label="Layer 1" | |||||
| inkscape:groupmode="layer" | |||||
| id="layer1" | |||||
| transform="translate(-78.695511,-76.621942)"> | |||||
| <g | |||||
| id="g3201" | |||||
| transform="matrix(0.22389288,0,0,-0.22685285,-171.54356,342.70568)" | |||||
| style="stroke-width:1.565341"> | |||||
| <path | |||||
| d="m 1134.1982,1138.7744 c -8.807,0 -15.938,7.132 -15.938,15.938 0,8.806 7.131,15.968 15.938,15.968 8.806,0 15.969,-7.162 15.969,-15.968 0,-8.806 -7.163,-15.938 -15.969,-15.938" | |||||
| style="opacity:1;vector-effect:none;fill:#e7e7e7;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path6575" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| d="m 1134.2607,1142.4248 c -6.783,0 -12.303,5.52 -12.303,12.304 0,6.783 5.52,12.302 12.303,12.302 6.784,0 12.304,-5.519 12.304,-12.302 0,-6.784 -5.52,-12.304 -12.304,-12.304" | |||||
| style="opacity:1;vector-effect:none;fill:#e7e7e7;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path6583" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" | |||||
| d="m 1134.3145,1145.7148 c -5.0639,0 -9.2344,4.1731 -9.2344,9.2364 0,5.0632 4.1705,9.2343 9.2344,9.2343 5.0643,0 9.2363,-4.1711 9.2363,-9.2343 0,-5.0633 -4.172,-9.2364 -9.2363,-9.2364 z" | |||||
| id="path5904" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <g | |||||
| id="g5870" | |||||
| style="fill:#808080;fill-opacity:1;stroke-width:1.565341"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6631" | |||||
| style="fill:#808080;fill-opacity:1;stroke:#656565;stroke-width:1.565341;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="m 1130.6064,1154.4414 v -3.023 c 2.259,-2.464 6.448,-2.248 7.659,0.144 l -0.038,2.966 z" /> | |||||
| </g> | |||||
| <path | |||||
| d="m 1134.2137,1161.5779 c 3.783,0 6.851,-3.067 6.851,-6.851 0,-3.784 -3.068,-6.85 -6.851,-6.85 -3.784,0 -6.851,3.066 -6.851,6.85 0,3.784 3.067,6.851 6.851,6.851" | |||||
| style="opacity:1;vector-effect:none;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:#727272;stroke-width:0.97833812;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path5916-1" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | |||||
| </g> | |||||
| <g | |||||
| inkscape:groupmode="layer" | |||||
| id="layer2" | |||||
| inkscape:label="Layer 2" /> | |||||
| </svg> | |||||
| @@ -0,0 +1,101 @@ | |||||
| <?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="27.993454" | |||||
| height="31.564199" | |||||
| viewBox="0 0 7.4066014 8.3513613" | |||||
| version="1.1" | |||||
| id="svg10799" | |||||
| sodipodi:docname="SilverSwitch_2.svg" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | |||||
| <defs | |||||
| id="defs10793" /> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="10.5875" | |||||
| inkscape:cx="-18.414744" | |||||
| inkscape:cy="-9.891269" | |||||
| inkscape:document-units="mm" | |||||
| inkscape:current-layer="g5870" | |||||
| showgrid="false" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1920" | |||||
| inkscape:window-height="1080" | |||||
| inkscape:window-x="-159" | |||||
| inkscape:window-y="171" | |||||
| inkscape:window-maximized="0" | |||||
| units="px" /> | |||||
| <metadata | |||||
| id="metadata10796"> | |||||
| <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(-78.695511,-76.621942)"> | |||||
| <g | |||||
| id="g3201" | |||||
| transform="matrix(0.22389288,0,0,-0.22685285,-171.54356,342.70568)" | |||||
| style="stroke-width:1.565341"> | |||||
| <path | |||||
| d="m 1134.1982,1138.7744 c -8.807,0 -15.938,7.132 -15.938,15.938 0,8.806 7.131,15.968 15.938,15.968 8.806,0 15.969,-7.162 15.969,-15.968 0,-8.806 -7.163,-15.938 -15.969,-15.938" | |||||
| style="opacity:1;vector-effect:none;fill:#e7e7e7;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path6575" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| d="m 1134.2607,1142.4248 c -6.783,0 -12.303,5.52 -12.303,12.304 0,6.783 5.52,12.302 12.303,12.302 6.784,0 12.304,-5.519 12.304,-12.302 0,-6.784 -5.52,-12.304 -12.304,-12.304" | |||||
| style="opacity:1;vector-effect:none;fill:#e7e7e7;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
| id="path6583" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#909290;stroke-width:1.17400575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" | |||||
| d="m 1134.3145,1145.7148 c -5.0639,0 -9.2344,4.1731 -9.2344,9.2364 0,5.0632 4.1705,9.2343 9.2344,9.2343 5.0643,0 9.2363,-4.1711 9.2363,-9.2343 0,-5.0633 -4.172,-9.2364 -9.2363,-9.2364 z" | |||||
| id="path5904" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <g | |||||
| id="g5870" | |||||
| style="stroke-width:1.565341"> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6631" | |||||
| style="fill:#656565;fill-opacity:1;stroke:#656565;stroke-width:1.565341;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="m 1130.6064,1154.4414 v -3.023 c 2.259,-2.464 6.448,-2.248 7.659,0.144 l -0.038,2.966 z" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6635" | |||||
| style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:#727272;stroke-width:0.97618115;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="m 1129.6875,1153.2109 c 2.403,-2.906 7.479,-2.26 9.573,0.089 0.736,0.826 2.032,3.75 2.032,8.37 0,4.62 -0.91,8.369 -2.032,8.369 h -9.483 c -1.122,0 -2.032,-3.749 -2.032,-8.369 0,-4.62 0.82,-7.745 1.972,-8.459" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path6643" | |||||
| style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.565341" | |||||
| d="m 1134.5156,1159.2344 c 3.783,0 6.851,3.067 6.851,6.851 0,3.784 -3.068,6.85 -6.851,6.85 -3.784,0 -6.851,-3.066 -6.851,-6.85 0,-3.784 3.067,-6.851 6.851,-6.851" /> | |||||
| </g> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -14,8 +14,8 @@ | |||||
| viewBox="0 0 7.0462589 7.1788893" | viewBox="0 0 7.0462589 7.1788893" | ||||
| version="1.1" | version="1.1" | ||||
| id="svg6414" | id="svg6414" | ||||
| inkscape:version="0.92.1 r" | |||||
| sodipodi:docname="Davies1900hSmallBlack.svg"> | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="SmallBla.svg"> | |||||
| <defs | <defs | ||||
| id="defs6408"> | id="defs6408"> | ||||
| <clipPath | <clipPath | ||||
| @@ -40,11 +40,11 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="0.98994949" | |||||
| inkscape:cx="101.21858" | |||||
| inkscape:cy="-36.897917" | |||||
| inkscape:zoom="16.078125" | |||||
| inkscape:cx="-4.8899598" | |||||
| inkscape:cy="14.382429" | |||||
| inkscape:document-units="mm" | inkscape:document-units="mm" | ||||
| inkscape:current-layer="layer1" | |||||
| inkscape:current-layer="g28551" | |||||
| showgrid="false" | showgrid="false" | ||||
| fit-margin-top="0" | fit-margin-top="0" | ||||
| fit-margin-left="0" | fit-margin-left="0" | ||||
| @@ -63,7 +63,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title></dc:title> | |||||
| <dc:title /> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -74,25 +74,21 @@ | |||||
| transform="translate(-36.542344,-107.44627)"> | transform="translate(-36.542344,-107.44627)"> | ||||
| <g | <g | ||||
| id="g6344" | id="g6344" | ||||
| transform="matrix(0.35277777,0,0,-0.35277777,-474.41126,963.93894)"> | |||||
| transform="matrix(0.35277777,0,0,-0.35277777,-474.41126,963.93894)" | |||||
| style="stroke:#ffffff;stroke-opacity:1"> | |||||
| <g | <g | ||||
| style="clip-rule:nonzero" | |||||
| style="clip-rule:nonzero;stroke:#0e0e0e;stroke-opacity:1;fill:#000000;fill-opacity:1" | |||||
| id="g28551" | id="g28551" | ||||
| clip-path="url(#clip82)" | clip-path="url(#clip82)" | ||||
| transform="matrix(0.75000002,0,0,-0.75000002,713.70253,2631.9236)"> | transform="matrix(0.75000002,0,0,-0.75000002,713.70253,2631.9236)"> | ||||
| <path | <path | ||||
| inkscape:connector-curvature="0" | inkscape:connector-curvature="0" | ||||
| id="path28547" | id="path28547" | ||||
| d="m 1005.8555,288.88281 c -1.6407,7.16406 -8.78128,11.64844 -15.94925,10.00781 -7.16797,-1.64062 -11.64844,-8.78125 -10.00781,-15.94921 1.64062,-7.16797 8.78125,-11.64844 15.94922,-10.00782 7.16794,1.64063 11.64454,8.78125 10.00784,15.94922" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| id="path28549" | |||||
| d="m 1005.8555,288.88281 c -1.6407,7.16406 -8.78128,11.64844 -15.94925,10.00781 -7.16797,-1.64062 -11.64844,-8.78125 -10.00781,-15.94921 1.64062,-7.16797 8.78125,-11.64844 15.94922,-10.00782 7.16794,1.64063 11.64454,8.78125 10.00784,15.94922" | |||||
| style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" /> | |||||
| d="m 1005.3296,288.76244 c -1.5742,6.8738 -8.42546,11.1765 -15.30301,9.60234 -6.87755,-1.57415 -11.17649,-8.42547 -9.60233,-15.30301 1.57414,-6.87755 8.42546,-11.17649 15.30301,-9.60234 6.87753,1.57415 11.17273,8.42546 9.60233,15.30301" | |||||
| style="fill:#2d2d2d;fill-opacity:1;fill-rule:nonzero;stroke:#0c0c0c;stroke-width:0.95948386;stroke-opacity:1" /> | |||||
| </g> | </g> | ||||
| <g | <g | ||||
| style="clip-rule:nonzero" | |||||
| style="clip-rule:nonzero;stroke:#ffffff;stroke-opacity:1" | |||||
| id="g28555" | id="g28555" | ||||
| clip-path="url(#clip83)" | clip-path="url(#clip83)" | ||||
| transform="matrix(0.75000002,0,0,-0.75000002,713.70253,2631.9236)"> | transform="matrix(0.75000002,0,0,-0.75000002,713.70253,2631.9236)"> | ||||
| @@ -0,0 +1,491 @@ | |||||
| <?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="27mm" | |||||
| height="27mm" | |||||
| viewBox="0 0 27 27" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="VerboL.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <inkscape:path-effect | |||||
| effect="spiro" | |||||
| id="path-effect4691" | |||||
| is_visible="true" /> | |||||
| <inkscape:path-effect | |||||
| effect="spiro" | |||||
| id="path-effect4687" | |||||
| is_visible="true" /> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip89"> | |||||
| <rect | |||||
| id="rect4864" | |||||
| height="19" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip90"> | |||||
| <path | |||||
| id="path4861" | |||||
| d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask44"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)" | |||||
| id="g4858" | |||||
| style="filter:url(#alpha)"> | |||||
| <rect | |||||
| id="rect4856" | |||||
| style="fill:#000000;fill-opacity:0.14999402;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="alpha"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix4149" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath17821"> | |||||
| <rect | |||||
| id="rect17819" | |||||
| height="19" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath17825"> | |||||
| <path | |||||
| id="path17823" | |||||
| d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip87"> | |||||
| <rect | |||||
| id="rect4848" | |||||
| height="26" | |||||
| width="24" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip88"> | |||||
| <path | |||||
| id="path4845" | |||||
| d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask43"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)" | |||||
| id="g4842" | |||||
| style="filter:url(#alpha)"> | |||||
| <rect | |||||
| id="rect4840" | |||||
| style="fill:#000000;fill-opacity:0.14999402;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="filter17836"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix17834" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath17840"> | |||||
| <rect | |||||
| id="rect17838" | |||||
| height="26" | |||||
| width="24" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath17844"> | |||||
| <path | |||||
| id="path17842" | |||||
| d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip95"> | |||||
| <rect | |||||
| id="rect4912" | |||||
| height="18" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip96"> | |||||
| <path | |||||
| id="path4909" | |||||
| d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask47"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)" | |||||
| id="g4906" | |||||
| style="filter:url(#alpha-3)"> | |||||
| <rect | |||||
| id="rect4904" | |||||
| style="fill:#000000;fill-opacity:0.33000201;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="alpha-3"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix4149-6" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath18541"> | |||||
| <rect | |||||
| id="rect18539" | |||||
| height="18" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath18545"> | |||||
| <path | |||||
| id="path18543" | |||||
| d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip93"> | |||||
| <rect | |||||
| id="rect4896" | |||||
| height="24" | |||||
| width="22" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip94"> | |||||
| <path | |||||
| id="path4893" | |||||
| d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask46"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)" | |||||
| id="g4890" | |||||
| style="filter:url(#alpha-3)"> | |||||
| <rect | |||||
| id="rect4888" | |||||
| style="fill:#000000;fill-opacity:0.14999402;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="filter18556"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix18554" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath18560"> | |||||
| <rect | |||||
| id="rect18558" | |||||
| height="24" | |||||
| width="22" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath18564"> | |||||
| <path | |||||
| id="path18562" | |||||
| d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip91"> | |||||
| <rect | |||||
| id="rect4880" | |||||
| height="32" | |||||
| width="29" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip92"> | |||||
| <path | |||||
| id="path4877" | |||||
| d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask45"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)" | |||||
| id="g4874" | |||||
| style="filter:url(#alpha-3)"> | |||||
| <rect | |||||
| id="rect4872" | |||||
| style="fill:#000000;fill-opacity:0.14999402;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="filter18575"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix18573" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath18579"> | |||||
| <rect | |||||
| id="rect18577" | |||||
| height="32" | |||||
| width="29" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath18583"> | |||||
| <path | |||||
| id="path18581" | |||||
| d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip202"> | |||||
| <rect | |||||
| id="rect5795" | |||||
| height="18" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip203"> | |||||
| <path | |||||
| id="path5792" | |||||
| d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask104"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,74.416306,97.613551)" | |||||
| id="g5789" | |||||
| style="filter:url(#alpha-7)"> | |||||
| <rect | |||||
| id="rect5787" | |||||
| style="fill:#000000;fill-opacity:0.33000201;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="alpha-7"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix4149-5" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath18765"> | |||||
| <rect | |||||
| id="rect18763" | |||||
| height="18" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath18769"> | |||||
| <path | |||||
| id="path18767" | |||||
| d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="5.0765516" | |||||
| inkscape:cx="46.79226" | |||||
| inkscape:cy="54.165032" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer2" | |||||
| showgrid="true" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1507" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="0" | |||||
| inkscape:window-y="18" | |||||
| inkscape:window-maximized="0" | |||||
| inkscape:snap-grids="false" | |||||
| showguides="false"> | |||||
| <inkscape:grid | |||||
| type="xygrid" | |||||
| id="grid823" /> | |||||
| </sodipodi:namedview> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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(-230.09585,-105.75783)" | |||||
| style="display:inline" /> | |||||
| <g | |||||
| inkscape:groupmode="layer" | |||||
| id="layer2" | |||||
| inkscape:label="Layer 2" | |||||
| style="display:inline" | |||||
| transform="translate(0,17.474603)"> | |||||
| <ellipse | |||||
| style="fill:#323343;fill-opacity:1;stroke:#0f1014;stroke-width:0.94275683;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path821" | |||||
| cx="13.539449" | |||||
| cy="-3.9000092" | |||||
| rx="13.023881" | |||||
| ry="13.066276" /> | |||||
| <ellipse | |||||
| style="display:inline;fill:#0f1014;fill-opacity:1;stroke:none;stroke-width:0.9913215;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | |||||
| cx="13.539449" | |||||
| cy="-3.9000092" | |||||
| rx="6.9151921" | |||||
| ry="6.9377022" /> | |||||
| <path | |||||
| style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13732359px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |||||
| d="m 13.58638,-16.512425 -0.7115,5.644409 1.447536,-0.02222 z" | |||||
| id="path4693" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <g | |||||
| style="display:inline" | |||||
| transform="matrix(1.4120124,0,0,1.4002053,-64.66546,-133.04496)" | |||||
| id="layer1-9" | |||||
| inkscape:label="Layer 1"> | |||||
| <path | |||||
| style="fill:#a8a8a8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" | |||||
| d="m 60.020116,92.23473 c 0,2.532835 -2.053272,4.586111 -4.58611,4.586111 -2.534215,0 -4.586111,-2.053276 -4.586111,-4.586111 0,-2.532835 2.051896,-4.586111 4.586111,-4.586111 2.532838,0 4.58611,2.053276 4.58611,4.586111" | |||||
| id="path8217" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| style="clip-rule:nonzero;fill:#cfcfcf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" | |||||
| d="m 55.434006,96.820841 c 0.549839,0 1.07763,-0.101974 1.566827,-0.279742 l -1.566827,-4.306369 -1.568204,4.306369 c 0.489197,0.177768 1.016988,0.279742 1.568204,0.279742" | |||||
| id="path47002" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| style="clip-rule:nonzero;fill:#cfcfcf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" | |||||
| d="m 55.434006,92.23473 1.566827,-4.304993 c -0.489197,-0.179144 -1.016988,-0.281118 -1.566827,-0.281118 -0.551216,0 -1.079007,0.101974 -1.568204,0.281118 z m 0,0" | |||||
| id="path47006" /> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -0,0 +1,489 @@ | |||||
| <?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="12mm" | |||||
| height="12mm" | |||||
| viewBox="0 0 12 12" | |||||
| version="1.1" | |||||
| id="svg16908" | |||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | |||||
| sodipodi:docname="VerboS.svg"> | |||||
| <defs | |||||
| id="defs16902"> | |||||
| <inkscape:path-effect | |||||
| effect="spiro" | |||||
| id="path-effect4691" | |||||
| is_visible="true" /> | |||||
| <inkscape:path-effect | |||||
| effect="spiro" | |||||
| id="path-effect4687" | |||||
| is_visible="true" /> | |||||
| <clipPath | |||||
| clipPathUnits="userSpaceOnUse" | |||||
| id="clipPath6367"> | |||||
| <path | |||||
| d="M 0,3193 H 2089 V 0 H 0 Z" | |||||
| id="path6365" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip89"> | |||||
| <rect | |||||
| id="rect4864" | |||||
| height="19" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip90"> | |||||
| <path | |||||
| id="path4861" | |||||
| d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask44"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)" | |||||
| id="g4858" | |||||
| style="filter:url(#alpha)"> | |||||
| <rect | |||||
| id="rect4856" | |||||
| style="fill:#000000;fill-opacity:0.14999402;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="alpha"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix4149" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath17821"> | |||||
| <rect | |||||
| id="rect17819" | |||||
| height="19" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath17825"> | |||||
| <path | |||||
| id="path17823" | |||||
| d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip87"> | |||||
| <rect | |||||
| id="rect4848" | |||||
| height="26" | |||||
| width="24" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip88"> | |||||
| <path | |||||
| id="path4845" | |||||
| d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask43"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)" | |||||
| id="g4842" | |||||
| style="filter:url(#alpha)"> | |||||
| <rect | |||||
| id="rect4840" | |||||
| style="fill:#000000;fill-opacity:0.14999402;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="filter17836"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix17834" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath17840"> | |||||
| <rect | |||||
| id="rect17838" | |||||
| height="26" | |||||
| width="24" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath17844"> | |||||
| <path | |||||
| id="path17842" | |||||
| d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip95"> | |||||
| <rect | |||||
| id="rect4912" | |||||
| height="18" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip96"> | |||||
| <path | |||||
| id="path4909" | |||||
| d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask47"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)" | |||||
| id="g4906" | |||||
| style="filter:url(#alpha-3)"> | |||||
| <rect | |||||
| id="rect4904" | |||||
| style="fill:#000000;fill-opacity:0.33000201;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="alpha-3"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix4149-6" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath18541"> | |||||
| <rect | |||||
| id="rect18539" | |||||
| height="18" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath18545"> | |||||
| <path | |||||
| id="path18543" | |||||
| d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip93"> | |||||
| <rect | |||||
| id="rect4896" | |||||
| height="24" | |||||
| width="22" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip94"> | |||||
| <path | |||||
| id="path4893" | |||||
| d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask46"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)" | |||||
| id="g4890" | |||||
| style="filter:url(#alpha-3)"> | |||||
| <rect | |||||
| id="rect4888" | |||||
| style="fill:#000000;fill-opacity:0.14999402;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="filter18556"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix18554" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath18560"> | |||||
| <rect | |||||
| id="rect18558" | |||||
| height="24" | |||||
| width="22" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath18564"> | |||||
| <path | |||||
| id="path18562" | |||||
| d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip91"> | |||||
| <rect | |||||
| id="rect4880" | |||||
| height="32" | |||||
| width="29" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip92"> | |||||
| <path | |||||
| id="path4877" | |||||
| d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask45"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)" | |||||
| id="g4874" | |||||
| style="filter:url(#alpha-3)"> | |||||
| <rect | |||||
| id="rect4872" | |||||
| style="fill:#000000;fill-opacity:0.14999402;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="filter18575"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix18573" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath18579"> | |||||
| <rect | |||||
| id="rect18577" | |||||
| height="32" | |||||
| width="29" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath18583"> | |||||
| <path | |||||
| id="path18581" | |||||
| d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip202"> | |||||
| <rect | |||||
| id="rect5795" | |||||
| height="18" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clip203"> | |||||
| <path | |||||
| id="path5792" | |||||
| d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| <mask | |||||
| id="mask104"> | |||||
| <g | |||||
| transform="matrix(0.26458333,0,0,0.26458333,74.416306,97.613551)" | |||||
| id="g5789" | |||||
| style="filter:url(#alpha-7)"> | |||||
| <rect | |||||
| id="rect5787" | |||||
| style="fill:#000000;fill-opacity:0.33000201;stroke:none" | |||||
| height="3351.5" | |||||
| width="3052.8701" | |||||
| y="0" | |||||
| x="0" /> | |||||
| </g> | |||||
| </mask> | |||||
| <filter | |||||
| height="1" | |||||
| width="1" | |||||
| y="0" | |||||
| x="0" | |||||
| filterUnits="objectBoundingBox" | |||||
| id="alpha-7"> | |||||
| <feColorMatrix | |||||
| id="feColorMatrix4149-5" | |||||
| values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0" | |||||
| in="SourceGraphic" | |||||
| type="matrix" /> | |||||
| </filter> | |||||
| <clipPath | |||||
| id="clipPath18765"> | |||||
| <rect | |||||
| id="rect18763" | |||||
| height="18" | |||||
| width="18" | |||||
| x="0" | |||||
| y="0" /> | |||||
| </clipPath> | |||||
| <clipPath | |||||
| id="clipPath18769"> | |||||
| <path | |||||
| id="path18767" | |||||
| d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </clipPath> | |||||
| </defs> | |||||
| <sodipodi:namedview | |||||
| id="base" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pageshadow="2" | |||||
| inkscape:zoom="7.261807" | |||||
| inkscape:cx="-0.059310061" | |||||
| inkscape:cy="34.303006" | |||||
| inkscape:document-units="px" | |||||
| inkscape:current-layer="layer2" | |||||
| showgrid="true" | |||||
| fit-margin-top="0" | |||||
| fit-margin-left="0" | |||||
| fit-margin-right="0" | |||||
| fit-margin-bottom="0" | |||||
| inkscape:window-width="1236" | |||||
| inkscape:window-height="882" | |||||
| inkscape:window-x="703" | |||||
| inkscape:window-y="17" | |||||
| inkscape:window-maximized="0" | |||||
| inkscape:snap-grids="false" | |||||
| showguides="false"> | |||||
| <inkscape:grid | |||||
| type="xygrid" | |||||
| id="grid823" /> | |||||
| </sodipodi:namedview> | |||||
| <metadata | |||||
| id="metadata16905"> | |||||
| <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(-230.09585,-120.75783)" | |||||
| style="display:inline" /> | |||||
| <g | |||||
| inkscape:groupmode="layer" | |||||
| id="layer2" | |||||
| inkscape:label="Layer 2" | |||||
| style="display:inline" | |||||
| transform="translate(0,2.4746042)"> | |||||
| <ellipse | |||||
| style="display:inline;fill:#0f1014;fill-opacity:1;stroke:none;stroke-width:0.85700715;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | |||||
| cx="5.9982929" | |||||
| cy="3.5691531" | |||||
| rx="5.9878855" | |||||
| ry="5.9880605" /> | |||||
| <g | |||||
| transform="matrix(1.0828486,0,0,1.0703412,-53.968945,-95.151223)" | |||||
| id="layer1-9" | |||||
| inkscape:label="Layer 1" | |||||
| style="fill:#323343;fill-opacity:1"> | |||||
| <path | |||||
| style="fill:#323343;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" | |||||
| d="m 60.020116,92.23473 c 0,2.532835 -2.053272,4.586111 -4.58611,4.586111 -2.534215,0 -4.586111,-2.053276 -4.586111,-4.586111 0,-2.532835 2.051896,-4.586111 4.586111,-4.586111 2.532838,0 4.58611,2.053276 4.58611,4.586111" | |||||
| id="path8217" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| style="clip-rule:nonzero;fill:#323343;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" | |||||
| d="m 55.434006,96.820841 c 0.549839,0 1.07763,-0.101974 1.566827,-0.279742 l -1.566827,-4.306369 -1.568204,4.306369 c 0.489197,0.177768 1.016988,0.279742 1.568204,0.279742" | |||||
| id="path47002" /> | |||||
| <path | |||||
| inkscape:connector-curvature="0" | |||||
| style="clip-rule:nonzero;fill:#323343;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" | |||||
| d="m 55.434006,92.23473 1.566827,-4.304993 c -0.489197,-0.179144 -1.016988,-0.281118 -1.566827,-0.281118 -0.551216,0 -1.079007,0.101974 -1.568204,0.281118 z m 0,0" | |||||
| id="path47006" /> | |||||
| </g> | |||||
| <path | |||||
| style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.25286552px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |||||
| d="m 25.1034,-38.881877 -1.304657,10.437256 2.654302,-0.04109 z" | |||||
| id="path4693" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | |||||
| style="fill:#666666;fill-opacity:0;stroke:#ffffff;stroke-width:0.52462262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 6.0576923,3.5714116 V -1.3734018" | |||||
| id="path4695" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -9,9 +9,9 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="50mm" | |||||
| height="50mm" | |||||
| viewBox="0 0 50 50" | |||||
| width="27mm" | |||||
| height="27mm" | |||||
| viewBox="0 0 27 27" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg16908" | id="svg16908" | ||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | ||||
| @@ -402,9 +402,9 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="1.4924731" | |||||
| inkscape:cx="-69.687058" | |||||
| inkscape:cy="20.410068" | |||||
| inkscape:zoom="4.773787" | |||||
| inkscape:cx="103.75815" | |||||
| inkscape:cy="52.665989" | |||||
| inkscape:document-units="px" | inkscape:document-units="px" | ||||
| inkscape:current-layer="layer2" | inkscape:current-layer="layer2" | ||||
| showgrid="true" | showgrid="true" | ||||
| @@ -431,7 +431,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -439,30 +439,30 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-230.09585,-82.75783)" | |||||
| transform="translate(-230.09585,-105.75783)" | |||||
| style="display:inline" /> | style="display:inline" /> | ||||
| <g | <g | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer2" | id="layer2" | ||||
| inkscape:label="Layer 2" | inkscape:label="Layer 2" | ||||
| style="display:inline" | style="display:inline" | ||||
| transform="translate(0,40.474603)"> | |||||
| transform="translate(0,17.474603)"> | |||||
| <ellipse | <ellipse | ||||
| style="fill:#05668d;fill-opacity:1;stroke:#04435e;stroke-width:1.73597777;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| style="fill:#05668d;fill-opacity:1;stroke:#04435e;stroke-width:0.94275683;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| id="path821" | id="path821" | ||||
| cx="25.017344" | |||||
| cy="-15.559858" | |||||
| rx="23.881493" | |||||
| ry="24.161268" /> | |||||
| cx="13.539449" | |||||
| cy="-3.9000092" | |||||
| rx="13.023881" | |||||
| ry="13.066276" /> | |||||
| <ellipse | <ellipse | ||||
| style="display:inline;fill:#03394d;fill-opacity:1;stroke:none;stroke-width:1.82540405;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| style="display:inline;fill:#03394d;fill-opacity:1;stroke:none;stroke-width:0.9913215;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | id="path821-6" | ||||
| cx="25.017344" | |||||
| cy="-15.559858" | |||||
| rx="12.680177" | |||||
| ry="12.828726" /> | |||||
| cx="13.539449" | |||||
| cy="-3.9000092" | |||||
| rx="6.9151921" | |||||
| ry="6.9377022" /> | |||||
| <g | <g | ||||
| transform="matrix(2.5891643,0,0,2.5891643,-118.38462,-254.36589)" | |||||
| transform="matrix(1.4120124,0,0,1.4002053,-64.665462,-133.04496)" | |||||
| id="layer1-9" | id="layer1-9" | ||||
| inkscape:label="Layer 1"> | inkscape:label="Layer 1"> | ||||
| <path | <path | ||||
| @@ -482,8 +482,8 @@ | |||||
| id="path47006" /> | id="path47006" /> | ||||
| </g> | </g> | ||||
| <path | <path | ||||
| style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.25286552px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |||||
| d="m 25.1034,-38.881877 -1.304657,10.437256 2.654302,-0.04109 z" | |||||
| style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13732359px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |||||
| d="m 13.58638,-16.512425 -0.7115,5.644409 1.447536,-0.02222 z" | |||||
| id="path4693" | id="path4693" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| </g> | </g> | ||||
| @@ -9,9 +9,9 @@ | |||||
| xmlns="http://www.w3.org/2000/svg" | xmlns="http://www.w3.org/2000/svg" | ||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
| width="20mm" | |||||
| height="20mm" | |||||
| viewBox="0 0 20 20" | |||||
| width="12mm" | |||||
| height="12mm" | |||||
| viewBox="0 0 12 12" | |||||
| version="1.1" | version="1.1" | ||||
| id="svg16908" | id="svg16908" | ||||
| inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" | ||||
| @@ -402,9 +402,9 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="3.0589652" | |||||
| inkscape:cx="-50.727259" | |||||
| inkscape:cy="-24.121809" | |||||
| inkscape:zoom="4.8921647" | |||||
| inkscape:cx="-26.810171" | |||||
| inkscape:cy="35.168381" | |||||
| inkscape:document-units="px" | inkscape:document-units="px" | ||||
| inkscape:current-layer="layer2" | inkscape:current-layer="layer2" | ||||
| showgrid="true" | showgrid="true" | ||||
| @@ -431,7 +431,7 @@ | |||||
| <dc:format>image/svg+xml</dc:format> | <dc:format>image/svg+xml</dc:format> | ||||
| <dc:type | <dc:type | ||||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
| <dc:title /> | |||||
| <dc:title></dc:title> | |||||
| </cc:Work> | </cc:Work> | ||||
| </rdf:RDF> | </rdf:RDF> | ||||
| </metadata> | </metadata> | ||||
| @@ -439,23 +439,23 @@ | |||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer1" | id="layer1" | ||||
| transform="translate(-230.09585,-112.75783)" | |||||
| transform="translate(-230.09585,-120.75783)" | |||||
| style="display:inline" /> | style="display:inline" /> | ||||
| <g | <g | ||||
| inkscape:groupmode="layer" | inkscape:groupmode="layer" | ||||
| id="layer2" | id="layer2" | ||||
| inkscape:label="Layer 2" | inkscape:label="Layer 2" | ||||
| style="display:inline" | style="display:inline" | ||||
| transform="translate(0,10.474604)"> | |||||
| transform="translate(0,2.4746042)"> | |||||
| <ellipse | <ellipse | ||||
| style="display:inline;fill:#a5be00;fill-opacity:1;stroke:none;stroke-width:1.43382859;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| style="display:inline;fill:#a5be00;fill-opacity:1;stroke:none;stroke-width:0.85700715;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill" | |||||
| id="path821-6" | id="path821-6" | ||||
| cx="10.028528" | |||||
| cy="-0.46119985" | |||||
| rx="10.018121" | |||||
| ry="10.018414" /> | |||||
| cx="5.9982929" | |||||
| cy="3.5691531" | |||||
| rx="5.9878855" | |||||
| ry="5.9880605" /> | |||||
| <g | <g | ||||
| transform="matrix(1.8116759,0,0,1.7907501,-90.300547,-165.62678)" | |||||
| transform="matrix(1.0828486,0,0,1.0703412,-53.968945,-95.151223)" | |||||
| id="layer1-9" | id="layer1-9" | ||||
| inkscape:label="Layer 1" | inkscape:label="Layer 1" | ||||
| style="fill:#e7e7e7;fill-opacity:1"> | style="fill:#e7e7e7;fill-opacity:1"> | ||||
| @@ -481,8 +481,8 @@ | |||||
| id="path4693" | id="path4693" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| <path | <path | ||||
| style="fill:#a5be00;fill-opacity:0;stroke:#3f4800;stroke-width:0.87772757;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 10.127907,-0.45742148 V -8.7304144" | |||||
| style="fill:#a5be00;fill-opacity:0;stroke:#3f4800;stroke-width:0.52462262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
| d="M 6.0576923,3.5714116 V -1.3734018" | |||||
| id="path4695" | id="path4695" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| </g> | </g> | ||||
| @@ -0,0 +1,316 @@ | |||||
| /////////////////////////////////////////////////// | |||||
| // dBiz FourSeq | |||||
| // | |||||
| /////////////////////////////////////////////////// | |||||
| #include "dBiz.hpp" | |||||
| #include "dsp/digital.hpp" | |||||
| using namespace std; | |||||
| namespace rack_plugin_dBiz { | |||||
| /////added fine out ///////////////////////////////////////////////// | |||||
| struct FourSeq : Module { | |||||
| enum ParamIds | |||||
| { | |||||
| RESET_PARAM, | |||||
| STEPA_PARAM, | |||||
| STEPB_PARAM, | |||||
| GATEA_PARAM, | |||||
| GATEB_PARAM= GATEA_PARAM+4, | |||||
| SEQA_PARAM = GATEB_PARAM+4, | |||||
| SEQB_PARAM =SEQA_PARAM+4, | |||||
| NUM_PARAMS = SEQB_PARAM+4 | |||||
| }; | |||||
| enum InputIds | |||||
| { | |||||
| RESET_INPUT, | |||||
| CLKA_INPUT, | |||||
| CLKB_INPUT, | |||||
| CVA_INPUT, | |||||
| CVB_INPUT = CVA_INPUT +4, | |||||
| NUM_INPUTS = CVB_INPUT +4 | |||||
| }; | |||||
| enum OutputIds | |||||
| { | |||||
| SEQA_OUTPUT, | |||||
| SEQB_OUTPUT, | |||||
| GATEA_OUTPUT, | |||||
| GATEB_OUTPUT, | |||||
| NUM_OUTPUTS | |||||
| }; | |||||
| enum LighIds | |||||
| { | |||||
| RESET_LIGHT, | |||||
| SEQA_LIGHT, | |||||
| SEQB_LIGHT = SEQA_LIGHT + 4, | |||||
| GATEA_LIGHT = SEQB_LIGHT+ 4, | |||||
| GATEB_LIGHT = GATEA_LIGHT + 4, | |||||
| NUM_LIGHTS = GATEB_LIGHT + 4 | |||||
| }; | |||||
| SchmittTrigger clk; | |||||
| SchmittTrigger clkb; | |||||
| SchmittTrigger reset_button; | |||||
| PulseGenerator gate1; | |||||
| PulseGenerator gate2; | |||||
| SchmittTrigger gate_a[4] = {}; | |||||
| SchmittTrigger gate_b[4] = {}; | |||||
| bool gateState_a[4] = {}; | |||||
| bool gateState_b[4] = {}; | |||||
| bool gateState[8] = {}; | |||||
| bool pulse1; | |||||
| bool pulse2; | |||||
| int clk1C = 0; | |||||
| int clk2C = 0; | |||||
| int maxStepA = 0; | |||||
| int maxStepB = 0; | |||||
| enum GateMode | |||||
| { | |||||
| TRIGGER, | |||||
| RETRIGGER, | |||||
| CONTINUOUS | |||||
| }; | |||||
| GateMode gateMode = TRIGGER; | |||||
| FourSeq() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | |||||
| void step() override; | |||||
| json_t *toJson() override | |||||
| { | |||||
| json_t *rootJ = json_object(); | |||||
| json_t *gatesJ = json_array(); | |||||
| for (int i = 0; i < 8; i++) | |||||
| { | |||||
| json_t *gateJ = json_integer((int)gateState[i]); | |||||
| json_array_append_new(gatesJ, gateJ); | |||||
| } | |||||
| json_object_set_new(rootJ, "gate", gatesJ); | |||||
| json_t *gateModeJ = json_integer((int)gateMode); | |||||
| json_object_set_new(rootJ, "gateMode", gateModeJ); | |||||
| return rootJ; | |||||
| } | |||||
| void fromJson(json_t *rootJ) override | |||||
| { | |||||
| json_t *gatesJ = json_object_get(rootJ, "gates"); | |||||
| if (gatesJ) | |||||
| { | |||||
| for (int i = 0; i < 8; i++) | |||||
| { | |||||
| json_t *gateJ = json_array_get(gatesJ, i); | |||||
| if (gateJ) | |||||
| gateState[i] = !!json_integer_value(gateJ); | |||||
| } | |||||
| } | |||||
| // gateMode | |||||
| json_t *gateModeJ = json_object_get(rootJ, "gateMode"); | |||||
| if (gateModeJ) | |||||
| gateMode = (GateMode)json_integer_value(gateModeJ); | |||||
| } | |||||
| void reset() override | |||||
| { | |||||
| for (int i = 0; i < 8; i++) | |||||
| { | |||||
| gateState[i] = false; | |||||
| } | |||||
| } | |||||
| }; | |||||
| ///////////////////////////////////////////////////// | |||||
| void FourSeq::step() | |||||
| { | |||||
| if (params[STEPA_PARAM].value == 0) maxStepA = 3; | |||||
| if (params[STEPA_PARAM].value == 1) { maxStepA = 2; lights[SEQA_LIGHT+3].value = 0.0;} | |||||
| if (params[STEPA_PARAM].value == 2) {maxStepA = 1; lights[SEQA_LIGHT+2].value = 0.0;} | |||||
| if (params[STEPB_PARAM].value == 0) maxStepB = 3; | |||||
| if (params[STEPB_PARAM].value == 1) {maxStepB = 2; lights[SEQB_LIGHT+3].value = 0.0;} | |||||
| if (params[STEPB_PARAM].value == 2) {maxStepB = 1; lights[SEQB_LIGHT+2].value = 0.0;} | |||||
| if (reset_button.process(params[RESET_PARAM].value+inputs[RESET_INPUT].value)) | |||||
| { | |||||
| reset(); | |||||
| clk1C=0; | |||||
| lights[SEQA_LIGHT + clk1C].value = 1.0f; | |||||
| clk2C=0; | |||||
| lights[SEQB_LIGHT + clk2C].value = 1.0; | |||||
| lights[RESET_LIGHT].value=1.0; | |||||
| } | |||||
| if(lights[RESET_LIGHT].value>0) | |||||
| { | |||||
| lights[RESET_LIGHT].value -= lights[RESET_LIGHT].value / 0.1 / engineGetSampleRate(); | |||||
| } | |||||
| if (inputs[CLKA_INPUT].active) | |||||
| { | |||||
| if (clk.process(inputs[CLKA_INPUT].value)) | |||||
| { | |||||
| clk1C++; | |||||
| lights[SEQA_LIGHT + clk1C].value = 1.0f; | |||||
| gate1.trigger(1e-3); | |||||
| } | |||||
| if (clk1C > maxStepA) | |||||
| { | |||||
| clk1C = 0; | |||||
| lights[SEQA_LIGHT + clk1C].value = 1.0; | |||||
| } | |||||
| pulse1 = gate1.process(1.0f / engineGetSampleRate()); | |||||
| if (lights[SEQA_LIGHT + clk1C].value > 0) | |||||
| { | |||||
| lights[SEQA_LIGHT + clk1C].value -= lights[SEQA_LIGHT + clk1C].value / 0.01 / engineGetSampleRate(); | |||||
| } | |||||
| } | |||||
| else for (int i=0;i<4;i++){ lights[SEQA_LIGHT+i].value=0.0;} | |||||
| if (inputs[CLKB_INPUT].active) | |||||
| { | |||||
| if (clkb.process(inputs[CLKB_INPUT].value)) | |||||
| { | |||||
| clk2C++; | |||||
| lights[SEQB_LIGHT + clk2C].value = 1.0f; | |||||
| gate2.trigger(1e-3); | |||||
| } | |||||
| if (clk2C > maxStepB) | |||||
| { | |||||
| clk2C = 0; | |||||
| lights[SEQB_LIGHT + clk2C].value = 1.0; | |||||
| } | |||||
| pulse2 = gate2.process(1.0f / engineGetSampleRate()); | |||||
| if (lights[SEQB_LIGHT + clk2C].value > 0) | |||||
| { | |||||
| lights[SEQB_LIGHT + clk2C].value -= lights[SEQB_LIGHT + clk2C].value / 0.01 / engineGetSampleRate(); | |||||
| } | |||||
| } | |||||
| else for (int i=0;i<4;i++){ lights[SEQB_LIGHT+i].value=0.0;} | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| gateState[i] = gateState_a[i]; | |||||
| gateState[4 + i] = gateState_b[i]; | |||||
| } | |||||
| if (gateState_a[clk1C]) | |||||
| { | |||||
| outputs[SEQA_OUTPUT].value =clamp(inputs[CVA_INPUT+clk1C].value+params[SEQA_PARAM + clk1C].value,-3.0,3.0); | |||||
| outputs[GATEA_OUTPUT].value = pulse1 ? 10.0f : 0.0f; | |||||
| } | |||||
| if (gateState_b[clk2C]) | |||||
| { | |||||
| outputs[SEQB_OUTPUT].value =clamp(inputs[CVB_INPUT+clk2C].value+params[SEQB_PARAM + clk2C].value,-3.0,3.0); | |||||
| outputs[GATEB_OUTPUT].value = pulse2 ? 10.0f : 0.0f; | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| if (gate_a[i].process(params[GATEA_PARAM + i].value)) | |||||
| { | |||||
| gateState_a[i] = !gateState_a[i]; | |||||
| } | |||||
| lights[GATEA_LIGHT + i].value = gateState_a[i] ? 1.0 : 0.0; | |||||
| if (gate_b[i].process(params[GATEB_PARAM + i].value)) | |||||
| { | |||||
| gateState_b[i] = !gateState_b[i]; | |||||
| } | |||||
| lights[GATEB_LIGHT + i].value = gateState_b[i] ? 1.0 : 0.0; | |||||
| } | |||||
| } | |||||
| struct FourSeqWidget : ModuleWidget | |||||
| { | |||||
| FourSeqWidget(FourSeq *module) : ModuleWidget(module) | |||||
| { | |||||
| box.size = Vec(15*8, 380); | |||||
| { | |||||
| SVGPanel *panel = new SVGPanel(); | |||||
| panel->box.size = box.size; | |||||
| panel->setBackground(SVG::load(assetPlugin(plugin,"res/FourSeq.svg"))); | |||||
| addChild(panel); | |||||
| } | |||||
| //Screw | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365))); | |||||
| int knob=35; | |||||
| int jack = 27; | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(70, 28 + knob * i), module, FourSeq::SEQA_PARAM + i, -3.0,3.0, 0.0)); | |||||
| addParam(ParamWidget::create<LEDBezel>(Vec(15, 31 + knob * i), module, FourSeq::GATEA_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addChild(GrayModuleLightWidget::create<BigLight<OrangeLight>>(Vec(16, 32 + knob * i),module , FourSeq::GATEA_LIGHT+i)); | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(70, 172 + knob * i), module, FourSeq::SEQB_PARAM + i, -3.0, 3.0, 0.0)); | |||||
| addParam(ParamWidget::create<LEDBezel>(Vec(15, 175 + knob * i), module, FourSeq::GATEB_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addChild(GrayModuleLightWidget::create<BigLight<OrangeLight>>(Vec(16, 176 + knob * i), module, FourSeq::GATEB_LIGHT + i)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(40, 30.5 + knob * i), Port::INPUT, module, FourSeq::CVA_INPUT + i)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(40, 173.5 + knob * i), Port::INPUT, module, FourSeq::CVB_INPUT + i)); | |||||
| addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(105, 38 + knob * i), module, FourSeq::SEQA_LIGHT + i)); | |||||
| addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(105, 180 + knob * i), module, FourSeq::SEQB_LIGHT + i)); | |||||
| } | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(14, 170 + knob * 4), Port::INPUT, module, FourSeq::CLKA_INPUT)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(14, 197 + knob * 4), Port::INPUT, module, FourSeq::CLKB_INPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(14+jack, 170 + knob * 4), Port::OUTPUT, module, FourSeq::SEQA_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(14+jack, 197 + knob *4), Port::OUTPUT, module, FourSeq::SEQB_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(14 + jack*2, 170 + knob * 4), Port::OUTPUT, module, FourSeq::GATEA_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(14 + jack*2, 197 + knob * 4), Port::OUTPUT, module, FourSeq::GATEB_OUTPUT)); | |||||
| addParam(ParamWidget::create<MCKSSS>(Vec(14 + jack * 3, 172 + knob * 4), module, FourSeq::STEPA_PARAM, 0.0, 2.0, 0.0)); | |||||
| addParam(ParamWidget::create<MCKSSS>(Vec(14 + jack * 3, 199 + knob * 4), module, FourSeq::STEPB_PARAM, 0.0, 2.0, 0.0)); | |||||
| addParam(ParamWidget::create<LEDBezel>(Vec(35+jack, 4), module, FourSeq::RESET_PARAM, 0.0, 1.0, 0.0)); | |||||
| addChild(GrayModuleLightWidget::create<BigLight<OrangeLight>>(Vec(36+jack,5), module, FourSeq::RESET_LIGHT)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(35, 4), Port::INPUT, module, FourSeq::RESET_INPUT)); | |||||
| } | |||||
| }; | |||||
| } // namespace rack_plugin_dBiz | |||||
| using namespace rack_plugin_dBiz; | |||||
| RACK_PLUGIN_MODEL_INIT(dBiz, FourSeq) { | |||||
| Model *modelFourSeq = Model::create<FourSeq, FourSeqWidget>("dBiz", "FourSeq", "FourSeq", SEQUENCER_TAG); | |||||
| return modelFourSeq; | |||||
| } | |||||
| @@ -473,13 +473,13 @@ Bene2Widget(Bene2 *module) : ModuleWidget(module) | |||||
| for (int i=0;i<4;i++) | for (int i=0;i<4;i++) | ||||
| { | { | ||||
| addInput(Port::create<PJ301MPort>(Vec(lb, top+jacks*i), Port::INPUT, module, Bene2::LEFT+i)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(lb+27, top+jacks*i), Port::INPUT, module, Bene2::RIGHT+i)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(lb + 27 + 27, top + jacks * i), Port::INPUT, module, Bene2::RESETL + i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb, top+jacks*i), Port::INPUT, module, Bene2::LEFT+i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb+27, top+jacks*i), Port::INPUT, module, Bene2::RIGHT+i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb + 27 + 27, top + jacks * i), Port::INPUT, module, Bene2::RESETL + i)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(lb, top+jacks*i + 140), Port::INPUT, module, Bene2::UP+i)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(lb + 27, top + jacks * i + 140), Port::INPUT, module, Bene2::DOWN + i)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(lb + 27 + 27, top + jacks * i + 140), Port::INPUT, module, Bene2::RESETC + i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb, top+jacks*i + 140), Port::INPUT, module, Bene2::UP+i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb + 27, top + jacks * i + 140), Port::INPUT, module, Bene2::DOWN + i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb + 27 + 27, top + jacks * i + 140), Port::INPUT, module, Bene2::RESETC + i)); | |||||
| } | } | ||||
| addParam(ParamWidget::create<LEDBezel>(Vec(lb,5+ 10 ), module, Bene2::RUNL_PARAM, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<LEDBezel>(Vec(lb,5+ 10 ), module, Bene2::RUNL_PARAM, 0.0, 1.0, 0.0)); | ||||
| @@ -488,8 +488,8 @@ addParam(ParamWidget::create<LEDBezel>(Vec(lb,5+ 10+30), module, Bene2::RUNC_PAR | |||||
| addChild(GrayModuleLightWidget::create<RunLight<OrangeLight>>(Vec(lb+3,5+ 10+3), module, Bene2::RUNL_LIGHT)); | addChild(GrayModuleLightWidget::create<RunLight<OrangeLight>>(Vec(lb+3,5+ 10+3), module, Bene2::RUNL_LIGHT)); | ||||
| addChild(GrayModuleLightWidget::create<RunLight<OrangeLight>>(Vec(lb+3,5+ 10+3+30), module, Bene2::RUNC_LIGHT)); | addChild(GrayModuleLightWidget::create<RunLight<OrangeLight>>(Vec(lb+3,5+ 10+3+30), module, Bene2::RUNC_LIGHT)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(lb+30,5+ 9), Port::INPUT, module, Bene2::RUNL_INPUT)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(lb+ 30,5+ 9 + 30), Port::INPUT, module, Bene2::RUNC_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb+30,5+ 9), Port::INPUT, module, Bene2::RUNL_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb+ 30,5+ 9 + 30), Port::INPUT, module, Bene2::RUNC_INPUT)); | |||||
| addParam(ParamWidget::create<LEDBezel>(Vec(lb+ 120, 5 + 10), module, Bene2::RESET_LINE, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<LEDBezel>(Vec(lb+ 120, 5 + 10), module, Bene2::RESET_LINE, 0.0, 1.0, 0.0)); | ||||
| addParam(ParamWidget::create<LEDBezel>(Vec(lb+ 120, 5 + 10 + 30), module, Bene2::RESET_COL, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<LEDBezel>(Vec(lb+ 120, 5 + 10 + 30), module, Bene2::RESET_COL, 0.0, 1.0, 0.0)); | ||||
| @@ -497,10 +497,10 @@ addParam(ParamWidget::create<LEDBezel>(Vec(lb+ 120, 5 + 10 + 30), module, Bene2: | |||||
| addChild(GrayModuleLightWidget::create<RunLight<OrangeLight>>(Vec(lb + 120+3, 5 + 10 + 3), module, Bene2::RESETL_LIGHT)); | addChild(GrayModuleLightWidget::create<RunLight<OrangeLight>>(Vec(lb + 120+3, 5 + 10 + 3), module, Bene2::RESETL_LIGHT)); | ||||
| addChild(GrayModuleLightWidget::create<RunLight<OrangeLight>>(Vec(lb + 120+3, 5 + 10 + 3 + 30), module, Bene2::RESETC_LIGHT)); | addChild(GrayModuleLightWidget::create<RunLight<OrangeLight>>(Vec(lb + 120+3, 5 + 10 + 3 + 30), module, Bene2::RESETC_LIGHT)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(lb + 150, 5 + 9), Port::INPUT, module, Bene2::RESETL_INPUT)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(lb + 150, 5 + 9 + 30), Port::INPUT, module, Bene2::RESETC_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb + 150, 5 + 9), Port::INPUT, module, Bene2::RESETL_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(lb + 150, 5 + 9 + 30), Port::INPUT, module, Bene2::RESETC_INPUT)); | |||||
| //addInput(Port::create<PJ301MPort>(Vec(left + column_spacing * 3, top ), Port::INPUT, module, Bene2::RESET)); | |||||
| //addInput(Port::create<PJ301MCPort>(Vec(left + column_spacing * 3, top ), Port::INPUT, module, Bene2::RESET)); | |||||
| for ( int i = 0 ; i < 4 ; i++) | for ( int i = 0 ; i < 4 ; i++) | ||||
| @@ -9,17 +9,12 @@ struct sinebank { | |||||
| float phase = 0.0; | float phase = 0.0; | ||||
| float freq; | float freq; | ||||
| float pitch; | float pitch; | ||||
| float pitchSlew = 0.0; | |||||
| int pitchSlewIndex = 0; | |||||
| //void setPitch(float pitchKnob, float pitchCv) | //void setPitch(float pitchKnob, float pitchCv) | ||||
| void setPitch(float pitchKnob, float pitchCv) | void setPitch(float pitchKnob, float pitchCv) | ||||
| { | { | ||||
| // Compute frequency | // Compute frequency | ||||
| pitch = pitchKnob; | pitch = pitchKnob; | ||||
| // Apply pitch slew | |||||
| const float pitchSlewAmount = 3.0; | |||||
| pitch += pitchSlew * pitchSlewAmount; | |||||
| pitch += pitchCv; | pitch += pitchCv; | ||||
| // Note C3 | // Note C3 | ||||
| freq = 261.626 * powf(2.0, pitch / 12.0); | freq = 261.626 * powf(2.0, pitch / 12.0); | ||||
| @@ -31,16 +26,17 @@ struct sinebank { | |||||
| void setFreq(float freq2) | void setFreq(float freq2) | ||||
| { | { | ||||
| // Accumulate the phase | // Accumulate the phase | ||||
| phase += freq2 * deltaTime; | phase += freq2 * deltaTime; | ||||
| if (phase >= 1.0) | if (phase >= 1.0) | ||||
| phase -= 1.0; | phase -= 1.0; | ||||
| } | } | ||||
| float sin() { | |||||
| return sinf(2*M_PI * phase); | |||||
| float light() | |||||
| { | |||||
| return sinf(2 * M_PI * phase); | |||||
| } | } | ||||
| }; | }; | ||||
| @@ -53,7 +49,6 @@ struct DAOSC : Module { | |||||
| A_FINE_PARAM, | A_FINE_PARAM, | ||||
| A_FOLD_PARAM, | A_FOLD_PARAM, | ||||
| A_DRIVE_PARAM, | A_DRIVE_PARAM, | ||||
| //A_MODE_PARAM, | |||||
| A_SAW_PARAM, | A_SAW_PARAM, | ||||
| A_SQUARE_PARAM, | A_SQUARE_PARAM, | ||||
| A_FM_PARAM, | A_FM_PARAM, | ||||
| @@ -62,7 +57,6 @@ struct DAOSC : Module { | |||||
| B_FINE_PARAM, | B_FINE_PARAM, | ||||
| B_FOLD_PARAM, | B_FOLD_PARAM, | ||||
| B_DRIVE_PARAM, | B_DRIVE_PARAM, | ||||
| //B_MODE_PARAM, | |||||
| B_SAW_PARAM, | B_SAW_PARAM, | ||||
| B_SQUARE_PARAM, | B_SQUARE_PARAM, | ||||
| B_FM_PARAM, | B_FM_PARAM, | ||||
| @@ -79,7 +73,6 @@ struct DAOSC : Module { | |||||
| A_PITCH_INPUT, | A_PITCH_INPUT, | ||||
| A_FOLD_INPUT, | A_FOLD_INPUT, | ||||
| A_DRIVE_INPUT, | A_DRIVE_INPUT, | ||||
| //A_OFF_INPUT, | |||||
| B_FM_INPUT, | B_FM_INPUT, | ||||
| B_SAW_INPUT, | B_SAW_INPUT, | ||||
| @@ -87,7 +80,6 @@ struct DAOSC : Module { | |||||
| B_PITCH_INPUT, | B_PITCH_INPUT, | ||||
| B_DRIVE_INPUT, | B_DRIVE_INPUT, | ||||
| B_FOLD_INPUT, | B_FOLD_INPUT, | ||||
| //B_OFF_INPUT, | |||||
| NUM_INPUTS | NUM_INPUTS | ||||
| }; | }; | ||||
| enum OutputIds | enum OutputIds | ||||
| @@ -97,39 +89,27 @@ struct DAOSC : Module { | |||||
| SUM_OUTPUT, | SUM_OUTPUT, | ||||
| NUM_OUTPUTS | NUM_OUTPUTS | ||||
| }; | }; | ||||
| enum LightIds { | |||||
| NUM_LIGHTS | |||||
| enum sinIds { | |||||
| NUM_sinS | |||||
| }; | }; | ||||
| float phase = 0.0; | float phase = 0.0; | ||||
| float blinkPhase = 0.0; | float blinkPhase = 0.0; | ||||
| sinebank osc_a; | sinebank osc_a; | ||||
| sinebank a_harmonic[20]={}; | |||||
| sinebank a_harmonicq[20] = {}; | |||||
| sinebank a_harmonic[5]={}; | |||||
| sinebank a_harmonicq[5] = {}; | |||||
| sinebank osc_b; | sinebank osc_b; | ||||
| sinebank b_harmonic[20] = {}; | |||||
| sinebank b_harmonicq[20] = {}; | |||||
| sinebank b_harmonic[5] = {}; | |||||
| sinebank b_harmonicq[5] = {}; | |||||
| DAOSC() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | |||||
| DAOSC() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_sinS) {} | |||||
| void step() override; | void step() override; | ||||
| }; | }; | ||||
| void DAOSC::step() { | void DAOSC::step() { | ||||
| int a_harm = round(params[A_SAW_PARAM].value+clamp(inputs[A_SAW_INPUT].value, 0.0f, 19.0f)); | |||||
| int a_harmq = round(params[A_SQUARE_PARAM].value+clamp(inputs[A_SQUARE_INPUT].value, 0.0f, 19.0f)); | |||||
| int b_harm = round(params[B_SAW_PARAM].value + clamp(inputs[B_SAW_INPUT].value, 0.0f, 19.0f)); | |||||
| int b_harmq = round(params[B_SQUARE_PARAM].value + clamp(inputs[B_SQUARE_INPUT].value, 0.0f, 19.0f)); | |||||
| if(a_harm >20) a_harm = 20; | |||||
| if(a_harmq>20) a_harmq = 20; | |||||
| if(b_harm >20) b_harm = 20; | |||||
| if(b_harmq>20) b_harmq = 20; | |||||
| float a_harmsum = 0.0; | float a_harmsum = 0.0; | ||||
| float a_harmsumq = 0.0; | float a_harmsumq = 0.0; | ||||
| float b_harmsum = 0.0; | float b_harmsum = 0.0; | ||||
| @@ -154,36 +134,28 @@ void DAOSC::step() { | |||||
| osc_a.setPitch(params[A_PITCH_PARAM].value, a_pitchFine + a_pitchCv); | osc_a.setPitch(params[A_PITCH_PARAM].value, a_pitchFine + a_pitchCv); | ||||
| osc_b.setPitch(params[B_PITCH_PARAM].value, b_pitchFine + b_pitchCv); | osc_b.setPitch(params[B_PITCH_PARAM].value, b_pitchFine + b_pitchCv); | ||||
| for (int i = 1; i < a_harm; i++) | |||||
| { | |||||
| a_harmonic[i].setFreq((i*2)*osc_a.freq); | |||||
| a_harmsum += a_harmonic[i].light()*3.0/i; | |||||
| } | |||||
| for (int i =0; i < 5; i++) | |||||
| { | |||||
| a_harmonic[i].setFreq(((i+1)*2)*osc_a.freq); | |||||
| a_harmsum += (a_harmonic[i].sin()/(i+2))*params[A_SAW_PARAM].value+clamp(inputs[A_SAW_INPUT].value, 0.0f, 1.0f); | |||||
| for (int i = 1; i < a_harmq; i++) | |||||
| { | |||||
| a_harmonicq[i].setFreq(((i * 2) + 1) * osc_a.freq); | |||||
| a_harmsumq += a_harmonicq[i].light() * 3.0/ i; | |||||
| } | |||||
| a_harmonicq[i].setFreq((((i+1)*2)+1) * osc_a.freq); | |||||
| a_harmsumq += (a_harmonicq[i].sin()/(i+2))*params[A_SQUARE_PARAM].value+clamp(inputs[A_SQUARE_INPUT].value, 0.0f, 1.0f); | |||||
| for (int i = 1; i < b_harm; i++) | |||||
| { | |||||
| b_harmonic[i].setFreq((i * 2) * osc_b.freq); | |||||
| b_harmsum += b_harmonic[i].light() * 3.0/ i; | |||||
| } | |||||
| b_harmonic[i].setFreq(((i+1)*2) * osc_b.freq); | |||||
| b_harmsum += (b_harmonic[i].sin()/(i+2))*params[B_SAW_PARAM].value+ clamp(inputs[B_SAW_INPUT].value, 0.0f, 1.0f); | |||||
| for (int i = 1; i < b_harmq; i++) | |||||
| { | |||||
| b_harmonicq[i].setFreq(((i * 2) + 1) * osc_b.freq); | |||||
| b_harmsumq += b_harmonicq[i].light() * 3.0 / i; | |||||
| } | |||||
| b_harmonicq[i].setFreq((((i+1)*2)+1) * osc_b.freq); | |||||
| b_harmsumq += (b_harmonicq[i].sin()/(i+2))*params[B_SQUARE_PARAM].value+ clamp(inputs[B_SQUARE_INPUT].value, 0.0f, 1.0f); | |||||
| } | |||||
| //////////////// Contrast - Thx to Michael Hetrick!!! | //////////////// Contrast - Thx to Michael Hetrick!!! | ||||
| ////////////////A | ////////////////A | ||||
| float a_inputf = 3.0 * osc_a.light() + a_harmsum + a_harmsumq; | |||||
| float b_inputf = 3.0 * osc_b.light() + b_harmsum + b_harmsumq; | |||||
| float a_inputf = 2*(osc_a.sin() + a_harmsum + a_harmsumq); | |||||
| float b_inputf = 2*(osc_b.sin() + b_harmsum + b_harmsumq); | |||||
| a_inputf = clamp(a_inputf, -6.0f, 6.0f) * 0.2f; | a_inputf = clamp(a_inputf, -6.0f, 6.0f) * 0.2f; | ||||
| b_inputf = clamp(b_inputf, -6.0f, 6.0f) * 0.2f; | b_inputf = clamp(b_inputf, -6.0f, 6.0f) * 0.2f; | ||||
| @@ -234,13 +206,12 @@ void DAOSC::step() { | |||||
| a_outputd = a_outputd / ((std::abs(a_inputd) * a_shapeA) + a_shapeB); | a_outputd = a_outputd / ((std::abs(a_inputd) * a_shapeA) + a_shapeB); | ||||
| b_outputd = b_outputd / ((std::abs(b_inputd) * b_shapeA) + b_shapeB); | b_outputd = b_outputd / ((std::abs(b_inputd) * b_shapeA) + b_shapeB); | ||||
| b_outputd *= 1.0f; | |||||
| //////////////////////////////////////////////////////// | //////////////////////////////////////////////////////// | ||||
| outputs[A_OUTPUT].value = 3.0 * a_outputd; | |||||
| outputs[B_OUTPUT].value = 3.0 * b_outputd; | |||||
| outputs[A_OUTPUT].value = 5.0f * a_outputd; | |||||
| outputs[B_OUTPUT].value = 5.0f * b_outputd; | |||||
| outputs[SUM_OUTPUT].value = 3.0 * (a_outputd + b_outputd) / 2; | |||||
| outputs[SUM_OUTPUT].value = 5.0f * (a_outputd + b_outputd) / 2; | |||||
| } | } | ||||
| struct DAOSCWidget : ModuleWidget | struct DAOSCWidget : ModuleWidget | ||||
| @@ -273,35 +244,35 @@ int down = 50; | |||||
| addParam(ParamWidget::create<LRoundWhy>(Vec(box.size.x-mid-50, top), module, DAOSC::A_PITCH_PARAM, -54.0, 54.0, 0.0)); | addParam(ParamWidget::create<LRoundWhy>(Vec(box.size.x-mid-50, top), module, DAOSC::A_PITCH_PARAM, -54.0, 54.0, 0.0)); | ||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid-knob*2 - 10, top), module, DAOSC::A_FINE_PARAM, -1.0, 1.0, 0.0)); | addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid-knob*2 - 10, top), module, DAOSC::A_FINE_PARAM, -1.0, 1.0, 0.0)); | ||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x - mid - knob * 1 , top + knob + 35), module, DAOSC::A_FM_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x - mid - knob * 1 , top + knob + 45), module, DAOSC::A_FM_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundAzz>(Vec(box.size.x - mid - knob * 2 - 5, top + knob + 5), module, DAOSC::A_FOLD_PARAM, 0.0, 5.0, 0.0)); | addParam(ParamWidget::create<RoundAzz>(Vec(box.size.x - mid - knob * 2 - 5, top + knob + 5), module, DAOSC::A_FOLD_PARAM, 0.0, 5.0, 0.0)); | ||||
| addParam(ParamWidget::create<RoundRed>(Vec(box.size.x - mid - knob * 2 - 5, 125), module, DAOSC::A_DRIVE_PARAM, -5.0, 5.0, 0.0)); | addParam(ParamWidget::create<RoundRed>(Vec(box.size.x - mid - knob * 2 - 5, 125), module, DAOSC::A_DRIVE_PARAM, -5.0, 5.0, 0.0)); | ||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid-knob, 157), module, DAOSC::A_SQUARE_PARAM, 1.0, 20.0, 1.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid-knob*2, 177), module, DAOSC::A_SAW_PARAM, 1.0, 20.0, 1.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid-knob, 157), module, DAOSC::A_SQUARE_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid-knob*2, 177), module, DAOSC::A_SAW_PARAM, 0.0, 1.0, 0.0)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack-5, 160+down), Port::INPUT, module, DAOSC::A_FM_INPUT)); | addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack-5, 160+down), Port::INPUT, module, DAOSC::A_FM_INPUT)); | ||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack-5, 190+down), Port::INPUT, module, DAOSC::A_PITCH_INPUT)); | addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack-5, 190+down), Port::INPUT, module, DAOSC::A_PITCH_INPUT)); | ||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack*2-5, 190+down), Port::INPUT, module, DAOSC::A_FOLD_INPUT)); | addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack*2-5, 190+down), Port::INPUT, module, DAOSC::A_FOLD_INPUT)); | ||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack*3-5, 190+down), Port::INPUT, module, DAOSC::A_DRIVE_INPUT)); | addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack*3-5, 190+down), Port::INPUT, module, DAOSC::A_DRIVE_INPUT)); | ||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack*2-5, 230+down), Port::INPUT, module, DAOSC::A_SAW_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack*3-5, 230+down), Port::INPUT, module, DAOSC::A_SQUARE_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack*2-5, 230+down), Port::INPUT, module, DAOSC::A_SQUARE_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid-jack*3-5, 230+down), Port::INPUT, module, DAOSC::A_SAW_INPUT)); | |||||
| addOutput(Port::create<PJ301MOPort>(Vec(box.size.x - mid-jack-5, 230+down), Port::OUTPUT, module, DAOSC::A_OUTPUT)); | addOutput(Port::create<PJ301MOPort>(Vec(box.size.x - mid-jack-5, 230+down), Port::OUTPUT, module, DAOSC::A_OUTPUT)); | ||||
| addParam(ParamWidget::create<LRoundWhy>(Vec(box.size.x-mid+5, top), module, DAOSC::B_PITCH_PARAM, -54.0, 54.0, 0.0)); | addParam(ParamWidget::create<LRoundWhy>(Vec(box.size.x-mid+5, top), module, DAOSC::B_PITCH_PARAM, -54.0, 54.0, 0.0)); | ||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid+5+knob+10, top), module, DAOSC::B_FINE_PARAM, -1.0, 1.0, 0.0)); | addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid+5+knob+10, top), module, DAOSC::B_FINE_PARAM, -1.0, 1.0, 0.0)); | ||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x - mid + 5, top + knob+35), module, DAOSC::B_FM_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x - mid + 5, top + knob+45), module, DAOSC::B_FM_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundAzz>(Vec(box.size.x - mid + 10 + knob, top + knob + 5), module, DAOSC::B_FOLD_PARAM, 0.0, 5.0, 0.0)); | addParam(ParamWidget::create<RoundAzz>(Vec(box.size.x - mid + 10 + knob, top + knob + 5), module, DAOSC::B_FOLD_PARAM, 0.0, 5.0, 0.0)); | ||||
| addParam(ParamWidget::create<RoundRed>(Vec(box.size.x - mid + 10 + knob, 125), module, DAOSC::B_DRIVE_PARAM, -5.0, 5.0, 0.0)); | addParam(ParamWidget::create<RoundRed>(Vec(box.size.x - mid + 10 + knob, 125), module, DAOSC::B_DRIVE_PARAM, -5.0, 5.0, 0.0)); | ||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid+5, 157), module, DAOSC::B_SQUARE_PARAM, 1.0, 20.0, 1.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid+5+knob, 177), module, DAOSC::B_SAW_PARAM, 1.0, 20.0, 1.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid+5, 157), module, DAOSC::B_SQUARE_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x-mid+5+knob, 177), module, DAOSC::B_SAW_PARAM, 0.0, 1.0, 0.0)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10, 160+down), Port::INPUT, module, DAOSC::B_FM_INPUT)); | addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10, 160+down), Port::INPUT, module, DAOSC::B_FM_INPUT)); | ||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10, 190+down), Port::INPUT, module, DAOSC::B_PITCH_INPUT)); | addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10, 190+down), Port::INPUT, module, DAOSC::B_PITCH_INPUT)); | ||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10+jack, 190+down), Port::INPUT, module, DAOSC::B_FOLD_INPUT)); | addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10+jack, 190+down), Port::INPUT, module, DAOSC::B_FOLD_INPUT)); | ||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10+jack*2, 190+down), Port::INPUT, module, DAOSC::B_DRIVE_INPUT)); | addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10+jack*2, 190+down), Port::INPUT, module, DAOSC::B_DRIVE_INPUT)); | ||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10+jack, 230+down), Port::INPUT, module, DAOSC::B_SAW_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10+jack*2, 230+down), Port::INPUT, module, DAOSC::B_SQUARE_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10+jack, 230+down), Port::INPUT, module, DAOSC::B_SQUARE_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-mid+10+jack*2, 230+down), Port::INPUT, module, DAOSC::B_SAW_INPUT)); | |||||
| addOutput(Port::create<PJ301MOPort>(Vec(box.size.x - mid+10, 230+down), Port::OUTPUT, module, DAOSC::B_OUTPUT)); | addOutput(Port::create<PJ301MOPort>(Vec(box.size.x - mid+10, 230+down), Port::OUTPUT, module, DAOSC::B_OUTPUT)); | ||||
| @@ -0,0 +1,337 @@ | |||||
| /////////////////////////////////////////////////// | |||||
| // dBiz Divider | |||||
| // | |||||
| /////////////////////////////////////////////////// | |||||
| #include "dBiz.hpp" | |||||
| #include "dsp/digital.hpp" | |||||
| using namespace std; | |||||
| namespace rack_plugin_dBiz { | |||||
| /////added fine out ///////////////////////////////////////////////// | |||||
| struct Divider : Module { | |||||
| enum ParamIds | |||||
| { | |||||
| MODE_PARAM, | |||||
| DIVISION_PARAM=MODE_PARAM+2, | |||||
| DIVISIONB_PARAM = DIVISION_PARAM +4, | |||||
| ON_SWITCH = DIVISIONB_PARAM +4, | |||||
| ON_SWITCHB = ON_SWITCH+4, | |||||
| NUM_PARAMS = ON_SWITCHB+4, | |||||
| }; | |||||
| enum InputIds { | |||||
| CLOCK_INPUT, | |||||
| CLOCKB_INPUT, | |||||
| SUB1_INPUT, | |||||
| SUB2_INPUT=SUB1_INPUT+4, | |||||
| NUM_INPUTS=SUB2_INPUT+4 | |||||
| }; | |||||
| enum OutputIds | |||||
| { | |||||
| TRIG_OUTPUT, | |||||
| AB_OUTPUT, | |||||
| CD_OUTPUT, | |||||
| TRIGB_OUTPUT, | |||||
| AB2_OUTPUT, | |||||
| CD2_OUTPUT, | |||||
| NUM_OUTPUTS | |||||
| }; | |||||
| enum LighIds | |||||
| { | |||||
| LIGHT_S1, | |||||
| LIGHT_S2 = LIGHT_S1 + 4, | |||||
| NUM_LIGHTS = LIGHT_S2 + 4 | |||||
| }; | |||||
| int clock1Count = 0; | |||||
| int clock2Count = 0; | |||||
| int clock3Count = 0; | |||||
| int clock4Count = 0; | |||||
| int clock1bCount = 0; | |||||
| int clock2bCount = 0; | |||||
| int clock3bCount = 0; | |||||
| int clock4bCount = 0; | |||||
| PulseGenerator clk1; | |||||
| PulseGenerator clk2; | |||||
| PulseGenerator clk3; | |||||
| PulseGenerator clk4; | |||||
| PulseGenerator clk1b; | |||||
| PulseGenerator clk2b; | |||||
| PulseGenerator clk3b; | |||||
| PulseGenerator clk4b; | |||||
| bool pulse1 = false; | |||||
| bool pulse2 = false; | |||||
| bool pulse3 = false; | |||||
| bool pulse4 = false; | |||||
| bool pulse1b = false; | |||||
| bool pulse2b = false; | |||||
| bool pulse3b = false; | |||||
| bool pulse4b = false; | |||||
| SchmittTrigger clk; | |||||
| SchmittTrigger clkb; | |||||
| Divider() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | |||||
| void step() override; | |||||
| }; | |||||
| int divider1 = 0; | |||||
| int divider2 = 0; | |||||
| int divider3 = 0; | |||||
| int divider4 = 0; | |||||
| int divider1b = 0; | |||||
| int divider2b = 0; | |||||
| int divider3b = 0; | |||||
| int divider4b = 0; | |||||
| ///////////////////////////////////////////////////// | |||||
| void Divider::step() { | |||||
| divider1 = round(params[DIVISION_PARAM].value + clamp(inputs[SUB1_INPUT+0].value, -15.0f, 15.0f)); | |||||
| if (divider1>15) divider1=15; | |||||
| if (divider1<=1) divider1=1; | |||||
| divider2 = round(params[DIVISION_PARAM+1].value + clamp(inputs[SUB1_INPUT+1].value, -15.0f, 15.0f)); | |||||
| if (divider2>15) divider2=15; | |||||
| if (divider2<=1) divider2=1; | |||||
| divider3 = round(params[DIVISION_PARAM+2].value + clamp(inputs[SUB1_INPUT+2].value, -15.0f, 15.0f)); | |||||
| if (divider3>15) divider3=15; | |||||
| if (divider3<=1) divider3=1; | |||||
| divider4 = round(params[DIVISION_PARAM+3].value + clamp(inputs[SUB1_INPUT+3].value, -15.0f, 15.0f)); | |||||
| if (divider4>15) divider4=15; | |||||
| if (divider4<=1) divider4=1; | |||||
| divider1b = round(params[DIVISIONB_PARAM].value + clamp(inputs[SUB2_INPUT+0].value, -15.0f, 15.0f)); | |||||
| if (divider1b>15) divider1b=15; | |||||
| if (divider1b<=1) divider1b=1; | |||||
| divider2b = round(params[DIVISIONB_PARAM+1].value + clamp(inputs[SUB2_INPUT+1].value, -15.0f, 15.0f)); | |||||
| if (divider2b>15) divider2b=15; | |||||
| if (divider2b<=1) divider2b=1; | |||||
| divider3b = round(params[DIVISIONB_PARAM+2].value + clamp(inputs[SUB2_INPUT+2].value, -15.0f, 15.0f)); | |||||
| if (divider3b>15) divider3b=15; | |||||
| if (divider3b<=1) divider3b=1; | |||||
| divider4b = round(params[DIVISIONB_PARAM+3].value + clamp(inputs[SUB2_INPUT+3].value, -15.0f, 15.0f)); | |||||
| if (divider4b>15) divider4b=15; | |||||
| if (divider4b<=1) divider4b=1; | |||||
| if (clk.process(inputs[CLOCK_INPUT].value)) | |||||
| { | |||||
| clock1Count++; | |||||
| clock2Count++; | |||||
| clock3Count++; | |||||
| clock4Count++; | |||||
| } | |||||
| if (clkb.process(inputs[CLOCKB_INPUT].value)) | |||||
| { | |||||
| clock1bCount++; | |||||
| clock2bCount++; | |||||
| clock3bCount++; | |||||
| clock4bCount++; | |||||
| } | |||||
| if (clock1Count == 0) lights[LIGHT_S1+0].value = 1.0f; else lights[LIGHT_S1+0].value = 0.0; | |||||
| if (clock2Count == 0) lights[LIGHT_S1+1].value = 1.0f; else lights[LIGHT_S1+1].value = 0.0; | |||||
| if (clock3Count == 0) lights[LIGHT_S1+2].value = 1.0f; else lights[LIGHT_S1+2].value = 0.0; | |||||
| if (clock4Count == 0) lights[LIGHT_S1+3].value = 1.0f; else lights[LIGHT_S1+3].value = 0.0; | |||||
| if (clock1bCount == 0) lights[LIGHT_S2+0].value = 1.0f; else lights[LIGHT_S2+0].value = 0.0; | |||||
| if (clock2bCount == 0) lights[LIGHT_S2+1].value = 1.0f; else lights[LIGHT_S2+1].value = 0.0; | |||||
| if (clock3bCount == 0) lights[LIGHT_S2+2].value = 1.0f; else lights[LIGHT_S2+2].value = 0.0; | |||||
| if (clock4bCount == 0) lights[LIGHT_S2+3].value = 1.0f; else lights[LIGHT_S2+3].value = 0.0; | |||||
| ///////////////////////////////////////////////////////////////// | |||||
| if(params[ON_SWITCH+0].value) | |||||
| { | |||||
| if (clock1Count >= divider1) | |||||
| { | |||||
| clock1Count = 0; | |||||
| clk1.trigger(1e-3); | |||||
| } | |||||
| } | |||||
| if(params[ON_SWITCH+1].value) | |||||
| { | |||||
| if (clock2Count >= divider2) | |||||
| { | |||||
| clock2Count = 0; | |||||
| clk2.trigger(1e-3); | |||||
| } | |||||
| } | |||||
| if(params[ON_SWITCH+2].value) | |||||
| { | |||||
| if (clock3Count >= divider3) | |||||
| { | |||||
| clock3Count = 0; | |||||
| clk3.trigger(1e-3); | |||||
| } | |||||
| } | |||||
| if(params[ON_SWITCH+3].value) | |||||
| { | |||||
| if (clock4Count >= divider4) | |||||
| { | |||||
| clock4Count = 0; | |||||
| clk4.trigger(1e-3); | |||||
| } | |||||
| } | |||||
| if(params[ON_SWITCHB+0].value) | |||||
| { | |||||
| if (clock1bCount >= divider1b) | |||||
| { | |||||
| clock1bCount = 0; | |||||
| clk1b.trigger(1e-3); | |||||
| } | |||||
| } | |||||
| if(params[ON_SWITCHB+1].value) | |||||
| { | |||||
| if (clock2bCount >= divider2b) | |||||
| { | |||||
| clock2bCount = 0; | |||||
| clk2b.trigger(1e-3); | |||||
| } | |||||
| } | |||||
| if(params[ON_SWITCHB+2].value) | |||||
| { | |||||
| if (clock3bCount >= divider3b) | |||||
| { | |||||
| clock3bCount = 0; | |||||
| clk3b.trigger(1e-3); | |||||
| } | |||||
| } | |||||
| if(params[ON_SWITCHB+3].value) | |||||
| { | |||||
| if (clock4bCount >= divider4b) | |||||
| { | |||||
| clock4bCount = 0; | |||||
| clk4b.trigger(1e-3); | |||||
| } | |||||
| } | |||||
| ////////////////////////////////////////////////////////////////// | |||||
| pulse1 = clk1.process(1.0f / engineGetSampleRate()); | |||||
| pulse2 = clk2.process(1.0f / engineGetSampleRate()); | |||||
| pulse3 = clk3.process(1.0f / engineGetSampleRate()); | |||||
| pulse4 = clk4.process(1.0f / engineGetSampleRate()); | |||||
| pulse1b = clk1b.process(1.0f / engineGetSampleRate()); | |||||
| pulse2b = clk2b.process(1.0f / engineGetSampleRate()); | |||||
| pulse3b = clk3b.process(1.0f / engineGetSampleRate()); | |||||
| pulse4b = clk4b.process(1.0f / engineGetSampleRate()); | |||||
| ////////////////////////////////////////////////////////////////// | |||||
| if(params[MODE_PARAM].value) | |||||
| { | |||||
| outputs[TRIG_OUTPUT].value =(((pulse1||pulse2)||pulse3)||pulse4)? 10.0f : 0.0f; | |||||
| outputs[AB_OUTPUT].value = (pulse1 || pulse2) ? 10.0f : 0.0f; | |||||
| outputs[CD_OUTPUT].value = (pulse3 || pulse4) ? 10.0f : 0.0f; | |||||
| } | |||||
| else | |||||
| { | |||||
| bool xora,xorb = false; | |||||
| xora = pulse1==pulse2; | |||||
| xorb = pulse3==pulse4; | |||||
| // outputs[TRIG_OUTPUT].value =(!pulse1 && (pulse2 ^ pulse3)) || (pulse1 && !(pulse2 || pulse3)) || (!pulse2 && (pulse3 ^ pulse4)) || (pulse2 && !(pulse3 || pulse4))? 10.0f : 0.0f; | |||||
| outputs[TRIG_OUTPUT].value = xora == xorb ? 0.0f : 10.0f; | |||||
| outputs[AB_OUTPUT].value = xora ? 0.0f : 10.0f; | |||||
| outputs[CD_OUTPUT].value = xorb ? 0.0f : 10.0f; | |||||
| } | |||||
| if(params[MODE_PARAM+1].value) | |||||
| { | |||||
| outputs[TRIGB_OUTPUT].value =(((pulse1b||pulse2b)||pulse3b)||pulse4b)? 10.0f : 0.0f; | |||||
| outputs[AB2_OUTPUT].value = (pulse1b || pulse2b) ? 10.0f : 0.0f; | |||||
| outputs[CD2_OUTPUT].value = (pulse3b || pulse4b) ? 10.0f : 0.0f; | |||||
| } | |||||
| else | |||||
| { | |||||
| bool xora2, xorb2 = false; | |||||
| xora2 = pulse1b == pulse2b; | |||||
| xorb2 = pulse3b == pulse4b; | |||||
| //outputs[TRIGB_OUTPUT].value = (!pulse1b && (pulse2b ^ pulse3b)) || (pulse1b && !(pulse2b || pulse3b)) || (!pulse2b && (pulse3b ^ pulse4b)) || (pulse2b && !(pulse3b || pulse4b)) ? 10.0f : 0.0f; | |||||
| outputs[TRIGB_OUTPUT].value = xora2 == xorb2 ? 0.0f : 10.0f; | |||||
| outputs[AB2_OUTPUT].value = xora2 ? 0.0f : 10.0f; | |||||
| outputs[CD2_OUTPUT].value = xorb2 ? 0.0f : 10.0f; | |||||
| } | |||||
| } | |||||
| struct DividerWidget : ModuleWidget | |||||
| { | |||||
| DividerWidget(Divider *module) : ModuleWidget(module) | |||||
| { | |||||
| box.size = Vec(15*10, 380); | |||||
| { | |||||
| SVGPanel *panel = new SVGPanel(); | |||||
| panel->box.size = box.size; | |||||
| panel->setBackground(SVG::load(assetPlugin(plugin,"res/Divider.svg"))); | |||||
| addChild(panel); | |||||
| } | |||||
| //Screw | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365))); | |||||
| int knob=35; | |||||
| int jack = 27; | |||||
| int si = 15; | |||||
| // | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(si + 70, 20 + knob * i), module, Divider::DIVISION_PARAM + i, 1, 15, 1.0)); | |||||
| addParam(ParamWidget::create<SilverSwitch>(Vec(si + 10, 20 + knob * i), module, Divider::ON_SWITCH + i, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(si + 70, 170 + knob * i), module, Divider::DIVISIONB_PARAM + i, 1, 15, 1.0)); | |||||
| addParam(ParamWidget::create<SilverSwitch>(Vec(si + 10, 170 + knob * i), module, Divider::ON_SWITCHB + i, 0.0, 1.0, 0.0)); | |||||
| addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(si + 105, 30 + knob * i), module, Divider::LIGHT_S1 + i)); | |||||
| addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(si + 105, 180 + knob * i), module, Divider::LIGHT_S2 + i)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(si + 40, 22.5 + knob * i), Port::INPUT, module, Divider::SUB1_INPUT + i)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(si + 40, 173.5 + knob * i), Port::INPUT, module, Divider::SUB2_INPUT + i)); | |||||
| } | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(15, 310), Port::INPUT, module, Divider::CLOCK_INPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 1, 310), Port::OUTPUT, module, Divider::AB_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 2, 310), Port::OUTPUT, module, Divider::CD_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 3, 310), Port::OUTPUT, module, Divider::TRIG_OUTPUT)); | |||||
| addParam(ParamWidget::create<MCKSSS>(Vec(15 + jack * 4, 313), module, Divider::MODE_PARAM + 0, 0.0, 1.0, 0.0)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(15, 310 + jack), Port::INPUT, module, Divider::CLOCKB_INPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 1, 310 + jack), Port::OUTPUT, module, Divider::AB2_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 2, 310 + jack), Port::OUTPUT, module, Divider::CD2_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 3, 310 + jack), Port::OUTPUT, module, Divider::TRIGB_OUTPUT)); | |||||
| addParam(ParamWidget::create<MCKSSS>(Vec(15 + jack * 4, 313 + jack), module, Divider::MODE_PARAM + 1, 0.0, 1.0, 0.0)); | |||||
| } | |||||
| }; | |||||
| } // namespace rack_plugin_dBiz | |||||
| using namespace rack_plugin_dBiz; | |||||
| RACK_PLUGIN_MODEL_INIT(dBiz, Divider) { | |||||
| Model *modelDivider = Model::create<Divider, DividerWidget>("dBiz", "Divider", "Divider", QUANTIZER_TAG); | |||||
| return modelDivider; | |||||
| } | |||||
| @@ -0,0 +1,280 @@ | |||||
| #include "dBiz.hpp" | |||||
| #include "dsp/decimator.hpp" | |||||
| using namespace std; | |||||
| namespace rack_plugin_dBiz { | |||||
| #define pi 3.14159265359 | |||||
| struct MultiFilter | |||||
| { | |||||
| float q; | |||||
| float freq; | |||||
| float smpRate; | |||||
| float hp = 0.0f,bp = 0.0f,lp = 0.0f,mem1 = 0.0f,mem2 = 0.0f; | |||||
| void setParams(float freq, float q, float smpRate) { | |||||
| this->freq = freq; | |||||
| this->q=q; | |||||
| this->smpRate=smpRate; | |||||
| } | |||||
| void calcOutput(float sample) | |||||
| { | |||||
| float g = tan(pi*freq/smpRate); | |||||
| float R = 1.0f/(2.0f*q); | |||||
| hp = (sample - (2.0f*R + g)*mem1 - mem2)/(1.0f + 2.0f*R*g + g*g); | |||||
| bp = g*hp + mem1; | |||||
| lp = g*bp + mem2; | |||||
| mem1 = g*hp + bp; | |||||
| mem2 = g*bp + lp; | |||||
| } | |||||
| }; | |||||
| struct DualFilter : Module{ | |||||
| enum ParamIds | |||||
| { | |||||
| CUTOFF_PARAM, | |||||
| Q_PARAM, | |||||
| CMOD_PARAM, | |||||
| CMOD_PARAM2, | |||||
| DRIVE_PARAM, | |||||
| CUTOFF2_PARAM, | |||||
| Q2_PARAM, | |||||
| CMOD2_PARAM, | |||||
| CMOD2_PARAM2, | |||||
| DRIVE2_PARAM, | |||||
| FADE_PARAM, | |||||
| VOLA_PARAM, | |||||
| VOLB_PARAM, | |||||
| FILTERSEL_PARAM, | |||||
| FILTER2SEL_PARAM, | |||||
| NUM_PARAMS | |||||
| }; | |||||
| enum InputIds | |||||
| { | |||||
| CUTOFF_INPUT, | |||||
| CUTOFF_INPUT2, | |||||
| Q_INPUT, | |||||
| DRIVE_INPUT, | |||||
| IN, | |||||
| IN2, | |||||
| CUTOFF2_INPUT, | |||||
| CUTOFF2_INPUT2, | |||||
| Q2_INPUT, | |||||
| DRIVE2_INPUT, | |||||
| FADE_CV, | |||||
| NUM_INPUTS | |||||
| }; | |||||
| enum OutputIds | |||||
| { | |||||
| OUT1, | |||||
| OUT2, | |||||
| MIXOUT, | |||||
| NUM_OUTPUTS | |||||
| }; | |||||
| enum LightIds | |||||
| { | |||||
| FADEA_LIGHTS, | |||||
| FADEB_LIGHTS, | |||||
| NUM_LIGHTS | |||||
| }; | |||||
| MultiFilter filterA; // create a lpFilter; | |||||
| MultiFilter filterB; // create a lpFilter; | |||||
| DualFilter() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { | |||||
| } | |||||
| void step() override; | |||||
| }; | |||||
| float outLP; | |||||
| float outHP; | |||||
| float outBP; | |||||
| float out2LP; | |||||
| float out2HP; | |||||
| float out2BP; | |||||
| void DualFilter::step() { | |||||
| float cutoff = pow(2.0f,rescale(clamp(params[CUTOFF_PARAM].value +quadraticBipolar(params[CMOD_PARAM2].value)*0.1f*inputs[CUTOFF_INPUT2].value+quadraticBipolar(params[CMOD_PARAM].value)*0.1f*inputs[CUTOFF_INPUT].value / 5.0f,0.0f,1.0f),0.0f,1.0f,4.5f,13.0f)); | |||||
| float cutoff2 = pow(2.0f,rescale(clamp(params[CUTOFF2_PARAM].value +quadraticBipolar(params[CMOD2_PARAM2].value)*0.1f*inputs[CUTOFF2_INPUT2].value +quadraticBipolar(params[CMOD2_PARAM].value)*0.1f*inputs[CUTOFF2_INPUT].value / 5.0f,0.0f,1.0f),0.0f,1.0f,4.5f,13.0f)); | |||||
| float q = 10.0f * clamp(params[Q_PARAM].value + inputs[Q_INPUT].value / 5.0f, 0.1f, 1.0f); | |||||
| float q2 = 10.0f * clamp(params[Q2_PARAM].value + inputs[Q2_INPUT].value / 5.0f, 0.1f, 1.0f); | |||||
| filterA.setParams(cutoff,q,engineGetSampleRate()); | |||||
| filterB.setParams(cutoff2,q2,engineGetSampleRate()); | |||||
| float in = inputs[IN].value * params[VOLA_PARAM].value / 5.0f; | |||||
| float in2 = inputs[IN2].value * params[VOLB_PARAM].value/ 5.0f; | |||||
| //////////////////////////////////////////////////////////////// | |||||
| in = clamp(in, -5.0f, 5.0f) * 0.2f; | |||||
| in2 = clamp(in2, -5.0f, 5.0f) * 0.2f; | |||||
| float a_shape = params[DRIVE_PARAM].value + clamp(inputs[DRIVE_INPUT].value, -5.0f, 5.0f); | |||||
| a_shape = clamp(a_shape, -5.0f, 5.0f) * 0.2f; | |||||
| a_shape *= 0.99f; | |||||
| float b_shape = params[DRIVE2_PARAM].value + clamp(inputs[DRIVE2_INPUT].value, -5.0f, 5.0f); | |||||
| b_shape = clamp(b_shape, -5.0f, 5.0f) * 0.2f; | |||||
| b_shape *= 0.99f; | |||||
| const float a_shapeB = (1.0 - a_shape) / (1.0 + a_shape); | |||||
| const float a_shapeA = (4.0 * a_shape) / ((1.0 - a_shape) * (1.0 + a_shape)); | |||||
| const float b_shapeB = (1.0 - b_shape) / (1.0 + b_shape); | |||||
| const float b_shapeA = (4.0 * b_shape) / ((1.0 - b_shape) * (1.0 + b_shape)); | |||||
| float a_outputd = in * (a_shapeA + a_shapeB); | |||||
| float b_outputd = in2 * (b_shapeA + b_shapeB); | |||||
| a_outputd = a_outputd / ((std::abs(in) * a_shapeA) + a_shapeB); | |||||
| b_outputd = b_outputd / ((std::abs(in2) * b_shapeA) + b_shapeB); | |||||
| /////////////////////////////////////////////////////////////////// | |||||
| filterA.calcOutput(a_outputd); | |||||
| filterB.calcOutput(b_outputd); | |||||
| float xfade = params[FADE_PARAM].value+inputs[FADE_CV].value / 10.0; | |||||
| lights[FADEA_LIGHTS].value=(1-xfade); | |||||
| lights[FADEB_LIGHTS].value=xfade; | |||||
| int sel1 = round(params[FILTERSEL_PARAM].value); | |||||
| int sel2 = round(params[FILTER2SEL_PARAM].value); | |||||
| for (int i=0;i<4;i++) | |||||
| { | |||||
| if (sel1 == 0) | |||||
| outputs[OUT1].value = filterA.lp * 3.0f; | |||||
| if (sel1 == 1) | |||||
| outputs[OUT1].value = filterA.bp * 3.0f; | |||||
| if (sel1 == 2) | |||||
| outputs[OUT1].value = filterA.hp * 3.0f; | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| if (sel2 == 0) | |||||
| outputs[OUT2].value = filterB.lp * 3.0f; | |||||
| if (sel2 == 1) | |||||
| outputs[OUT2].value = filterB.bp * 3.0f; | |||||
| if (sel2 == 2) | |||||
| outputs[OUT2].value = filterB.hp * 3.0f; | |||||
| } | |||||
| float filter1 = outputs[OUT1].value; | |||||
| float filter2 = outputs[OUT2].value; | |||||
| outputs[MIXOUT].value = (filter1 * ( 1-xfade ))+(filter2 * xfade); | |||||
| } | |||||
| struct DualFilterWidget:ModuleWidget { | |||||
| DualFilterWidget(DualFilter *module) : ModuleWidget(module) | |||||
| { | |||||
| box.size = Vec(15*16, 380); | |||||
| { | |||||
| SVGPanel *panel = new SVGPanel(); | |||||
| panel->box.size = box.size; | |||||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/DualFilter.svg"))); | |||||
| addChild(panel); | |||||
| } | |||||
| addChild(Widget::create<ScrewBlack>(Vec(15, 0))); | |||||
| addChild(Widget::create<ScrewBlack>(Vec(box.size.x-30, 0))); | |||||
| addChild(Widget::create<ScrewBlack>(Vec(15, 365))); | |||||
| addChild(Widget::create<ScrewBlack>(Vec(box.size.x-30, 365))); | |||||
| int i=120; | |||||
| int s=27; | |||||
| int l=7; | |||||
| int of = -25; | |||||
| int cv = 310; | |||||
| addChild(GrayModuleLightWidget::create<MediumLight<GreenLight>>(Vec(i-40,21),module,DualFilter::FADEA_LIGHTS)); | |||||
| addChild(GrayModuleLightWidget::create<MediumLight<GreenLight>>(Vec(i+28,21),module,DualFilter::FADEB_LIGHTS)); | |||||
| addParam(ParamWidget::create<LRoundBlu>(Vec(i -22 , 21), module, DualFilter::FADE_PARAM, 0.0,1.0,0.0)); | |||||
| addParam(ParamWidget::create<LRoundWhy>(Vec(35, 30), module, DualFilter::CUTOFF_PARAM, 0.0f, 1.0f, 1.0f)); | |||||
| addParam(ParamWidget::create<LRoundWhy>(Vec(160, 30), module, DualFilter::CUTOFF2_PARAM, 0.0f, 1.0f, 1.0f)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(of + 33, 113), module, DualFilter::CMOD_PARAM, -1.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(of + 90, 93), module, DualFilter::Q_PARAM, 0.1f, 1.0f, 0.1f)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(of + 95 + i, 113), module, DualFilter::CMOD2_PARAM, -1.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(of + 39 + i, 93), module, DualFilter::Q2_PARAM, 0.1f, 1.0f, 0.1f)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(of + 33, 165), module, DualFilter::CMOD_PARAM2, -1.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(of + 95 + i, 165), module, DualFilter::CMOD2_PARAM2, -1.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundRed>(Vec(of + 90, 145), module, DualFilter::DRIVE_PARAM, -5.0f, 5.0f, 0.0f)); | |||||
| addParam(ParamWidget::create<RoundRed>(Vec(of + 39 + i, 145), module, DualFilter::DRIVE2_PARAM, -5.0f, 5.0f, 0.0f)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(of + 90, 200), module, DualFilter::VOLA_PARAM, 0.0, 5.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(of + 39 + i, 200), module, DualFilter::VOLB_PARAM, 0.0, 5.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhySnapKnob>(Vec(of + 33, 220), module, DualFilter::FILTERSEL_PARAM, 0.0, 2.0, 0.0)); | |||||
| addParam(ParamWidget::create<RoundWhySnapKnob>(Vec(of + 95 + i, 220), module, DualFilter::FILTER2SEL_PARAM, 0.0, 2.0, 0.0)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(l, 276),Port::INPUT, module, DualFilter::CUTOFF_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(l + s , 276),Port::INPUT, module, DualFilter::CUTOFF_INPUT2)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(l + s * 2, 276),Port::INPUT, module, DualFilter::Q_INPUT)); | |||||
| addInput(Port::create<PJ301MOrPort>(Vec(l + s * 3, 276),Port::INPUT, module, DualFilter::DRIVE_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(l + s , cv),Port::INPUT, module, DualFilter::FADE_CV)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(l+s*3 + i, 276),Port::INPUT, module, DualFilter::CUTOFF2_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(l + s*2 + i, 276),Port::INPUT, module, DualFilter::CUTOFF2_INPUT2)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(l + s + i, 276),Port::INPUT, module, DualFilter::Q2_INPUT)); | |||||
| addInput(Port::create<PJ301MOrPort>(Vec(l + i, 276),Port::INPUT, module, DualFilter::DRIVE2_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(l + s * 2, cv),Port::INPUT, module, DualFilter::IN)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(l + s + i, cv),Port::INPUT, module, DualFilter::IN2)); | |||||
| addOutput(Port::create<PJ301MOPort>(Vec(l , cv),Port::OUTPUT, module, DualFilter::OUT1)); | |||||
| addOutput(Port::create<PJ301MOPort>(Vec(l + s * 3 + i, cv),Port::OUTPUT, module, DualFilter::OUT2)); | |||||
| addOutput(Port::create<PJ301MOPort>(Vec(l + s * 2 + i, cv),Port::OUTPUT, module, DualFilter::MIXOUT)); | |||||
| } | |||||
| }; | |||||
| } // namespace rack_plugin_dBiz | |||||
| using namespace rack_plugin_dBiz; | |||||
| RACK_PLUGIN_MODEL_INIT(dBiz, DualFilter) { | |||||
| Model *modelDualFilter = Model::create<DualFilter, DualFilterWidget>("dBiz", "DualFilter", "Dual Multimode Filter", FILTER_TAG); | |||||
| return modelDualFilter; | |||||
| } | |||||
| @@ -1,169 +0,0 @@ | |||||
| // | |||||
| // Biquad.cpp | |||||
| // | |||||
| // Created by Nigel Redmon on 11/24/12 | |||||
| // EarLevel Engineering: earlevel.com | |||||
| // Copyright 2012 Nigel Redmon | |||||
| // | |||||
| // For a complete explanation of the Biquad code: | |||||
| // http://www.earlevel.com/main/2012/11/26/biquad-c-source-code/ | |||||
| // | |||||
| // License: | |||||
| // | |||||
| // This source code is provided as is, without warranty. | |||||
| // You may copy and distribute verbatim copies of this document. | |||||
| // You may modify and use this source code to create binary code | |||||
| // for your own purposes, free or commercial. | |||||
| // | |||||
| #include <math.h> | |||||
| #include "Biquad.h" | |||||
| namespace rack_plugin_dBiz { | |||||
| Biquad::Biquad() { | |||||
| type = bq_type_lowpass; | |||||
| a0 = 1.0; | |||||
| a1 = a2 = b1 = b2 = 0.0; | |||||
| Fc = 0.50; | |||||
| Q = 0.707; | |||||
| peakGain = 0.0; | |||||
| z1 = z2 = 0.0; | |||||
| } | |||||
| Biquad::Biquad(int type, double Fc, double Q, double peakGainDB) { | |||||
| setBiquad(type, Fc, Q, peakGainDB); | |||||
| z1 = z2 = 0.0; | |||||
| } | |||||
| Biquad::~Biquad() { | |||||
| } | |||||
| void Biquad::setType(int type) { | |||||
| this->type = type; | |||||
| calcBiquad(); | |||||
| } | |||||
| void Biquad::setQ(double Q) { | |||||
| this->Q = Q; | |||||
| calcBiquad(); | |||||
| } | |||||
| void Biquad::setFc(double Fc) { | |||||
| this->Fc = Fc; | |||||
| calcBiquad(); | |||||
| } | |||||
| void Biquad::setPeakGain(double peakGainDB) { | |||||
| this->peakGain = peakGainDB; | |||||
| calcBiquad(); | |||||
| } | |||||
| void Biquad::setBiquad(int type, double Fc, double Q, double peakGainDB) { | |||||
| this->type = type; | |||||
| this->Q = Q; | |||||
| this->Fc = Fc; | |||||
| setPeakGain(peakGainDB); | |||||
| } | |||||
| void Biquad::calcBiquad(void) { | |||||
| double norm; | |||||
| double V = pow(10, fabs(peakGain) / 20.0); | |||||
| double K = tan(M_PI * Fc); | |||||
| switch (this->type) { | |||||
| case bq_type_lowpass: | |||||
| norm = 1 / (1 + K / Q + K * K); | |||||
| a0 = K * K * norm; | |||||
| a1 = 2 * a0; | |||||
| a2 = a0; | |||||
| b1 = 2 * (K * K - 1) * norm; | |||||
| b2 = (1 - K / Q + K * K) * norm; | |||||
| break; | |||||
| case bq_type_highpass: | |||||
| norm = 1 / (1 + K / Q + K * K); | |||||
| a0 = 1 * norm; | |||||
| a1 = -2 * a0; | |||||
| a2 = a0; | |||||
| b1 = 2 * (K * K - 1) * norm; | |||||
| b2 = (1 - K / Q + K * K) * norm; | |||||
| break; | |||||
| case bq_type_bandpass: | |||||
| norm = 1 / (1 + K / Q + K * K); | |||||
| a0 = K / Q * norm; | |||||
| a1 = 0; | |||||
| a2 = -a0; | |||||
| b1 = 2 * (K * K - 1) * norm; | |||||
| b2 = (1 - K / Q + K * K) * norm; | |||||
| break; | |||||
| case bq_type_notch: | |||||
| norm = 1 / (1 + K / Q + K * K); | |||||
| a0 = (1 + K * K) * norm; | |||||
| a1 = 2 * (K * K - 1) * norm; | |||||
| a2 = a0; | |||||
| b1 = a1; | |||||
| b2 = (1 - K / Q + K * K) * norm; | |||||
| break; | |||||
| case bq_type_peak: | |||||
| if (peakGain >= 0) { // boost | |||||
| norm = 1 / (1 + 1 / Q * K + K * K); | |||||
| a0 = (1 + V / Q * K + K * K) * norm; | |||||
| a1 = 2 * (K * K - 1) * norm; | |||||
| a2 = (1 - V / Q * K + K * K) * norm; | |||||
| b1 = a1; | |||||
| b2 = (1 - 1 / Q * K + K * K) * norm; | |||||
| } | |||||
| else { // cut | |||||
| norm = 1 / (1 + V / Q * K + K * K); | |||||
| a0 = (1 + 1 / Q * K + K * K) * norm; | |||||
| a1 = 2 * (K * K - 1) * norm; | |||||
| a2 = (1 - 1 / Q * K + K * K) * norm; | |||||
| b1 = a1; | |||||
| b2 = (1 - V / Q * K + K * K) * norm; | |||||
| } | |||||
| break; | |||||
| case bq_type_lowshelf: | |||||
| if (peakGain >= 0) { // boost | |||||
| norm = 1 / (1 + sqrt(2) * K + K * K); | |||||
| a0 = (1 + sqrt(2 * V) * K + V * K * K) * norm; | |||||
| a1 = 2 * (V * K * K - 1) * norm; | |||||
| a2 = (1 - sqrt(2 * V) * K + V * K * K) * norm; | |||||
| b1 = 2 * (K * K - 1) * norm; | |||||
| b2 = (1 - sqrt(2) * K + K * K) * norm; | |||||
| } | |||||
| else { // cut | |||||
| norm = 1 / (1 + sqrt(2 * V) * K + V * K * K); | |||||
| a0 = (1 + sqrt(2) * K + K * K) * norm; | |||||
| a1 = 2 * (K * K - 1) * norm; | |||||
| a2 = (1 - sqrt(2) * K + K * K) * norm; | |||||
| b1 = 2 * (V * K * K - 1) * norm; | |||||
| b2 = (1 - sqrt(2 * V) * K + V * K * K) * norm; | |||||
| } | |||||
| break; | |||||
| case bq_type_highshelf: | |||||
| if (peakGain >= 0) { // boost | |||||
| norm = 1 / (1 + sqrt(2) * K + K * K); | |||||
| a0 = (V + sqrt(2 * V) * K + K * K) * norm; | |||||
| a1 = 2 * (K * K - V) * norm; | |||||
| a2 = (V - sqrt(2 * V) * K + K * K) * norm; | |||||
| b1 = 2 * (K * K - 1) * norm; | |||||
| b2 = (1 - sqrt(2) * K + K * K) * norm; | |||||
| } | |||||
| else { // cut | |||||
| norm = 1 / (V + sqrt(2 * V) * K + K * K); | |||||
| a0 = (1 + sqrt(2) * K + K * K) * norm; | |||||
| a1 = 2 * (K * K - 1) * norm; | |||||
| a2 = (1 - sqrt(2) * K + K * K) * norm; | |||||
| b1 = 2 * (K * K - V) * norm; | |||||
| b2 = (V - sqrt(2 * V) * K + K * K) * norm; | |||||
| } | |||||
| break; | |||||
| } | |||||
| return; | |||||
| } | |||||
| } // namespace rack_plugin_dBiz | |||||
| @@ -1,64 +0,0 @@ | |||||
| // | |||||
| // Biquad.h | |||||
| // | |||||
| // Created by Nigel Redmon on 11/24/12 | |||||
| // EarLevel Engineering: earlevel.com | |||||
| // Copyright 2012 Nigel Redmon | |||||
| // | |||||
| // For a complete explanation of the Biquad code: | |||||
| // http://www.earlevel.com/main/2012/11/26/biquad-c-source-code/ | |||||
| // | |||||
| // License: | |||||
| // | |||||
| // This source code is provided as is, without warranty. | |||||
| // You may copy and distribute verbatim copies of this document. | |||||
| // You may modify and use this source code to create binary code | |||||
| // for your own purposes, free or commercial. | |||||
| // | |||||
| #ifndef Biquad_h | |||||
| #define Biquad_h | |||||
| namespace rack_plugin_dBiz { | |||||
| enum { | |||||
| bq_type_lowpass = 0, | |||||
| bq_type_highpass, | |||||
| bq_type_bandpass, | |||||
| bq_type_notch, | |||||
| bq_type_peak, | |||||
| bq_type_lowshelf, | |||||
| bq_type_highshelf | |||||
| }; | |||||
| class Biquad { | |||||
| public: | |||||
| Biquad(); | |||||
| Biquad(int type, double Fc, double Q, double peakGainDB); | |||||
| ~Biquad(); | |||||
| void setType(int type); | |||||
| void setQ(double Q); | |||||
| void setFc(double Fc); | |||||
| void setPeakGain(double peakGainDB); | |||||
| void setBiquad(int type, double Fc, double Q, double peakGain); | |||||
| float process(float in); | |||||
| protected: | |||||
| void calcBiquad(void); | |||||
| int type; | |||||
| double a0, a1, a2, b1, b2; | |||||
| double Fc, Q, peakGain; | |||||
| double z1, z2; | |||||
| }; | |||||
| inline float Biquad::process(float in) { | |||||
| double out = in * a0 + z1; | |||||
| z1 = in * a1 + z2 - b1 * out; | |||||
| z2 = in * a2 - b2 * out; | |||||
| return out; | |||||
| } | |||||
| } // namespace rack_plugin_dBiz | |||||
| #endif // Biquad_h | |||||
| @@ -1,126 +0,0 @@ | |||||
| // | |||||
| // DSPUtilities.cpp | |||||
| // | |||||
| // | |||||
| #include "DSPUtilities.h" | |||||
| #ifndef DSP_UTILITIES | |||||
| #define DSP_UTILITIES | |||||
| #include <cmath> | |||||
| namespace rack_plugin_dBiz { | |||||
| //============================================================================== | |||||
| // Calculates the frequency of a given pitch (MIDI) value. | |||||
| double pitchToFreq(double pitch) | |||||
| { | |||||
| return pow(2, (pitch - 69) / 12) * 440; | |||||
| } | |||||
| //============================================================================== | |||||
| // Calculates the pitch (MIDI) of a given frequency value | |||||
| double freqToPitch(double freq) | |||||
| { | |||||
| return 69 + 12 * log2(freq / 440); | |||||
| } | |||||
| //============================================================================== | |||||
| /** | |||||
| Takes a value as input and clips it according to the min and max values. | |||||
| Returns the input if (minValue <= in <= maxValue). | |||||
| If (in < minValue), then return minValue. | |||||
| If (in > maxValue), then return maxValue. | |||||
| */ | |||||
| double clipMinMax(double in, double minValue, double maxValue) | |||||
| { | |||||
| if (in < minValue) | |||||
| return minValue; | |||||
| else if (in > maxValue) | |||||
| return maxValue; | |||||
| else | |||||
| return in; | |||||
| } | |||||
| //============================================================================== | |||||
| /** | |||||
| Takes a value as input and clips it according to the min value. | |||||
| Returns the input if (minValue <= in). | |||||
| If (in < minValue), then return minValue. | |||||
| */ | |||||
| double clipMin(double in, double minValue) | |||||
| { | |||||
| if (in < minValue) | |||||
| return minValue; | |||||
| else | |||||
| return in; | |||||
| } | |||||
| //============================================================================== | |||||
| /** | |||||
| Crossfades linearly between two values (in0, in1). The value returned is | |||||
| determined by the value of the xFadeCtrl argument. | |||||
| xFadeCtrl Range: 0->1 | |||||
| - xFadeCtrl = 0 (only in0 comes through) | |||||
| - xFadeCtrl = 0.5 (equal mix of in0 and in1) | |||||
| - xfadeCtrl = 1 (only in1 comes through) | |||||
| */ | |||||
| double xFadeLin(double xFadeCtrl, double in0, double in1) | |||||
| { | |||||
| // Clip the xFade parameter to only have range of 0->1 | |||||
| xFadeCtrl = clipMinMax(xFadeCtrl, 0.0, 1.0); | |||||
| // Perform crossfading and return the value | |||||
| return (in0 * (1.0 - xFadeCtrl) + in1 * xFadeCtrl); | |||||
| } | |||||
| //============================================================================== | |||||
| /** | |||||
| Parabolic Controller Shaper: | |||||
| "Bends" the controller curve torwards the X or Y axis. | |||||
| input range: (-1..0..1) maps to output range: (-1..0..1). | |||||
| bend range: (-1..0..1) | |||||
| - bend = -1 (max bend towards X axis) | |||||
| - bend = 0 (don't bend) | |||||
| - bend = 1 (max bend towards Y axis) | |||||
| */ | |||||
| double parCtrlShaper(double input, double bend) | |||||
| { | |||||
| // clip input and bend because the shaper only works in that range. | |||||
| input = clipMinMax(input, -1.0, 1.0); | |||||
| bend = clipMinMax(bend, -1.0, 1.0); | |||||
| return input * ((bend + 1) - fabs(input) * bend); | |||||
| } | |||||
| //============================================================================== | |||||
| /** | |||||
| Normalizes a range of values to the range 0->1. | |||||
| (start/end should probably be the range of a parameter) | |||||
| - input: the value to be normalized | |||||
| - start: the start of the input's range | |||||
| - end: the end of the input's range | |||||
| Note: (start < end) and (start > end) are both valid. | |||||
| */ | |||||
| double normalizeRange(double input, double start, double end) | |||||
| { | |||||
| return (input - start) / (end - start); | |||||
| } | |||||
| double resonanceToQ(double resonance) | |||||
| { | |||||
| return 1.0 / (2.0 * (1.0 - resonance)); | |||||
| } | |||||
| } // namespace rack_plugin_dBiz | |||||
| //============================================================================== | |||||
| #endif // DSP_UTILITIES | |||||
| @@ -1,87 +0,0 @@ | |||||
| // | |||||
| // DSPUtilities.h | |||||
| // | |||||
| // | |||||
| // | |||||
| #ifndef DSPUtilities_h | |||||
| #define DSPUtilities_h | |||||
| namespace rack_plugin_dBiz { | |||||
| //============================================================================== | |||||
| // Calculates the frequency of a given pitch (MIDI) value. | |||||
| double pitchToFreq(double pitch); | |||||
| //============================================================================== | |||||
| // Calculates the pitch (MIDI) of a given frequency value | |||||
| double freqToPitch(double freq); | |||||
| //============================================================================== | |||||
| /** | |||||
| Takes a value as input and clips it according to the min and max values. | |||||
| Returns the input if (minValue <= in <= maxValue). | |||||
| If (in < minValue), then return minValue. | |||||
| If (in > maxValue), then return maxValue. | |||||
| */ | |||||
| double clipMinMax(double in, double minValue, double maxValue); | |||||
| //============================================================================== | |||||
| /** | |||||
| Takes a value as input and clips it according to the min value. | |||||
| Returns the input if (minValue <= in). | |||||
| If (in < minValue), then return minValue. | |||||
| */ | |||||
| double clipMin(double in, double minValue); | |||||
| //============================================================================== | |||||
| /** | |||||
| Crossfades linearly between two values (in0, in1). The value returned is | |||||
| determined by the value of the xFadeCtrl argument. | |||||
| xFadeCtrl Range: 0->1 | |||||
| - xFadeCtrl = 0 (only in0 comes through) | |||||
| - xFadeCtrl = 0.5 (equal mix of in0 and in1) | |||||
| - xfadeCtrl = 1 (only in1 comes through) | |||||
| */ | |||||
| double xFadeLin(double xFadeCtrl, double in0, double in1); | |||||
| //============================================================================== | |||||
| /** | |||||
| Parabolic Controller Shaper: | |||||
| "Bends" the controller curve torwards the X or Y axis. | |||||
| input range: (-1..0..1) maps to output range: (-1..0..1). | |||||
| bend range: (-1..0..1) | |||||
| - bend = -1 (max bend towards X axis) | |||||
| - bend = 0 (don't bend) | |||||
| - bend = 1 (max bend towards Y axis) | |||||
| */ | |||||
| double parCtrlShaper(double input, double bend); | |||||
| //============================================================================== | |||||
| /** | |||||
| Normalizes a range of values to the range 0->1. | |||||
| (start/end should probably be the range of a parameter) | |||||
| - input: the value to be normalized | |||||
| - start: the start of the input's range | |||||
| - end: the end of the input's range | |||||
| Note: (start < end) and (start > end) are both valid. | |||||
| */ | |||||
| double normalizeRange(double input, double start, double end); | |||||
| double resonanceToQ(double resonance); | |||||
| //============================================================================== | |||||
| } // namespace rack_plugin_dBiz | |||||
| using namespace rack_plugin_dBiz; | |||||
| #endif /* DSPUtilities_h */ | |||||
| @@ -1,324 +0,0 @@ | |||||
| //************************************************************************************** | |||||
| //Clock Divider Module for VCV Rack by Autodafe http://www.autodafe.net | |||||
| // | |||||
| // Based on code created by Created by Nigel Redmon | |||||
| // EarLevel Engineering: earlevel.com | |||||
| // Copyright 2012 Nigel Redmon | |||||
| // http://www.earlevel.com/main/2012/11/26/biquad-c-source-code/ | |||||
| //************************************************************************************** | |||||
| #include "dBiz.hpp" | |||||
| #include <stdlib.h> | |||||
| namespace rack_plugin_dBiz { | |||||
| struct DualFilter : Module{ | |||||
| enum ParamIds | |||||
| { | |||||
| FREQ_PARAM, | |||||
| Q_PARAM, | |||||
| RES_PARAM, | |||||
| FREQ_CV_PARAM, | |||||
| FREQ_CV_PARAM2, | |||||
| DRIVE_PARAM, | |||||
| FREQ2_PARAM, | |||||
| Q2_PARAM, | |||||
| RES2_PARAM, | |||||
| FREQ2_CV_PARAM, | |||||
| FREQ2_CV_PARAM2, | |||||
| DRIVE2_PARAM, | |||||
| ROUTE_PARAM, | |||||
| FADE_PARAM, | |||||
| VOLA_PARAM, | |||||
| VOLB_PARAM, | |||||
| FILTERSEL_PARAM, | |||||
| FILTER2SEL_PARAM, | |||||
| NUM_PARAMS | |||||
| }; | |||||
| enum InputIds | |||||
| { | |||||
| FREQ_INPUT, | |||||
| FREQ_INPUT2, | |||||
| RES_INPUT, | |||||
| DRIVE_INPUT, | |||||
| INPUT, | |||||
| FREQ2_INPUT, | |||||
| FREQ2_INPUT2, | |||||
| RES2_INPUT, | |||||
| DRIVE2_INPUT, | |||||
| INPUT2, | |||||
| FADE_CV, | |||||
| NUM_INPUTS | |||||
| }; | |||||
| enum OutputIds | |||||
| { | |||||
| OUT1, | |||||
| OUT2, | |||||
| MIXOUT, | |||||
| NUM_OUTPUTS | |||||
| }; | |||||
| enum LightIds | |||||
| { | |||||
| FADEA_LIGHTS, | |||||
| FADEB_LIGHTS, | |||||
| NUM_LIGHTS | |||||
| }; | |||||
| DualFilter(); | |||||
| VAStateVariableFilter *lpFilter = new VAStateVariableFilter() ; // create a lpFilter; | |||||
| VAStateVariableFilter *hpFilter = new VAStateVariableFilter() ; // create a lpFilter; | |||||
| VAStateVariableFilter *bpFilter = new VAStateVariableFilter() ; // create a lpFilter; | |||||
| VAStateVariableFilter *npFilter = new VAStateVariableFilter() ; // create a lpFilter; | |||||
| VAStateVariableFilter *lp2Filter = new VAStateVariableFilter(); // create a lpFilter; | |||||
| VAStateVariableFilter *hp2Filter = new VAStateVariableFilter(); // create a lpFilter; | |||||
| VAStateVariableFilter *bp2Filter = new VAStateVariableFilter(); // create a lpFilter; | |||||
| VAStateVariableFilter *np2Filter = new VAStateVariableFilter(); // create a lpFilter; | |||||
| void step()override; | |||||
| }; | |||||
| DualFilter::DualFilter() { | |||||
| params.resize(NUM_PARAMS); | |||||
| inputs.resize(NUM_INPUTS); | |||||
| outputs.resize(NUM_OUTPUTS); | |||||
| lights.resize(NUM_LIGHTS); | |||||
| } | |||||
| float outLP; | |||||
| float outHP; | |||||
| float outBP; | |||||
| float outNP; | |||||
| float out2LP; | |||||
| float out2HP; | |||||
| float out2BP; | |||||
| float out2NP; | |||||
| //VAStateVariableFilter *peakFilter = new VAStateVariableFilter(); | |||||
| float minfreq = 15.0; | |||||
| float maxfreq = 12000; | |||||
| void DualFilter::step() { | |||||
| float input = inputs[INPUT].value * params[VOLA_PARAM].value / 5.0; | |||||
| float input2 = inputs[INPUT2].value * params[VOLB_PARAM].value/ 5.0; | |||||
| float drive = params[DRIVE_PARAM].value + inputs[DRIVE_INPUT].value / 10.0; | |||||
| float drive2 = params[DRIVE2_PARAM].value + inputs[DRIVE2_INPUT].value / 10.0; | |||||
| float xfade = params[FADE_PARAM].value+inputs[FADE_CV].value / 10.0; | |||||
| float gain = powf(100.0, drive); | |||||
| float gain2 = powf(100.0, drive2); | |||||
| input *= gain; | |||||
| input2 *= gain2; | |||||
| lights[FADEA_LIGHTS].value=(1-xfade); | |||||
| lights[FADEB_LIGHTS].value=xfade; | |||||
| // Add -60dB noise to bootstrap self-oscillation | |||||
| input += 1.0e-6 * (2.0*randomf() - 1.0)*1000; | |||||
| input2 += 1.0e-6 * (2.0 * randomf() - 1.0) * 1000; | |||||
| // Set resonance | |||||
| float res = clampf(params[RES_PARAM].value + clampf(inputs[RES_INPUT].value, 0,1), 0,1); | |||||
| float res2 = clampf(params[RES2_PARAM].value + clampf(inputs[RES2_INPUT].value, 0, 1), 0, 1); | |||||
| //res = 5.5 * clampf(res, 0.0, 1.0); | |||||
| float cutoffcv = 400*params[FREQ_CV_PARAM].value * inputs[FREQ_INPUT].value+ 400*inputs[FREQ_INPUT2].value *params[FREQ_CV_PARAM2].value ; | |||||
| float cutoff2cv = 400 * params[FREQ2_CV_PARAM].value * inputs[FREQ2_INPUT].value + 400 * inputs[FREQ2_INPUT2].value * params[FREQ2_CV_PARAM2].value; | |||||
| float cutoff = params[FREQ_PARAM].value + cutoffcv; | |||||
| float cutoff2 = params[FREQ2_PARAM].value + cutoff2cv; | |||||
| cutoff = clampf(cutoff, minfreq, maxfreq); | |||||
| cutoff2 = clampf(cutoff2, minfreq, maxfreq); | |||||
| lpFilter->setFilterType(0); | |||||
| hpFilter->setFilterType(2); | |||||
| bpFilter->setFilterType(1); | |||||
| npFilter->setFilterType(5); | |||||
| lp2Filter->setFilterType(0); | |||||
| hp2Filter->setFilterType(2); | |||||
| bp2Filter->setFilterType(1); | |||||
| np2Filter->setFilterType(5); | |||||
| lpFilter->setCutoffFreq(cutoff); | |||||
| hpFilter->setCutoffFreq(cutoff); | |||||
| bpFilter->setCutoffFreq(cutoff); | |||||
| npFilter->setCutoffFreq(cutoff); | |||||
| lp2Filter->setCutoffFreq(cutoff2); | |||||
| hp2Filter->setCutoffFreq(cutoff2); | |||||
| bp2Filter->setCutoffFreq(cutoff2); | |||||
| np2Filter->setCutoffFreq(cutoff2); | |||||
| lpFilter->setResonance(res); | |||||
| hpFilter->setResonance(res); | |||||
| bpFilter->setResonance(res); | |||||
| npFilter->setResonance(res); | |||||
| lp2Filter->setResonance(res2); | |||||
| hp2Filter->setResonance(res2); | |||||
| bp2Filter->setResonance(res2); | |||||
| np2Filter->setResonance(res2); | |||||
| lpFilter->setSampleRate(engineGetSampleRate()); | |||||
| hpFilter->setSampleRate(engineGetSampleRate()); | |||||
| bpFilter->setSampleRate(engineGetSampleRate()); | |||||
| npFilter->setSampleRate(engineGetSampleRate()); | |||||
| lp2Filter->setSampleRate(engineGetSampleRate()); | |||||
| hp2Filter->setSampleRate(engineGetSampleRate()); | |||||
| bp2Filter->setSampleRate(engineGetSampleRate()); | |||||
| np2Filter->setSampleRate(engineGetSampleRate()); | |||||
| outLP = lpFilter->processAudioSample(input,1); | |||||
| outHP = hpFilter->processAudioSample(input,1); | |||||
| outBP = bpFilter->processAudioSample(input,1); | |||||
| outNP = npFilter->processAudioSample(input,1); | |||||
| out2LP = lp2Filter->processAudioSample(input2, 1); | |||||
| out2HP = hp2Filter->processAudioSample(input2, 1); | |||||
| out2BP = bp2Filter->processAudioSample(input2, 1); | |||||
| out2NP = np2Filter->processAudioSample(input2, 1); | |||||
| int sel1 = round(params[FILTERSEL_PARAM].value); | |||||
| int sel2 = round(params[FILTER2SEL_PARAM].value); | |||||
| for (int i=0;i<4;i++) | |||||
| { | |||||
| if (sel1 == 0) | |||||
| outputs[OUT1].value = outLP * 5; | |||||
| if (sel1 == 1) | |||||
| outputs[OUT1].value = outHP * 5; | |||||
| if (sel1 == 2) | |||||
| outputs[OUT1].value = outBP * 5; | |||||
| if (sel1 == 3) | |||||
| outputs[OUT1].value = outNP * 5; | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| if (sel2 == 0) | |||||
| outputs[OUT2].value = out2LP * 5; | |||||
| if (sel2 == 1) | |||||
| outputs[OUT2].value = out2HP * 5; | |||||
| if (sel2 == 2) | |||||
| outputs[OUT2].value = out2BP * 5; | |||||
| if (sel2 == 3) | |||||
| outputs[OUT2].value = out2NP * 5; | |||||
| } | |||||
| float filter1 = outputs[OUT1].value; | |||||
| float filter2 = outputs[OUT2].value; | |||||
| int route = round(params[ROUTE_PARAM].value); | |||||
| for (int i = 0; i < 2; i++) | |||||
| { | |||||
| if (route == 0) | |||||
| outputs[MIXOUT].value = (filter1 * ( 1-xfade ))+(filter2 * xfade); | |||||
| else | |||||
| outputs[MIXOUT].value = 0.0; | |||||
| } | |||||
| } | |||||
| DualFilterWidget::DualFilterWidget() { | |||||
| DualFilter *module = new DualFilter(); | |||||
| setModule(module); | |||||
| box.size = Vec(15 * 18, 380); | |||||
| { | |||||
| SVGPanel *panel = new SVGPanel(); | |||||
| panel->box.size = box.size; | |||||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/DualFilter.svg"))); | |||||
| addChild(panel); | |||||
| } | |||||
| int i=140; | |||||
| int s=27; | |||||
| int l=10; | |||||
| int of = -20; | |||||
| int cv = 310; | |||||
| addChild(createScrew<ScrewSilver>(Vec(15, 0))); | |||||
| addChild(createScrew<ScrewSilver>(Vec(box.size.x - 30, 0))); | |||||
| addChild(createScrew<ScrewSilver>(Vec(15, 365))); | |||||
| addChild(createScrew<ScrewSilver>(Vec(box.size.x - 30, 365))); | |||||
| addChild(createLight<MediumLight<GreenLight>>(Vec(i-45,21),module,DualFilter::FADEA_LIGHTS)); | |||||
| addChild(createLight<MediumLight<GreenLight>>(Vec(i+23,21),module,DualFilter::FADEB_LIGHTS)); | |||||
| addParam(createParam<LRoundBlu>(Vec(i -30 , 21), module, DualFilter::FADE_PARAM, 0.0,1.0,0.0)); | |||||
| addParam(createParam<CKSS>(Vec(i -12, 290), module, DualFilter::ROUTE_PARAM, 0.0, 1.0, 1.0)); | |||||
| addParam(createParam<LRoundWhy>(Vec(of + 68, 30), module, DualFilter::FREQ_PARAM, minfreq, maxfreq, maxfreq)); | |||||
| addParam(createParam<LRoundWhy>(Vec(of + 58 + i, 30), module, DualFilter::FREQ2_PARAM, minfreq, maxfreq, maxfreq)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 33, 113), module, DualFilter::FREQ_CV_PARAM, -1.0, 1.0, 0.0)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 100, 93), module, DualFilter::RES_PARAM, 0.0, 0.99, 0.0)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 100 + i, 113), module, DualFilter::FREQ2_CV_PARAM, -1.0, 1.0, 0.0)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 33 + i, 93), module, DualFilter::RES2_PARAM, 0.0, 0.99, 0.0)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 33, 165), module, DualFilter::FREQ_CV_PARAM2, -1.0, 1.0, 0.0)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 100 + i, 165), module, DualFilter::FREQ2_CV_PARAM2, -1.0, 1.0, 0.0)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 100, 145), module, DualFilter::DRIVE_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 33 + i, 145), module, DualFilter::DRIVE2_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 100, 200), module, DualFilter::VOLA_PARAM, 0.0, 5.0, 0.0)); | |||||
| addParam(createParam<RoundWhy>(Vec(of + 33 + i, 200), module, DualFilter::VOLB_PARAM, 0.0, 5.0, 0.0)); | |||||
| addParam(createParam<RoundWhySnapKnob>(Vec(of + 33, 220), module, DualFilter::FILTERSEL_PARAM, 0.0, 3.0, 0.0)); | |||||
| addParam(createParam<RoundWhySnapKnob>(Vec(of + 100 + i, 220), module, DualFilter::FILTER2SEL_PARAM, 0.0, 3.0, 0.0)); | |||||
| addInput(createInput<PJ301MCPort>(Vec(l, 276), module, DualFilter::FREQ_INPUT)); | |||||
| addInput(createInput<PJ301MCPort>(Vec(l + s , 276), module, DualFilter::FREQ_INPUT2)); | |||||
| addInput(createInput<PJ301MCPort>(Vec(l + s * 2, 276), module, DualFilter::RES_INPUT)); | |||||
| addInput(createInput<PJ301MCPort>(Vec(l + s * 3, 276), module, DualFilter::DRIVE_INPUT)); | |||||
| addInput(createInput<PJ301MCPort>(Vec(l + s , cv), module, DualFilter::FADE_CV)); | |||||
| addInput(createInput<PJ301MCPort>(Vec(l + i, 276), module, DualFilter::FREQ2_INPUT)); | |||||
| addInput(createInput<PJ301MCPort>(Vec(l + s + i, 276), module, DualFilter::FREQ2_INPUT2)); | |||||
| addInput(createInput<PJ301MCPort>(Vec(l + s * 2 + i, 276), module, DualFilter::RES2_INPUT)); | |||||
| addInput(createInput<PJ301MCPort>(Vec(l + s * 3 + i, 276), module, DualFilter::DRIVE2_INPUT)); | |||||
| addInput(createInput<PJ301MOrPort>(Vec(l + s * 2, cv), module, DualFilter::INPUT)); | |||||
| addInput(createInput<PJ301MOrPort>(Vec(l + s + i, cv), module, DualFilter::INPUT2)); | |||||
| addOutput(createOutput<PJ301MOPort>(Vec(l , cv), module, DualFilter::OUT1)); | |||||
| addOutput(createOutput<PJ301MOPort>(Vec(l + s * 3 + i, cv), module, DualFilter::OUT2)); | |||||
| addOutput(createOutput<PJ301MOPort>(Vec(l + s * 2 + i, cv), module, DualFilter::MIXOUT)); | |||||
| } | |||||
| } // namespace rack_plugin_dBiz | |||||
| @@ -1,271 +0,0 @@ | |||||
| /* | |||||
| ============================================================================== | |||||
| VAStateVariableFilter.cpp | |||||
| Created: 10 May 2015 2:41:43pm | |||||
| Author: Jordan Harris | |||||
| ============================================================================== | |||||
| */ | |||||
| #include "VAStateVariableFilter.h" | |||||
| //============================================================================== | |||||
| namespace rack_plugin_dBiz { | |||||
| VAStateVariableFilter::VAStateVariableFilter() | |||||
| { | |||||
| sampleRate = 44100.0f; // default sample rate when constructed | |||||
| filterType = SVFLowpass; // lowpass filter by default | |||||
| gCoeff = 1.0f; | |||||
| RCoeff = 1.0f; | |||||
| KCoeff = 0.0f; | |||||
| cutoffFreq = 1000.0f; | |||||
| Q = static_cast<float>(resonanceToQ(0.5)); | |||||
| z1_A[0] = z2_A[0] = 0.0f; | |||||
| z1_A[1] = z2_A[1] = 0.0f; | |||||
| //smoothTimeMs = 0.0; // 0.0 milliseconds | |||||
| } | |||||
| VAStateVariableFilter::~VAStateVariableFilter() | |||||
| { | |||||
| } | |||||
| // Member functions for setting the filter's parameters (and sample rate). | |||||
| //============================================================================== | |||||
| void VAStateVariableFilter::setFilterType(const int& newType) | |||||
| { | |||||
| filterType = newType; | |||||
| } | |||||
| void VAStateVariableFilter::setCutoffPitch(const float& newCutoffPitch) | |||||
| { | |||||
| if (active) { | |||||
| cutoffFreq = static_cast<float>(pitchToFreq(newCutoffPitch)); | |||||
| //cutoffLinSmooth.setValue(cutoffFreq); | |||||
| calcFilter(); | |||||
| } | |||||
| } | |||||
| void VAStateVariableFilter::setCutoffFreq(const float& newCutoffFreq) | |||||
| { | |||||
| if (active) { | |||||
| cutoffFreq = newCutoffFreq; | |||||
| calcFilter(); | |||||
| } | |||||
| } | |||||
| void VAStateVariableFilter::setResonance(const float& newResonance) | |||||
| { | |||||
| if (active) { | |||||
| Q = static_cast<float>(resonanceToQ(newResonance)); | |||||
| calcFilter(); | |||||
| } | |||||
| } | |||||
| void VAStateVariableFilter::setQ(const float& newQ) | |||||
| { | |||||
| if (active) { | |||||
| Q = newQ; | |||||
| calcFilter(); | |||||
| } | |||||
| } | |||||
| void VAStateVariableFilter::setShelfGain(const float& newGain) | |||||
| { | |||||
| if (active) { | |||||
| shelfGain = newGain; | |||||
| calcFilter(); | |||||
| } | |||||
| } | |||||
| void VAStateVariableFilter::setFilter(const int& newType, const float& newCutoffFreq, | |||||
| const float& newResonance, const float& newShelfGain) | |||||
| { | |||||
| filterType = newType; | |||||
| cutoffFreq = newCutoffFreq; | |||||
| Q = static_cast<float>(resonanceToQ(newResonance)); | |||||
| shelfGain = newShelfGain; | |||||
| calcFilter(); | |||||
| } | |||||
| void VAStateVariableFilter::setSampleRate(const float& newSampleRate) | |||||
| { | |||||
| sampleRate = newSampleRate; | |||||
| //cutoffLinSmooth.reset(sampleRate, smoothTimeMs); | |||||
| calcFilter(); | |||||
| } | |||||
| /*void VAStateVariableFilter::setSmoothingTimeInMs(const float & newSmoothingTimeMs) | |||||
| { | |||||
| smoothTimeMs = newSmoothingTimeMs; | |||||
| }*/ | |||||
| void VAStateVariableFilter::setIsActive(bool isActive) | |||||
| { | |||||
| active = isActive; | |||||
| } | |||||
| //============================================================================== | |||||
| void VAStateVariableFilter::calcFilter() | |||||
| { | |||||
| if (active) { | |||||
| // prewarp the cutoff (for bilinear-transform filters) | |||||
| float wd = static_cast<float>(cutoffFreq * 2.0f * M_PI); | |||||
| float T = 1.0f / (float)sampleRate; | |||||
| float wa = (2.0f / T) * tan(wd * T / 2.0f); | |||||
| // Calculate g (gain element of integrator) | |||||
| gCoeff = wa * T / 2.0f; // Calculate g (gain element of integrator) | |||||
| // Calculate Zavalishin's R from Q (referred to as damping parameter) | |||||
| RCoeff = 1.0f / (2.0f * Q); | |||||
| // Gain for BandShelving filter | |||||
| KCoeff = shelfGain; | |||||
| } | |||||
| } | |||||
| float VAStateVariableFilter::processAudioSample(const float& input, const int& channelIndex) | |||||
| { | |||||
| if (active) { | |||||
| // Do the cutoff parameter smoothing per sample. | |||||
| //cutoffFreq = cutoffLinSmooth.getNextValue(); | |||||
| //calcFilter(); | |||||
| // Filter processing: | |||||
| const float HP = (input - (2.0f * RCoeff + gCoeff) * z1_A[channelIndex] - z2_A[channelIndex]) | |||||
| / (1.0f + (2.0f * RCoeff * gCoeff) + gCoeff * gCoeff); | |||||
| const float BP = HP * gCoeff + z1_A[channelIndex]; | |||||
| const float LP = BP * gCoeff + z2_A[channelIndex]; | |||||
| const float UBP = 2.0f * RCoeff * BP; | |||||
| const float BShelf = input + UBP * KCoeff; | |||||
| const float Notch = input - UBP; | |||||
| const float AP = input - (4.0f * RCoeff * BP); | |||||
| const float Peak = LP - HP; | |||||
| z1_A[channelIndex] = gCoeff * HP + BP; // unit delay (state variable) | |||||
| z2_A[channelIndex] = gCoeff * BP + LP; // unit delay (state variable) | |||||
| // Selects which filter type this function will output. | |||||
| switch (filterType) { | |||||
| case SVFLowpass: | |||||
| return LP; | |||||
| break; | |||||
| case SVFBandpass: | |||||
| return BP; | |||||
| break; | |||||
| case SVFHighpass: | |||||
| return HP; | |||||
| break; | |||||
| case SVFUnitGainBandpass: | |||||
| return UBP; | |||||
| break; | |||||
| case SVFBandShelving: | |||||
| return BShelf; | |||||
| break; | |||||
| case SVFNotch: | |||||
| return Notch; | |||||
| break; | |||||
| case SVFAllpass: | |||||
| return AP; | |||||
| break; | |||||
| case SVFPeak: | |||||
| return Peak; | |||||
| break; | |||||
| default: | |||||
| return 0.0f; | |||||
| break; | |||||
| } | |||||
| } | |||||
| else { // If not active, return input | |||||
| return input; | |||||
| } | |||||
| } | |||||
| void VAStateVariableFilter::processAudioBlock(float* const samples, const int& numSamples, | |||||
| const int& channelIndex) | |||||
| { | |||||
| // Test if filter is active. If not, bypass it | |||||
| if (active) { | |||||
| // Loop through the sample block and process it | |||||
| for (int i = 0; i < numSamples; ++i) { | |||||
| // Do the cutoff parameter smoothing per sample. | |||||
| //cutoffFreq = cutoffLinSmooth.getNextValue(); | |||||
| //calcFilter(); // calculate the coefficients for the smoother | |||||
| // Filter processing: | |||||
| const float input = samples[i]; | |||||
| const float HP = (input - (2.0f * RCoeff + gCoeff) * z1_A[channelIndex] - z2_A[channelIndex]) | |||||
| / (1.0f + (2.0f * RCoeff * gCoeff) + gCoeff * gCoeff); | |||||
| const float BP = HP * gCoeff + z1_A[channelIndex]; | |||||
| const float LP = BP * gCoeff + z2_A[channelIndex]; | |||||
| const float UBP = 2.0f * RCoeff * BP; | |||||
| const float BShelf = input + UBP * KCoeff; | |||||
| const float Notch = input - UBP; | |||||
| const float AP = input - (4.0f * RCoeff * BP); | |||||
| const float Peak = LP - HP; | |||||
| z1_A[channelIndex] = gCoeff * HP + BP; // unit delay (state variable) | |||||
| z2_A[channelIndex] = gCoeff * BP + LP; // unit delay (state variable) | |||||
| // Selects which filter type this function will output. | |||||
| switch (filterType) { | |||||
| case SVFLowpass: | |||||
| samples[i] = LP; | |||||
| break; | |||||
| case SVFBandpass: | |||||
| samples[i] = BP; | |||||
| break; | |||||
| case SVFHighpass: | |||||
| samples[i] = HP; | |||||
| break; | |||||
| case SVFUnitGainBandpass: | |||||
| samples[i] = UBP; | |||||
| break; | |||||
| case SVFBandShelving: | |||||
| samples[i] = BShelf; | |||||
| break; | |||||
| case SVFNotch: | |||||
| samples[i] = Notch; | |||||
| break; | |||||
| case SVFAllpass: | |||||
| samples[i] = AP; | |||||
| break; | |||||
| case SVFPeak: | |||||
| samples[i] = Peak; | |||||
| break; | |||||
| default: | |||||
| samples[i] = 0.0f; | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } // namespace rack_plugin_dBiz | |||||
| //============================================================================== | |||||
| @@ -1,221 +0,0 @@ | |||||
| /* | |||||
| ============================================================================== | |||||
| VAStateVariableFilter.h | |||||
| Created: 10 May 2015 2:41:43pm | |||||
| Author: Jordan Harris | |||||
| Notes: | |||||
| From The Art of VA Filter Design, by Vadim Zavalishin | |||||
| TPT State Variable Filter: | |||||
| TPT -> Topology Preserving Transform | |||||
| This filter is based off of the trapezoidal integrator, which produces | |||||
| a bilinear transformation. This filter does the proper cutoff prewarping | |||||
| needed for the TPT structure, as explained by Zavalishin. It also handles | |||||
| the problem of delayless feedback loops that the trapezoidal integrators | |||||
| introduce. | |||||
| The SVF has two feedback paths sharing a common path segment. In order to | |||||
| obtain a single feedback equation (rather than equation system), a signal | |||||
| on the common path should be selected as the unknown variable. The HP filter | |||||
| path is chosen as the zero-delay feedback equation's unknown in this filter. | |||||
| Using the HP filter path, the rest of the filter's signals in the structure | |||||
| can be defined. | |||||
| ============================================================================== | |||||
| */ | |||||
| #ifndef VASTATEVARIABLEFILTER_H | |||||
| #define VASTATEVARIABLEFILTER_H | |||||
| #define _USE_MATH_DEFINES // to use M_PI | |||||
| namespace rack_plugin_dBiz { | |||||
| //============================================================================== | |||||
| #include <cmath> | |||||
| #include "DSPUtilities.h" | |||||
| //============================================================================== | |||||
| using std::pow; | |||||
| using std::tan; | |||||
| using std::sqrt; | |||||
| //============================================================================== | |||||
| /** The type of filter that the State Variable Filter will output. */ | |||||
| enum SVFType { | |||||
| SVFLowpass = 0, | |||||
| SVFBandpass, | |||||
| SVFHighpass, | |||||
| SVFUnitGainBandpass, | |||||
| SVFBandShelving, | |||||
| SVFNotch, | |||||
| SVFAllpass, | |||||
| SVFPeak | |||||
| }; | |||||
| //============================================================================== | |||||
| class VAStateVariableFilter { | |||||
| public: | |||||
| /** Create and initialize the filter with default values defined in constructor. */ | |||||
| VAStateVariableFilter(); | |||||
| //------------------------------------------------------------------------------ | |||||
| ~VAStateVariableFilter(); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Sets the type of the filter that processAudioSample() or processAudioBlock() will | |||||
| output. This filter can choose between 8 different types using the enums listed | |||||
| below or the int given to each. | |||||
| 0: SVFLowpass | |||||
| 1: SVFBandpass | |||||
| 2: SVFHighpass | |||||
| 3: SVFUnitGainBandpass | |||||
| 4: SVFBandShelving | |||||
| 5: SVFNotch | |||||
| 6: SVFAllpass | |||||
| 7: SVFPeak | |||||
| */ | |||||
| void setFilterType(const int& newType); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Used for changing the filter's cutoff parameter logarithmically by | |||||
| pitch (MIDI note #) | |||||
| */ | |||||
| void setCutoffPitch(const float& newCutoff); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Used for changing the filter's cutoff parameter linearly by frequency (Hz) */ | |||||
| void setCutoffFreq(const float& newCutoff); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Used for setting the resonance amount. This is then converted to a Q | |||||
| value, which is used by the filter. | |||||
| Range: (0-1) | |||||
| */ | |||||
| void setResonance(const float& newResonance); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Used for setting the filter's Q amount. This is then converted to a | |||||
| damping parameter called R, which is used in the original filter. | |||||
| */ | |||||
| void setQ(const float& newQ); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Sets the gain of the shelf for the BandShelving filter only. */ | |||||
| void setShelfGain(const float& newGain); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Statically set the filters parameters. */ | |||||
| void setFilter(const int& newType, const float& newCutoff, | |||||
| const float& newResonance, const float& newShelfGain); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Set the sample rate used by the host. Needs to be used to accurately | |||||
| calculate the coefficients of the filter from the cutoff. | |||||
| Note: This is often used in AudioProcessor::prepareToPlay | |||||
| */ | |||||
| void setSampleRate(const float& newSampleRate); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Sets the time that it takes to interpolate between the previous value and | |||||
| the current value. For this filter, the smoothing is only happening for | |||||
| the filters cutoff frequency. | |||||
| */ | |||||
| //void setSmoothingTimeInMs(const float& newSmoothingTimeMs); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Sets whether the filter will process data or not. | |||||
| - If (isActive = true) then the filter will process data | |||||
| - If (isActive = false) then the filter will be bypassed | |||||
| */ | |||||
| void setIsActive(bool isActive); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Performs the actual processing for one sample of data, on 2 channels. | |||||
| If 2 channels are needed (stereo), use channel index (channelIdx) to | |||||
| specify which channel is being processed (i.e. 0 for left, 1 for right). | |||||
| */ | |||||
| float processAudioSample(const float& input, const int& channelIndex); | |||||
| //------------------------------------------------------------------------------ | |||||
| /** Performs the actual processing for a block of samples, on 2 channels. | |||||
| If 2 channels are needed (stereo), use channel index (channelIdx) to | |||||
| specify which channel is being processed (i.e. 0 for left, 1 for right). | |||||
| Note: | |||||
| This processes the information sent to the samples argument and | |||||
| does it through a pointer. Therefore, no value needs to be | |||||
| returned. | |||||
| */ | |||||
| void processAudioBlock(float* const samples, const int& numSamples, | |||||
| const int& channelIndex); | |||||
| //------------------------------------------------------------------------------ | |||||
| double getCutoff(){ return cutoffFreq; } | |||||
| double getFilterType(){ return filterType; } | |||||
| double getQ(){ return Q; } | |||||
| double getShelfGain(){ return shelfGain; } | |||||
| private: | |||||
| //============================================================================== | |||||
| // Calculate the coefficients for the filter based on parameters. | |||||
| void calcFilter(); | |||||
| // Parameters: | |||||
| int filterType; | |||||
| float cutoffFreq; | |||||
| float Q; | |||||
| float shelfGain; | |||||
| float sampleRate; | |||||
| bool active = true; // is the filter processing or not | |||||
| // Coefficients: | |||||
| float gCoeff; // gain element | |||||
| float RCoeff; // feedback damping element | |||||
| float KCoeff; // shelf gain element | |||||
| float z1_A[2], z2_A[2]; // state variables (z^-1) | |||||
| // Parameter smoothers: | |||||
| //LinearSmoothedValue cutoffLinSmooth; | |||||
| //double smoothTimeMs; | |||||
| }; | |||||
| //============================================================================== | |||||
| } // namespace rack_plugin_dBiz | |||||
| #endif // VASTATEVARIABLEFILTER_H_INCLUDED | |||||
| /* | |||||
| ============================================================================== | |||||
| ParameterSmoother.h | |||||
| Created: 1 May 2015 12:43:46am | |||||
| Author: Jordan Harris | |||||
| ============================================================================== | |||||
| */ | |||||
| /* | |||||
| Useful DSP utilities. For instance, calculating frequency from a given | |||||
| pitch (MIDI) value, or vice versa. | |||||
| */ | |||||
| //============================================================================== | |||||
| @@ -1,173 +0,0 @@ | |||||
| //// code suggested by Hetrick///// | |||||
| #include "dBiz.hpp" | |||||
| #define NUM_PANELS 5 | |||||
| struct dBizBlank : Module | |||||
| { | |||||
| enum ParamIds | |||||
| { | |||||
| NUM_PARAMS | |||||
| }; | |||||
| enum InputIds | |||||
| { | |||||
| NUM_INPUTS | |||||
| }; | |||||
| enum OutputIds | |||||
| { | |||||
| NUM_OUTPUTS | |||||
| }; | |||||
| enum LightIds | |||||
| { | |||||
| NUM_LIGHTS | |||||
| }; | |||||
| int panel = 0; | |||||
| dBizBlank() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | |||||
| void step() override {} | |||||
| void reset() override | |||||
| { | |||||
| panel = 0; | |||||
| } | |||||
| void randomize() override | |||||
| { | |||||
| panel = round(randomf() * (NUM_PANELS - 1.0f)); | |||||
| } | |||||
| json_t *toJson() override | |||||
| { | |||||
| json_t *rootJ = json_object(); | |||||
| json_object_set_new(rootJ, "panel", json_integer(panel)); | |||||
| return rootJ; | |||||
| } | |||||
| void fromJson(json_t *rootJ) override | |||||
| { | |||||
| json_t *panelJ = json_object_get(rootJ, "panel"); | |||||
| if (panelJ) | |||||
| panel = json_integer_value(panelJ); | |||||
| } | |||||
| }; | |||||
| dBizBlankWidget::dBizBlankWidget() | |||||
| { | |||||
| auto *module = new dBizBlank(); | |||||
| setModule(module); | |||||
| box.size = Vec(6 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT); | |||||
| panel1 = new SVGPanel(); | |||||
| panel1->box.size = box.size; | |||||
| panel1->setBackground(SVG::load(assetPlugin(plugin, "res/Blanks/dBizBlank3.svg"))); | |||||
| addChild(panel1); | |||||
| panel2 = new SVGPanel(); | |||||
| panel2->box.size = box.size; | |||||
| panel2->setBackground(SVG::load(assetPlugin(plugin, "res/Blanks/dBizBlank7.svg"))); | |||||
| addChild(panel2); | |||||
| panel3 = new SVGPanel(); | |||||
| panel3->box.size = box.size; | |||||
| panel3->setBackground(SVG::load(assetPlugin(plugin, "res/Blanks/dBizBlank5.svg"))); | |||||
| addChild(panel3); | |||||
| panel4 = new SVGPanel(); | |||||
| panel4->box.size = box.size; | |||||
| panel4->setBackground(SVG::load(assetPlugin(plugin, "res/Blanks/dBizBlank8.svg"))); | |||||
| addChild(panel4); | |||||
| panel5 = new SVGPanel(); | |||||
| panel5->box.size = box.size; | |||||
| panel5->setBackground(SVG::load(assetPlugin(plugin, "res/Blanks/dBizBlank1.svg"))); | |||||
| addChild(panel5); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 30, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 30, 365))); | |||||
| } | |||||
| void dBizBlankWidget::step() | |||||
| { | |||||
| dBizBlank *blank = dynamic_cast<dBizBlank*>(module); | |||||
| assert(blank); | |||||
| panel1->visible = (blank->panel == 0); | |||||
| panel2->visible = (blank->panel == 1); | |||||
| panel3->visible = (blank->panel == 2); | |||||
| panel4->visible = (blank->panel == 3); | |||||
| panel5->visible = (blank->panel == 4); | |||||
| ModuleWidget::step(); | |||||
| } | |||||
| struct Panel1Item : MenuItem | |||||
| { | |||||
| dBizBlank *blank; | |||||
| void onAction(EventAction &e) override { blank->panel = 0; } | |||||
| void step() override { | |||||
| rightText = (blank->panel == 0) ? "âś”" : ""; | |||||
| MenuItem::step(); | |||||
| } | |||||
| }; | |||||
| struct Panel2Item : MenuItem | |||||
| { | |||||
| dBizBlank *blank; | |||||
| void onAction(EventAction &e) override { blank->panel = 1; } | |||||
| void step() override { | |||||
| rightText = (blank->panel == 1) ? "âś”" : ""; | |||||
| MenuItem::step(); | |||||
| } | |||||
| }; | |||||
| struct Panel3Item : MenuItem | |||||
| { | |||||
| dBizBlank *blank; | |||||
| void onAction(EventAction &e) override { blank->panel = 2; } | |||||
| void step() override { | |||||
| rightText = (blank->panel == 2) ? "âś”" : ""; | |||||
| MenuItem::step(); | |||||
| } | |||||
| }; | |||||
| struct Panel4Item : MenuItem | |||||
| { | |||||
| dBizBlank *blank; | |||||
| void onAction(EventAction &e) override { blank->panel = 3; } | |||||
| void step() override { | |||||
| rightText = (blank->panel == 3) ? "âś”" : ""; | |||||
| MenuItem::step(); | |||||
| } | |||||
| }; | |||||
| struct Panel5Item : MenuItem | |||||
| { | |||||
| dBizBlank *blank; | |||||
| void onAction(EventAction &e) override { blank->panel = 4; } | |||||
| void step() override { | |||||
| rightText = (blank->panel == 4) ? "âś”" : ""; | |||||
| MenuItem::step(); | |||||
| } | |||||
| }; | |||||
| Menu *dBizBlankWidget::createContextMenu() | |||||
| { | |||||
| Menu *menu = ModuleWidget::createContextMenu(); | |||||
| dBizBlank *blank = dynamic_cast<dBizBlank*>(module); | |||||
| assert(blank); | |||||
| menu->addChild(construct<MenuEntry>()); | |||||
| menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Panels Art")); | |||||
| menu->addChild(construct<Panel1Item>(&MenuEntry::text, "DeepBlue", &Panel1Item::blank, blank)); | |||||
| menu->addChild(construct<Panel2Item>(&MenuEntry::text, "Flat Volume", &Panel2Item::blank, blank)); | |||||
| menu->addChild(construct<Panel3Item>(&MenuEntry::text, "Circles", &Panel3Item::blank, blank)); | |||||
| menu->addChild(construct<Panel4Item>(&MenuEntry::text, "Dark Wave", &Panel4Item::blank, blank)); | |||||
| menu->addChild(construct<Panel5Item>(&MenuEntry::text, "Clouds Pattern", &Panel5Item::blank, blank)); | |||||
| return menu; | |||||
| } | |||||
| @@ -21,17 +21,21 @@ struct PerfMixer : Module { | |||||
| AUX_S1_PARAM = AUX_R2_PARAM + 8, | AUX_S1_PARAM = AUX_R2_PARAM + 8, | ||||
| AUX_S2_PARAM = AUX_S1_PARAM + 8, | AUX_S2_PARAM = AUX_S1_PARAM + 8, | ||||
| VOL_PARAM = AUX_S2_PARAM + 8, | VOL_PARAM = AUX_S2_PARAM + 8, | ||||
| AUX_1_PARAM = VOL_PARAM + 8, | |||||
| PAN_PARAM = VOL_PARAM + 8, | |||||
| AUX_1_PARAM = PAN_PARAM + 8, | |||||
| AUX_2_PARAM = AUX_1_PARAM + 8, | AUX_2_PARAM = AUX_1_PARAM + 8, | ||||
| MUTE_PARAM = AUX_2_PARAM + 8, | MUTE_PARAM = AUX_2_PARAM + 8, | ||||
| NUM_PARAMS = MUTE_PARAM + 8 | NUM_PARAMS = MUTE_PARAM + 8 | ||||
| }; | }; | ||||
| enum InputIds | enum InputIds | ||||
| { | { | ||||
| MIX_IN_L_INPUT, | |||||
| MIX_IN_R_INPUT, | |||||
| CH_L_INPUT = 8, | CH_L_INPUT = 8, | ||||
| CH_R_INPUT = CH_L_INPUT + 8, | CH_R_INPUT = CH_L_INPUT + 8, | ||||
| CH_VOL_INPUT = CH_R_INPUT + 8, | CH_VOL_INPUT = CH_R_INPUT + 8, | ||||
| CH_MUTE_INPUT = CH_VOL_INPUT + 8, | |||||
| CH_PAN_INPUT = CH_VOL_INPUT + 8, | |||||
| CH_MUTE_INPUT = CH_PAN_INPUT + 8, | |||||
| AUX_1_INPUT = CH_MUTE_INPUT + 8, | AUX_1_INPUT = CH_MUTE_INPUT + 8, | ||||
| AUX_2_INPUT = CH_MUTE_INPUT + 8, | AUX_2_INPUT = CH_MUTE_INPUT + 8, | ||||
| RETURN_1_L_INPUT = CH_MUTE_INPUT + 16, | RETURN_1_L_INPUT = CH_MUTE_INPUT + 16, | ||||
| @@ -53,7 +57,9 @@ struct PerfMixer : Module { | |||||
| enum LightIds | enum LightIds | ||||
| { | { | ||||
| MUTE_LIGHT, | |||||
| PAN_L_LIGHT, | |||||
| PAN_R_LIGHT = PAN_L_LIGHT + 8, | |||||
| MUTE_LIGHT = PAN_R_LIGHT + 8, | |||||
| METERL_LIGHT=MUTE_LIGHT+8, | METERL_LIGHT=MUTE_LIGHT+8, | ||||
| METERR_LIGHT=METERL_LIGHT+(12*8), | METERR_LIGHT=METERL_LIGHT+(12*8), | ||||
| NUM_LIGHTS=METERR_LIGHT+(12*8) | NUM_LIGHTS=METERR_LIGHT+(12*8) | ||||
| @@ -73,6 +79,9 @@ struct PerfMixer : Module { | |||||
| float left_sum = 0.0; | float left_sum = 0.0; | ||||
| float right_sum = 0.0; | float right_sum = 0.0; | ||||
| float mix_in_l =0.0f; | |||||
| float mix_in_r = 0.0f; | |||||
| float send_1_L_sum = 0.0; | float send_1_L_sum = 0.0; | ||||
| float send_1_R_sum = 0.0; | float send_1_R_sum = 0.0; | ||||
| float send_2_R_sum = 0.0; | float send_2_R_sum = 0.0; | ||||
| @@ -125,7 +134,19 @@ void PerfMixer::step() | |||||
| VUMeter vuBarsL[8]={}; | VUMeter vuBarsL[8]={}; | ||||
| VUMeter vuBarsR[8] = {}; | VUMeter vuBarsR[8] = {}; | ||||
| // mute triggers | |||||
| mix_in_l=inputs[MIX_IN_L_INPUT].value; | |||||
| mix_in_r=inputs[MIX_IN_R_INPUT].value; | |||||
| float pan_cv[8]={}; | |||||
| float pan_pos[8]={}; | |||||
| for (int i = 0; i < 8; i++) | |||||
| { | |||||
| } | |||||
| // mute triggers | |||||
| for (int i = 0 ; i < 8; i++) | for (int i = 0 ; i < 8; i++) | ||||
| { | { | ||||
| @@ -139,43 +160,63 @@ void PerfMixer::step() | |||||
| for (int i = 0 ; i < 8 ; i++) | for (int i = 0 ; i < 8 ; i++) | ||||
| { | |||||
| ch_l_ins[i] = inputs[CH_L_INPUT + i ].value * params[VOL_PARAM + i].value * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| ch_r_ins[i] = inputs[CH_R_INPUT + i ].value * params[VOL_PARAM + i].value * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| { | |||||
| pan_cv[i] = inputs[CH_PAN_INPUT + i].value / 5; | |||||
| pan_pos[i] = pan_cv[i] + params[PAN_PARAM + i].value; | |||||
| if (pan_pos[i] < 0) | |||||
| pan_pos[i] = 0; | |||||
| if (pan_pos[i] > 1) | |||||
| pan_pos[i] = 1; | |||||
| if (!mute_states[i] || inputs[CH_MUTE_INPUT + i].value > 0.0 ) | |||||
| { | |||||
| ch_l_ins[i] = 0.0; | |||||
| ch_r_ins[i] = 0.0; | |||||
| lights[MUTE_LIGHT + i].value = 0.0; | |||||
| } | |||||
| channel_outs_l[i] = ch_l_ins[i] * 2; | |||||
| channel_outs_r[i] = ch_r_ins[i] * 2; | |||||
| lights[PAN_L_LIGHT+i].value=1-pan_pos[i]; | |||||
| lights[PAN_R_LIGHT+i].value=pan_pos[i]; | |||||
| ch_l_ins[i] = inputs[CH_L_INPUT + i].value * params[VOL_PARAM + i].value * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| ch_r_ins[i] = inputs[CH_R_INPUT + i].value * params[VOL_PARAM + i].value * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| if (!mute_states[i] || inputs[CH_MUTE_INPUT + i].value > 0.0) | |||||
| { | |||||
| ch_l_ins[i] = 0.0; | |||||
| ch_r_ins[i] = 0.0; | |||||
| lights[MUTE_LIGHT + i].value = 0.0; | |||||
| } | |||||
| if(!inputs[CH_R_INPUT+i].value) | |||||
| { | |||||
| channel_outs_l[i] = ch_l_ins[i] * (1 - pan_pos[i]) * 3; | |||||
| channel_outs_r[i] = ch_l_ins[i] * pan_pos[i] * 3; | |||||
| } | |||||
| else | |||||
| { | |||||
| channel_outs_l[i] = ch_l_ins[i] * 2; | |||||
| channel_outs_r[i] = ch_r_ins[i] * 2; | |||||
| } | |||||
| channel_s1_L[i] = ch_l_ins[i] * params[AUX_1_PARAM + i].value * clamp(inputs[AUX_1_INPUT + i].normalize(5.0f)/5.0f,1.0f,1.0f) * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| channel_s2_L[i] = ch_l_ins[i] * params[AUX_2_PARAM + i].value * clamp(inputs[AUX_2_INPUT + i].normalize(5.0f)/5.0f,1.0f,1.0f) * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| channel_s1_L[i] = channel_outs_l[i] * params[AUX_1_PARAM + i].value * clamp(inputs[AUX_1_INPUT + i].normalize(5.0f) / 5.0f, 0.0f, 1.0f) * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| channel_s2_L[i] = channel_outs_l[i] * params[AUX_2_PARAM + i].value * clamp(inputs[AUX_2_INPUT + i].normalize(5.0f)/5.0f,0.0f,1.0f) * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| channel_s1_R[i] = ch_r_ins[i] * params[AUX_1_PARAM + i].value * clamp(inputs[AUX_1_INPUT + i].normalize(5.0f)/5.0f,1.0f,1.0f) * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| channel_s2_R[i] = ch_r_ins[i] * params[AUX_2_PARAM + i].value * clamp(inputs[AUX_2_INPUT + i].normalize(5.0f)/5.0f,1.0f,1.0f) * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| channel_s1_R[i] = channel_outs_r[i] * params[AUX_1_PARAM + i].value * clamp(inputs[AUX_1_INPUT + i].normalize(5.0f)/5.0f,0.0f,1.0f) * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| channel_s2_R[i] = channel_outs_r[i] * params[AUX_2_PARAM + i].value * clamp(inputs[AUX_2_INPUT + i].normalize(5.0f)/5.0f,0.0f,1.0f) * clamp(inputs[CH_VOL_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| vuBarsL[i].dBInterval = 3; | vuBarsL[i].dBInterval = 3; | ||||
| vuBarsR[i].dBInterval = 3; | vuBarsR[i].dBInterval = 3; | ||||
| vuBarsL[i].setValue(ch_l_ins[i] / 10.0); | |||||
| vuBarsR[i].setValue(ch_r_ins[i] / 10.0); | |||||
| vuBarsL[i].setValue(channel_outs_l[i] / 10.0); | |||||
| vuBarsR[i].setValue(channel_outs_r[i] / 10.0); | |||||
| for (int l = 0; l < 12; l++) | for (int l = 0; l < 12; l++) | ||||
| { | { | ||||
| lights[METERL_LIGHT + l+(i*11)].setBrightnessSmooth(vuBarsL[i].getBrightness(l)); | |||||
| lights[METERR_LIGHT + l+(i*11)].setBrightnessSmooth(vuBarsR[i].getBrightness(l)); | |||||
| } | |||||
| send_1_L_sum += channel_s1_L[i]; | |||||
| send_1_R_sum += channel_s1_R[i]; | |||||
| send_2_L_sum += channel_s2_L[i]; | |||||
| send_2_R_sum += channel_s2_R[i]; | |||||
| left_sum += channel_outs_l[i]; | |||||
| right_sum += channel_outs_r[i]; | |||||
| lights[METERL_LIGHT + l + (i * 11)].setBrightnessSmooth(vuBarsL[i].getBrightness(l)); | |||||
| lights[METERR_LIGHT + l + (i * 11)].setBrightnessSmooth(vuBarsR[i].getBrightness(l)); | |||||
| } | |||||
| send_1_L_sum += channel_s1_L[i]; | |||||
| send_1_R_sum += channel_s1_R[i]; | |||||
| send_2_L_sum += channel_s2_L[i]; | |||||
| send_2_R_sum += channel_s2_R[i]; | |||||
| left_sum += channel_outs_l[i]; | |||||
| right_sum += channel_outs_r[i]; | |||||
| } | } | ||||
| @@ -197,8 +238,8 @@ void PerfMixer::step() | |||||
| float send_2_L_mix = (send_2_L_sum) * params[AUX_S2_PARAM].value; | float send_2_L_mix = (send_2_L_sum) * params[AUX_S2_PARAM].value; | ||||
| float send_2_R_mix = (send_2_R_sum) * params[AUX_S2_PARAM].value; | float send_2_R_mix = (send_2_R_sum) * params[AUX_S2_PARAM].value; | ||||
| outputs[MIX_OUTPUT_L].value = mix_l; | |||||
| outputs[MIX_OUTPUT_R].value = mix_r; | |||||
| outputs[MIX_OUTPUT_L].value = mix_l+mix_in_l; | |||||
| outputs[MIX_OUTPUT_R].value = mix_r+mix_in_r; | |||||
| outputs[SEND_1_L_OUTPUT].value = 3 * send_1_L_mix; | outputs[SEND_1_L_OUTPUT].value = 3 * send_1_L_mix; | ||||
| @@ -214,7 +255,7 @@ struct MuteLight : BASE | |||||
| { | { | ||||
| MuteLight() | MuteLight() | ||||
| { | { | ||||
| this->box.size = Vec(10.0, 10.0); | |||||
| this->box.size = Vec(15.0, 15.0); | |||||
| } | } | ||||
| }; | }; | ||||
| @@ -223,8 +264,8 @@ struct MeterLight : BASE | |||||
| { | { | ||||
| MeterLight() | MeterLight() | ||||
| { | { | ||||
| this->box.size = Vec(5, 5); | |||||
| this->bgColor = nvgRGBAf(0.0, 0.0, 0.0, 0.0); | |||||
| this->box.size = Vec(4, 4); | |||||
| this->bgColor = nvgRGBAf(0.0, 0.0, 0.0, 0.1); | |||||
| } | } | ||||
| }; | }; | ||||
| @@ -261,48 +302,63 @@ PerfMixerWidget(PerfMixer *module) : ModuleWidget(module) | |||||
| // channel strips | // channel strips | ||||
| for (int i = 0 ; i < 8 ; i++) | for (int i = 0 ; i < 8 ; i++) | ||||
| { | { | ||||
| addParam(ParamWidget::create<MicroBlu>(Vec(column_1+column_spacing*i,75 ), module, PerfMixer::AUX_1_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<MicroBlu>(Vec(column_1+column_spacing*i,105 ), module, PerfMixer::AUX_2_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(column_1 + column_spacing * i, 15), Port::INPUT, module, PerfMixer::AUX_1_INPUT + i)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(column_1 + column_spacing * i, 40), Port::INPUT, module, PerfMixer::AUX_2_INPUT + i)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(lb , top + row_in*i ), Port::INPUT, module, PerfMixer::CH_L_INPUT + i)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(lb + 25, top + row_in*i), Port::INPUT, module, PerfMixer::CH_R_INPUT + i)); | |||||
| addInput(Port::create<PJ301MLPort>(Vec(5,7), Port::INPUT, module, PerfMixer::MIX_IN_L_INPUT)); | |||||
| addInput(Port::create<PJ301MRPort>(Vec(30,7), Port::INPUT, module, PerfMixer::MIX_IN_R_INPUT)); | |||||
| addParam(ParamWidget::create<SlidePot2>(Vec(column_1 + column_spacing * i, top_row + row_spacing * 2 - 30 + top), module, PerfMixer::VOL_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<MicroBlu>(Vec(column_1 + column_spacing * i, 75), module, PerfMixer::AUX_1_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<MicroBlu>(Vec(column_1 + column_spacing * i, 105), module, PerfMixer::AUX_2_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(column_1 + column_spacing * i - 5, top_row + row_spacing * 6 - 20 + top), Port::INPUT, module, PerfMixer::CH_VOL_INPUT + i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(column_1 + column_spacing * i, 15), Port::INPUT, module, PerfMixer::AUX_1_INPUT + i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(column_1 + column_spacing * i, 40), Port::INPUT, module, PerfMixer::AUX_2_INPUT + i)); | |||||
| addParam(ParamWidget::create<LEDButton>(Vec(column_1 + column_spacing * i, top_row + row_spacing * 7 + top), module, PerfMixer::MUTE_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addChild(GrayModuleLightWidget::create<MuteLight<GreenLight>>(Vec(column_1 + column_spacing * i + 4, top_row + row_spacing * 7 + 4 + top), module, PerfMixer::MUTE_LIGHT + i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(column_1 + column_spacing * i, top_row + row_spacing * 8 + top), Port::INPUT, module, PerfMixer::CH_MUTE_INPUT + i)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(lb, top + row_in * i), Port::INPUT, module, PerfMixer::CH_L_INPUT + i)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(lb + 25, top + row_in * i), Port::INPUT, module, PerfMixer::CH_R_INPUT + i)); | |||||
| //addChild(GrayModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 +19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top), module, PerfMixer::METER_LIGHT + 0+(11*i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 +19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top +9), module, PerfMixer::METERL_LIGHT + 1+(11*i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 +19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top+ 9 * 2), module, PerfMixer::METERL_LIGHT + 2+(11*i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1+19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top+ 9 * 3), module, PerfMixer::METERL_LIGHT + 3+(11*i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1+19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top +9 * 4), module, PerfMixer::METERL_LIGHT + 4 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1+19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top +9 * 5), module, PerfMixer::METERL_LIGHT + 5 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1+19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top +9 * 6), module, PerfMixer::METERL_LIGHT + 6 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1+19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top +9 * 7), module, PerfMixer::METERL_LIGHT + 7 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1+19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top +9 * 8), module, PerfMixer::METERL_LIGHT + 8 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 +19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top+ 9 * 9), module, PerfMixer::METERL_LIGHT + 9+(11*i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 +19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top+ 9 * 10), module, PerfMixer::METERL_LIGHT + 10+(11*i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 +19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top+ 9 * 11), module, PerfMixer::METERL_LIGHT + 11+(11*i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top +9 ), module, PerfMixer::METERR_LIGHT + 1 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 2), module, PerfMixer::METERR_LIGHT + 2 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 3), module, PerfMixer::METERR_LIGHT + 3 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 4), module, PerfMixer::METERR_LIGHT + 4 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 5), module, PerfMixer::METERR_LIGHT + 5 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 6), module, PerfMixer::METERR_LIGHT + 6 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 7), module, PerfMixer::METERR_LIGHT + 7 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 8), module, PerfMixer::METERR_LIGHT + 8 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 9), module, PerfMixer::METERR_LIGHT + 9 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 10), module, PerfMixer::METERR_LIGHT + 10 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 24 + column_spacing * i, top_row + row_spacing * 2 - 30 + top + 9 * 11), module, PerfMixer::METERR_LIGHT + 11 + (11 * i))); | |||||
| addParam(ParamWidget::create<LEDSliderBlue>(Vec(column_1 + column_spacing * i-5, top_row + row_spacing * 2 - 20 + top), module, PerfMixer::VOL_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(column_1 + column_spacing * i - 1, top_row + row_spacing * 6 - 45 + top), Port::INPUT, module, PerfMixer::CH_VOL_INPUT + i)); | |||||
| ///////////////////////////////////////////////////// | |||||
| addChild(ModuleLightWidget::create<MeterLight<OrangeLight>>(Vec(column_1 + column_spacing * i + 1 , top_row + row_spacing * 6 + top-15),module,PerfMixer::PAN_L_LIGHT+i)); | |||||
| addChild(ModuleLightWidget::create<MeterLight<OrangeLight>>(Vec(column_1 + column_spacing * i + 20 , top_row + row_spacing * 6 + top-15),module,PerfMixer::PAN_R_LIGHT+i)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(column_1 + column_spacing * i +3, top_row + row_spacing * 6 + top-10), module, PerfMixer::PAN_PARAM + i, 0.0, 1.0, 0.5)); | |||||
| addInput(Port::create<PJ301MOrPort>(Vec(column_1 + column_spacing * i - 1, top_row + row_spacing * 6 + top+10), Port::INPUT, module, PerfMixer::CH_PAN_INPUT + i)); | |||||
| //////////////////////////////////////////////////////// | |||||
| addParam(ParamWidget::create<LEDButton>(Vec(column_1 + column_spacing * i + 3 , top_row + row_spacing * 7+ 10.5 + top+3), module, PerfMixer::MUTE_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addChild(GrayModuleLightWidget::create<MuteLight<BlueLight>>(Vec(column_1 + column_spacing * i + 4.5 , top_row + row_spacing * 7 +12 + top+3), module, PerfMixer::MUTE_LIGHT + i)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(column_1 + column_spacing * i-1, top_row + row_spacing * 8 + top+5), Port::INPUT, module, PerfMixer::CH_MUTE_INPUT + i)); | |||||
| //addChild(GrayModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 +19 + column_spacing * i, top_row + row_spacing * 2 - 30 + top), module, PerfMixer::METER_LIGHT + 0+(11*i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5), module, PerfMixer::METERL_LIGHT + 1 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 2), module, PerfMixer::METERL_LIGHT + 2 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 3), module, PerfMixer::METERL_LIGHT + 3 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 4), module, PerfMixer::METERL_LIGHT + 4 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 5), module, PerfMixer::METERL_LIGHT + 5 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 6), module, PerfMixer::METERL_LIGHT + 6 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 7), module, PerfMixer::METERL_LIGHT + 7 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 8), module, PerfMixer::METERL_LIGHT + 8 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 9), module, PerfMixer::METERL_LIGHT + 9 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 10), module, PerfMixer::METERL_LIGHT + 10 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 19 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 11), module, PerfMixer::METERL_LIGHT + 11 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5), module, PerfMixer::METERR_LIGHT + 1 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<RedLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 2), module, PerfMixer::METERR_LIGHT + 2 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 3), module, PerfMixer::METERR_LIGHT + 3 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 4), module, PerfMixer::METERR_LIGHT + 4 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 5), module, PerfMixer::METERR_LIGHT + 5 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 6), module, PerfMixer::METERR_LIGHT + 6 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<BlueLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 7), module, PerfMixer::METERR_LIGHT + 7 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 8), module, PerfMixer::METERR_LIGHT + 8 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 9), module, PerfMixer::METERR_LIGHT + 9 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 10), module, PerfMixer::METERR_LIGHT + 10 + (11 * i))); | |||||
| addChild(ModuleLightWidget::create<MeterLight<GreenLight>>(Vec(column_1 + 24 + column_spacing * i-5, top_row + row_spacing * 2 - 27 + top + 7.5 * 11), module, PerfMixer::METERR_LIGHT + 11 + (11 * i))); | |||||
| } | } | ||||
| @@ -203,44 +203,44 @@ RemixWidget(Remix *module) : ModuleWidget(module) | |||||
| addParam(ParamWidget::create<RoundWhy>(Vec(mid-15, midy+10+knob+10), module, Remix::CV_WIDTH_PARAM, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<RoundWhy>(Vec(mid-15, midy+10+knob+10), module, Remix::CV_WIDTH_PARAM, 0.0, 1.0, 0.0)); | ||||
| addParam(ParamWidget::create<Trimpot>(Vec(mid - 20, 322.5), module, Remix::SLOPE_PARAM, 0.0, 5.0, 0.0)); | addParam(ParamWidget::create<Trimpot>(Vec(mid - 20, 322.5), module, Remix::SLOPE_PARAM, 0.0, 5.0, 0.0)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(mid +10 , 320), Port::INPUT, module, Remix::SLOPE_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(mid +10 , 320), Port::INPUT, module, Remix::SLOPE_INPUT)); | |||||
| addParam(ParamWidget::create<RoundRed>(Vec(box.size.x - board - 32.5, midy+10), module, Remix::LEVEL_PARAM, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<RoundRed>(Vec(box.size.x - board - 32.5, midy+10), module, Remix::LEVEL_PARAM, 0.0, 1.0, 0.0)); | ||||
| addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x - board - 32.5, midy+10+knob+10), module, Remix::CV_LEVEL_PARAM, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<RoundWhy>(Vec(box.size.x - board - 32.5, midy+10+knob+10), module, Remix::CV_LEVEL_PARAM, 0.0, 1.0, 0.0)); | ||||
| addOutput(Port::create<PJ301MPort>(Vec(board + 7.5, 20), Port::OUTPUT, module, Remix::A_OUTPUT)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(board+7.5, 320), Port::INPUT, module, Remix::SCAN_INPUT)); | |||||
| addOutput(Port::create<PJ301MIPort>(Vec(board + 7.5, 20), Port::OUTPUT, module, Remix::A_OUTPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(board+7.5, 320), Port::INPUT, module, Remix::SCAN_INPUT)); | |||||
| addOutput(Port::create<PJ301MPort>(Vec(mid-15 + 7.5, 20), Port::OUTPUT, module, Remix::B_OUTPUT)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(mid-15+ 7.5, 290), Port::INPUT, module, Remix::WIDTH_INPUT)); | |||||
| addOutput(Port::create<PJ301MIPort>(Vec(mid-15 + 7.5, 20), Port::OUTPUT, module, Remix::B_OUTPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(mid-15+ 7.5, 290), Port::INPUT, module, Remix::WIDTH_INPUT)); | |||||
| addOutput(Port::create<PJ301MPort>(Vec(box.size.x-knob-board + 7.5, 20), Port::OUTPUT, module, Remix::C_OUTPUT)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(box.size.x-knob-board + 7.5, 320), Port::INPUT, module, Remix::LEVEL_INPUT)); | |||||
| addOutput(Port::create<PJ301MIPort>(Vec(box.size.x-knob-board + 7.5, 20), Port::OUTPUT, module, Remix::C_OUTPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(box.size.x-knob-board + 7.5, 320), Port::INPUT, module, Remix::LEVEL_INPUT)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(board +5+ jack*0, 70), Port::INPUT, module, Remix::CH1_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(board +5+ jack*0, 70), Port::INPUT, module, Remix::CH1_INPUT)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(board +10+ jack*0,130),module,Remix::CH1_LEVEL_PARAM,0.0,1.0,0.0)); | addParam(ParamWidget::create<Trimpot>(Vec(board +10+ jack*0,130),module,Remix::CH1_LEVEL_PARAM,0.0,1.0,0.0)); | ||||
| addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board+30+light*0,midy),module,Remix::CH1_LIGHT)); | addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board+30+light*0,midy),module,Remix::CH1_LIGHT)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(board + 5 + jack * 1, 70), Port::INPUT, module, Remix::CH2_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(board + 5 + jack * 1, 70), Port::INPUT, module, Remix::CH2_INPUT)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(board + 10 + jack * 1, 130), module, Remix::CH2_LEVEL_PARAM, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<Trimpot>(Vec(board + 10 + jack * 1, 130), module, Remix::CH2_LEVEL_PARAM, 0.0, 1.0, 0.0)); | ||||
| addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board + 30 + light * 1, midy), module, Remix::CH2_LIGHT)); | addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board + 30 + light * 1, midy), module, Remix::CH2_LIGHT)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(board + 5 + jack * 2, 70), Port::INPUT, module, Remix::CH3_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(board + 5 + jack * 2, 70), Port::INPUT, module, Remix::CH3_INPUT)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(board + 10 + jack * 2, 130), module, Remix::CH3_LEVEL_PARAM, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<Trimpot>(Vec(board + 10 + jack * 2, 130), module, Remix::CH3_LEVEL_PARAM, 0.0, 1.0, 0.0)); | ||||
| addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board + 30 + light * 2, midy), module, Remix::CH3_LIGHT)); | addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board + 30 + light * 2, midy), module, Remix::CH3_LIGHT)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(board +10+ jack*3+7.5, 70), Port::INPUT, module, Remix::CH4_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(board +10+ jack*3+7.5, 70), Port::INPUT, module, Remix::CH4_INPUT)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(board +10+ jack*3+9,130),module,Remix::CH4_LEVEL_PARAM,0.0,1.0,0.0)); | addParam(ParamWidget::create<Trimpot>(Vec(board +10+ jack*3+9,130),module,Remix::CH4_LEVEL_PARAM,0.0,1.0,0.0)); | ||||
| addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board+60+light*3,midy),module,Remix::CH4_LIGHT)); | addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board+60+light*3,midy),module,Remix::CH4_LIGHT)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(board + 10 + jack * 4 + 7.5, 70), Port::INPUT, module, Remix::CH5_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(board + 10 + jack * 4 + 7.5, 70), Port::INPUT, module, Remix::CH5_INPUT)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(board + 10 + jack * 4 + 9, 130), module, Remix::CH5_LEVEL_PARAM, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<Trimpot>(Vec(board + 10 + jack * 4 + 9, 130), module, Remix::CH5_LEVEL_PARAM, 0.0, 1.0, 0.0)); | ||||
| addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board + 60 + light * 4, midy), module, Remix::CH5_LIGHT)); | addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board + 60 + light * 4, midy), module, Remix::CH5_LIGHT)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(board + 10 + jack * 5 + 7.5, 70), Port::INPUT, module, Remix::CH6_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(board + 10 + jack * 5 + 7.5, 70), Port::INPUT, module, Remix::CH6_INPUT)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(board + 10 + jack * 5 +9, 130), module, Remix::CH6_LEVEL_PARAM , 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<Trimpot>(Vec(board + 10 + jack * 5 +9, 130), module, Remix::CH6_LEVEL_PARAM , 0.0, 1.0, 0.0)); | ||||
| addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board + 60 + light * 5, midy), module, Remix::CH6_LIGHT)); | addChild(GrayModuleLightWidget::create<MediumLight<RedLight>>(Vec(board + 60 + light * 5, midy), module, Remix::CH6_LIGHT)); | ||||
| @@ -0,0 +1,402 @@ | |||||
| #include "dBiz.hpp" | |||||
| #include "dsp/digital.hpp" | |||||
| namespace rack_plugin_dBiz { | |||||
| struct SmiX : Module { | |||||
| enum ParamIds | |||||
| { | |||||
| FALL_RANGE_PARAM, | |||||
| CLOCK_PARAM, | |||||
| OUT_A_ATT_PARAM, | |||||
| OUT_C_ATT_PARAM, | |||||
| MODE_BUTTON_PARAM, | |||||
| DIR_BUTTON_PARAM, | |||||
| MIX_SEL_PARAM, | |||||
| VOL_PARAM = MIX_SEL_PARAM + 8, | |||||
| NUM_PARAMS = VOL_PARAM + 8 | |||||
| }; | |||||
| enum InputIds | |||||
| { | |||||
| CLOCK_INPUT, | |||||
| EXT_CLOCK_INPUT, | |||||
| RESET_INPUT, | |||||
| DIR_INPUT, | |||||
| MODE_INPUT, | |||||
| CV_INPUT, | |||||
| CH_INPUT = CV_INPUT + 8, | |||||
| NUM_INPUTS = CH_INPUT + 8 | |||||
| }; | |||||
| enum OutputIds { | |||||
| A_OUTPUT, | |||||
| B_OUTPUT, | |||||
| C_OUTPUT, | |||||
| NUM_OUTPUTS | |||||
| }; | |||||
| enum LightIds | |||||
| { | |||||
| CLOCK_LIGHT, | |||||
| CH_LIGHTS, | |||||
| MODE_LIGHTS = CH_LIGHTS + 8, | |||||
| DIR_LIGHTS = MODE_LIGHTS + 3, | |||||
| NUM_LIGHTS = DIR_LIGHTS + 4, | |||||
| }; | |||||
| float ins[8] = {}; | |||||
| float outs[3] = {}; | |||||
| int mode = 0; | |||||
| int direction =0; | |||||
| bool dir=true; | |||||
| bool running = true; | |||||
| bool triggerActive = false; | |||||
| // for external clock | |||||
| SchmittTrigger clockTrigger; | |||||
| // For buttons | |||||
| SchmittTrigger resetTrigger; | |||||
| //SchmittTrigger gateTriggers[8]; | |||||
| float phase = 0.0f; | |||||
| int index = 0; | |||||
| int stepIndex = index + 1; | |||||
| bool nextStep = false; | |||||
| bool gateState[8] = {}; | |||||
| float resetLight = 0.0f; | |||||
| float stepLights[8] = {}; | |||||
| const float lightLambda = 0.075f; | |||||
| SchmittTrigger mode_button_trigger; | |||||
| SchmittTrigger dir_button_trigger; | |||||
| // bool decaying = false; | |||||
| // float env = 0.0f; | |||||
| SmiX() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS,NUM_LIGHTS) { | |||||
| } | |||||
| void step() override; | |||||
| int numSteps; | |||||
| json_t *toJson() override | |||||
| { | |||||
| json_t *rootJ = json_object(); | |||||
| // running | |||||
| json_object_set_new(rootJ, "running", json_boolean(running)); | |||||
| // save mode | |||||
| json_t *modeJ = json_integer((int)mode); | |||||
| json_object_set_new(rootJ, "mode", modeJ); | |||||
| json_t *directionJ = json_integer((int)direction); | |||||
| json_object_set_new(rootJ, "direction", directionJ); | |||||
| return rootJ; | |||||
| } | |||||
| void fromJson(json_t *rootJ) override | |||||
| { | |||||
| // running | |||||
| json_t *runningJ = json_object_get(rootJ, "running"); | |||||
| if (runningJ) | |||||
| running = json_is_true(runningJ); | |||||
| json_t *modeJ = json_object_get(rootJ, "mode"); | |||||
| if (modeJ) | |||||
| { | |||||
| mode = json_integer_value(modeJ); | |||||
| } | |||||
| json_t *directionJ = json_object_get(rootJ, "dir"); | |||||
| if (directionJ) | |||||
| { | |||||
| direction = json_integer_value(directionJ); | |||||
| } | |||||
| } | |||||
| void reset() override | |||||
| { | |||||
| for (int i = 0; i < 8; i++) | |||||
| { | |||||
| gateState[i] = true; | |||||
| } | |||||
| } | |||||
| }; | |||||
| void SmiX::step() { | |||||
| float lambda = 0.0f; | |||||
| switch ((int)params[FALL_RANGE_PARAM].value) | |||||
| { | |||||
| case 0: | |||||
| lambda = 0.005; | |||||
| break; | |||||
| case 1: | |||||
| lambda = 0.01; | |||||
| break; | |||||
| default: | |||||
| lambda = 0.03; | |||||
| break; | |||||
| } | |||||
| if(inputs[MODE_INPUT].active){ | |||||
| mode = clamp(inputs[MODE_INPUT].value, 0.0f,2.0f); | |||||
| for (int i = 0; i < 3; i++) | |||||
| { | |||||
| lights[MODE_LIGHTS + i].value = 0.0; | |||||
| } | |||||
| } | |||||
| if (inputs[DIR_INPUT].active) | |||||
| { | |||||
| direction = clamp(inputs[DIR_INPUT].value, 0.0f, 3.0f); | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| lights[DIR_LIGHTS + i].value = 0.0; | |||||
| } | |||||
| } | |||||
| if (mode_button_trigger.process(params[MODE_BUTTON_PARAM].value)) | |||||
| { | |||||
| mode++; | |||||
| if (mode > 2) | |||||
| mode = 0; | |||||
| for (int i = 0; i < 3; i++) | |||||
| { | |||||
| lights[MODE_LIGHTS + i].value = 0.0; | |||||
| } | |||||
| } | |||||
| lights[MODE_LIGHTS + mode].value = 1.0; | |||||
| if (mode == 1 || mode == 2) | |||||
| { | |||||
| if (dir_button_trigger.process(params[DIR_BUTTON_PARAM].value)) | |||||
| { | |||||
| direction++; | |||||
| if (direction > 3) | |||||
| direction = 0; | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| lights[DIR_LIGHTS + i].value = 0.0; | |||||
| } | |||||
| } | |||||
| lights[DIR_LIGHTS + direction].value = 1.0; | |||||
| } | |||||
| ///////////////////////////////////SEQ//////////////////////////////////////////////////// | |||||
| numSteps = 8; | |||||
| stepIndex = index + 1; | |||||
| // Run | |||||
| if (mode == 1 || mode == 2) | |||||
| { | |||||
| running = !running; | |||||
| } | |||||
| else running = false; | |||||
| nextStep = false; | |||||
| if (running) | |||||
| { | |||||
| if (inputs[EXT_CLOCK_INPUT].active) | |||||
| { | |||||
| // External clock | |||||
| if (clockTrigger.process(inputs[EXT_CLOCK_INPUT].value)) | |||||
| { | |||||
| phase = 0.0f; | |||||
| nextStep = true; | |||||
| } | |||||
| } | |||||
| else | |||||
| { | |||||
| // Internal clock | |||||
| float clockTime = powf(2.0, params[CLOCK_PARAM].value + inputs[CLOCK_INPUT].value); | |||||
| phase += clockTime / engineGetSampleRate(); | |||||
| if (phase >= 1.0f) | |||||
| { | |||||
| phase -= 1.0f; | |||||
| nextStep = true; | |||||
| } | |||||
| } | |||||
| } | |||||
| // Reset | |||||
| if (resetTrigger.process(inputs[RESET_INPUT].value)) | |||||
| { | |||||
| phase = 0.0f; | |||||
| index = 8; | |||||
| nextStep = true; | |||||
| } | |||||
| if (nextStep) | |||||
| { | |||||
| // Advance step | |||||
| int numSteps = 8; | |||||
| switch ((int)direction) | |||||
| { | |||||
| case 0: | |||||
| index += 1; | |||||
| if (index >= numSteps) | |||||
| { | |||||
| index = 0; | |||||
| } | |||||
| break; | |||||
| case 1: | |||||
| index -= 1; | |||||
| if (index < 0) | |||||
| { | |||||
| index = 7; | |||||
| } | |||||
| break; | |||||
| case 2: | |||||
| if(dir) | |||||
| { | |||||
| index+=1; | |||||
| if (index >= numSteps-1) | |||||
| dir = false; | |||||
| } | |||||
| else{ | |||||
| index -= 1; | |||||
| if (index < 1) | |||||
| dir=true; | |||||
| } | |||||
| break; | |||||
| default: | |||||
| index = randomUniform() * 8.0f; | |||||
| break; | |||||
| } | |||||
| stepLights[index] = 1.0f; | |||||
| } | |||||
| ////////////////////////////////SEQ///////////////// | |||||
| float a_out = 0.0f; | |||||
| float b_out = 0.0f; | |||||
| float c_out = 0.0f; | |||||
| float sum = 0.0f; | |||||
| for (int i = 0; i < 8; i++) | |||||
| { | |||||
| stepLights[i] -= stepLights[i] / lambda*lightLambda / engineGetSampleRate(); | |||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||||
| if (mode == 1 ){ | |||||
| lights[CH_LIGHTS + i].value = stepLights[i] + clamp(params[VOL_PARAM + i].value, 0.0f, 1.0f) * clamp(inputs[CV_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| ins[i] = (inputs[CH_INPUT + i].value * params[VOL_PARAM + i].value / 2.0f) * clamp(inputs[CV_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f) + (inputs[CH_INPUT + i].value * params[VOL_PARAM + i].value * stepLights[i]*2.0f); | |||||
| } | |||||
| else | |||||
| if ( mode == 2){ | |||||
| lights[CH_LIGHTS + i].value = stepLights[i] * clamp(inputs[CV_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| ins[i] = 2.0f*inputs[CH_INPUT + i].value * params[VOL_PARAM + i].value * clamp(inputs[CV_INPUT + i].normalize(10.0f) / 10.0f, 0.0f, 1.0f) * stepLights[i]; | |||||
| } | |||||
| else | |||||
| { | |||||
| lights[CH_LIGHTS + i].value = params[VOL_PARAM + i].value* clamp(inputs[CV_INPUT+i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| ins[i] = inputs[CH_INPUT + i].value * params[VOL_PARAM + i].value * clamp(inputs[CV_INPUT+i].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| } | |||||
| switch ((int)params[MIX_SEL_PARAM + i].value) | |||||
| { | |||||
| case 0: | |||||
| a_out += ins[i] / 1.3f; | |||||
| break; | |||||
| case 1: | |||||
| b_out += ins[i] / 1.3f; | |||||
| break; | |||||
| default: | |||||
| c_out += ins[i] / 1.3f; | |||||
| break; | |||||
| } | |||||
| sum+=ins[i]/ 1.3f; | |||||
| } | |||||
| outputs[A_OUTPUT].value = a_out * params[OUT_A_ATT_PARAM].value; | |||||
| outputs[B_OUTPUT].value = b_out; | |||||
| outputs[C_OUTPUT].value = c_out * params[OUT_C_ATT_PARAM].value; | |||||
| /////////////////////////////////////////////////////////////////////////////////////////////////////// | |||||
| //////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||||
| } | |||||
| struct SmiXWidget : ModuleWidget | |||||
| { | |||||
| SmiXWidget(SmiX *module) : ModuleWidget(module) | |||||
| { | |||||
| box.size = Vec(15*16, 380); | |||||
| { | |||||
| SVGPanel *panel = new SVGPanel(); | |||||
| panel->box.size = box.size; | |||||
| panel->setBackground(SVG::load(assetPlugin(plugin, "res/SmiX.svg"))); | |||||
| addChild(panel); | |||||
| } | |||||
| addParam(ParamWidget::create<Trimpot>(mm2px(Vec(1.003 + 6.6 * 10.10, 55)), module, SmiX::CLOCK_PARAM, -2.0f, 6.0f, 2.0f)); | |||||
| addParam(ParamWidget::create<MCKSSS>(mm2px(Vec(1.003 + 6.7 * 10.10, 62)), module, SmiX::FALL_RANGE_PARAM, 0.0, 2.0, 0.0)); | |||||
| addChild(Widget::create<ScrewBlack>(Vec(15, 0))); | |||||
| addChild(Widget::create<ScrewBlack>(Vec(box.size.x-30, 0))); | |||||
| addChild(Widget::create<ScrewBlack>(Vec(15, 365))); | |||||
| addChild(Widget::create<ScrewBlack>(Vec(box.size.x-30, 365))); | |||||
| int x_offset = 10.10; | |||||
| int y_offset = 2.0; | |||||
| for (int i = 0; i < 8; i++) | |||||
| { | |||||
| addParam(ParamWidget::create<LEDSliderBlue>(mm2px(Vec(2.792 + i * x_offset, (y_offset*3) + 3.937)), module, SmiX::VOL_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addInput(Port::create<PJ301MOrPort>(mm2px(Vec(1.003 + i * x_offset,y_offset+ 72.858)), Port::INPUT, module, SmiX::CV_INPUT + i)); | |||||
| addParam(ParamWidget::create<MCKSSS>(mm2px(Vec(4.003 + i * x_offset,y_offset+ 85)), module, SmiX::MIX_SEL_PARAM + i, 0.0, 2.0, 0.0)); | |||||
| addInput(Port::create<PJ301MIPort>(mm2px(Vec(1.003 + i * x_offset,y_offset+ 94.858)), Port::INPUT, module, SmiX::CH_INPUT + i)); | |||||
| addChild(ModuleLightWidget::create<MediumLight<BlueLight>>(Vec(13 + i * 30, y_offset + 115), module, SmiX::CH_LIGHTS + i)); | |||||
| } | |||||
| addInput(Port::create<PJ301MCPort>(mm2px(Vec(1.003 + 2 * x_offset, 61.915)), Port::INPUT, module, SmiX::EXT_CLOCK_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(mm2px(Vec(1.003 + 3 * x_offset, 61.915)), Port::INPUT, module, SmiX::MODE_INPUT)); | |||||
| addInput(Port::create<PJ301MRPort>(mm2px(Vec(1.003 + 4 * x_offset, 61.915)), Port::INPUT, module, SmiX::DIR_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(mm2px(Vec(1.003 + 5 * x_offset, 61.915)), Port::INPUT, module, SmiX::RESET_INPUT)); | |||||
| for (int i = 0 ; i < 3 ; i++) | |||||
| { | |||||
| addChild(ModuleLightWidget::create<MediumLight<BlueLight>>(mm2px(Vec((2.905 + i * 8)+16 , 49.035)), module, SmiX::MODE_LIGHTS + i)); | |||||
| } | |||||
| for (int i = 0 ; i < 4 ; i++) | |||||
| { | |||||
| addChild(ModuleLightWidget::create<MediumLight<RedLight>>(mm2px(Vec(43+(i*5.3), 49.035)), module, SmiX::DIR_LIGHTS + i)); | |||||
| } | |||||
| addParam(ParamWidget::create<LEDButton>(Vec(27 + 50, 160), module, SmiX::MODE_BUTTON_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<LEDButton>(Vec(97 + 50, 160), module, SmiX::DIR_BUTTON_PARAM, 0.0, 1.0, 0.0)); | |||||
| addOutput(Port::create<PJ301MOPort>(mm2px(Vec(1.003 + 1 * x_offset, 115.169)), Port::OUTPUT, module, SmiX::A_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MOPort>(mm2px(Vec(1.003 + 3.5 * x_offset, 115.169)), Port::OUTPUT, module, SmiX::B_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MOPort>(mm2px(Vec(1.003 + 6 * x_offset, 115.169)), Port::OUTPUT, module, SmiX::C_OUTPUT)); | |||||
| addParam(ParamWidget::create<Trimpot>(mm2px(Vec(1.003 + 0.2 * x_offset, 115.169)), module, SmiX::OUT_A_ATT_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<Trimpot>(mm2px(Vec(1.003 + 7 * x_offset, 115.169)), module, SmiX::OUT_C_ATT_PARAM, 0.0, 1.0, 0.0)); | |||||
| } | |||||
| }; | |||||
| } // namespace rack_plugin_dBiz | |||||
| using namespace rack_plugin_dBiz; | |||||
| RACK_PLUGIN_MODEL_INIT(dBiz, SmiX) { | |||||
| Model *modelSmiX = Model::create<SmiX, SmiXWidget>("dBiz", "SmiX", "SmiX", MIXER_TAG); | |||||
| return modelSmiX; | |||||
| } | |||||
| @@ -0,0 +1,218 @@ | |||||
| #include "dBiz.hpp" | |||||
| #include "dsp/functions.hpp" | |||||
| #include "dsp/decimator.hpp" | |||||
| #include "dsp/filter.hpp" | |||||
| namespace rack_plugin_dBiz { | |||||
| extern float sawTable[2048]; | |||||
| template <int OVERSAMPLE, int QUALITY> | |||||
| struct subBank | |||||
| { | |||||
| float phase = 0.0; | |||||
| float freq; | |||||
| float pitch; | |||||
| Decimator<OVERSAMPLE, QUALITY> sawDecimator; | |||||
| // For analog detuning effect | |||||
| float pitchSlew = 0.0f; | |||||
| int pitchSlewIndex = 0; | |||||
| float sawBuffer[OVERSAMPLE] = {}; | |||||
| //void setPitch(float pitchKnob, float pitchCv) | |||||
| void setPitch(float pitchKnob, float pitchCv) | |||||
| { | |||||
| // Compute frequency | |||||
| pitch = pitchKnob; | |||||
| const float pitchSlewAmount = 3.0f; | |||||
| pitch += pitchSlew * pitchSlewAmount; | |||||
| pitch += pitchCv; | |||||
| // Note C3 | |||||
| freq = 261.626f * powf(2.0, pitch / 12.0); | |||||
| // Accumulate the phase | |||||
| } | |||||
| void process(float deltaTime) { | |||||
| // Adjust pitch slew | |||||
| if (++pitchSlewIndex > 32) { | |||||
| const float pitchSlewTau = 100.0f; // Time constant for leaky integrator in seconds | |||||
| pitchSlew += (randomNormal() - pitchSlew / pitchSlewTau) * engineGetSampleTime(); | |||||
| pitchSlewIndex = 0; | |||||
| } | |||||
| // Advance phase | |||||
| float deltaPhase = clamp(freq * deltaTime, 1e-6, 0.5f); | |||||
| for (int i = 0; i < OVERSAMPLE; i++) { | |||||
| sawBuffer[i] = 1.66f * interpolateLinear(sawTable, phase * 2047.f); | |||||
| // Advance phase | |||||
| phase += deltaPhase / OVERSAMPLE; | |||||
| phase = eucmod(phase, 1.0f); | |||||
| } | |||||
| } | |||||
| float saw() { | |||||
| return sawDecimator.process(sawBuffer); | |||||
| } | |||||
| }; | |||||
| struct SuHa : Module { | |||||
| enum ParamIds | |||||
| { | |||||
| SUM_VOL_PARAM, | |||||
| VCO_PARAM, | |||||
| SUB1_PARAM = VCO_PARAM + 2, | |||||
| SUB2_PARAM = SUB1_PARAM + 2, | |||||
| VCO_VOL_PARAM = SUB2_PARAM + 2, | |||||
| SUB1_VOL_PARAM = VCO_VOL_PARAM + 2, | |||||
| SUB2_VOL_PARAM = SUB1_VOL_PARAM + 2, | |||||
| NUM_PARAMS = SUB2_VOL_PARAM + 2 | |||||
| }; | |||||
| enum InputIds | |||||
| { | |||||
| VCO_INPUT, | |||||
| SUB1_INPUT = VCO_INPUT + 2, | |||||
| SUB2_INPUT = SUB1_INPUT + 2, | |||||
| NUM_INPUTS = SUB2_INPUT + 2 | |||||
| }; | |||||
| enum OutputIds | |||||
| { | |||||
| SUM_OUTPUT, | |||||
| VCO_OUTPUT, | |||||
| SUB1_OUTPUT = VCO_OUTPUT + 2, | |||||
| SUB2_OUTPUT = SUB1_OUTPUT + 2, | |||||
| NUM_OUTPUTS = SUB2_OUTPUT + 2 | |||||
| }; | |||||
| enum LightIds { | |||||
| NUM_LIGHTS | |||||
| }; | |||||
| subBank <16,16> VCO[2]={}; | |||||
| subBank <16,16> SUB1[2]={}; | |||||
| subBank <16,16> SUB2[2]={}; | |||||
| SuHa() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | |||||
| void step() override; | |||||
| }; | |||||
| void SuHa::step() { | |||||
| int s1[2]={}; | |||||
| int s2[2] = {}; | |||||
| float sum=0.0f; | |||||
| for (int i=0;i<2;i++) | |||||
| { | |||||
| s1[i] = round(params[SUB1_PARAM+i].value + clamp(inputs[SUB1_INPUT+i].value, -15.0f, 15.0f)); | |||||
| if (s1[i]>15) s1[i]=15; | |||||
| if (s1[i]<=1) s1[i]=1; | |||||
| s2[i] = round(params[SUB2_PARAM+i].value + clamp(inputs[SUB2_INPUT+i].value, -15.0f, 15.0f)); | |||||
| if (s2[i]>15) s2[i]=15; | |||||
| if (s2[i]<=1) s2[i]=1; | |||||
| VCO[i].setPitch(params[VCO_PARAM+i].value,12*inputs[VCO_INPUT+i].value); | |||||
| SUB1[i].freq=VCO[i].freq/s1[i]; | |||||
| SUB2[i].freq=VCO[i].freq/s2[i]; | |||||
| VCO[i].process(engineGetSampleTime()); | |||||
| SUB1[i].process(engineGetSampleTime()); | |||||
| SUB2[i].process(engineGetSampleTime()); | |||||
| outputs[VCO_OUTPUT + i].value = 2.0f * VCO[i].saw()*params[VCO_VOL_PARAM+i].value; | |||||
| outputs[SUB1_OUTPUT + i].value = 2.0f * SUB1[i].saw()*params[SUB1_VOL_PARAM+i].value; | |||||
| outputs[SUB2_OUTPUT + i].value = 2.0f * SUB2[i].saw()*params[SUB2_VOL_PARAM+i].value; | |||||
| } | |||||
| for (int i = 0; i < 2; i++) | |||||
| { | |||||
| sum += clamp(outputs[VCO_OUTPUT + i].value + outputs[SUB1_OUTPUT + i].value + outputs[SUB2_OUTPUT + i].value,-5.0f,5.0f); | |||||
| } | |||||
| outputs[SUM_OUTPUT].value=sum*params[SUM_VOL_PARAM].value; | |||||
| } | |||||
| struct SuHaWidget : ModuleWidget { | |||||
| SuHaWidget(SuHa *module) : ModuleWidget(module) { | |||||
| setPanel(SVG::load(assetPlugin(plugin, "res/SuHa.svg"))); | |||||
| int KS=50; | |||||
| int JS = 37; | |||||
| float Side=7.5; | |||||
| addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
| /////////////////////////////////////////////////////////////////////////////////// | |||||
| for (int i = 0; i < 2; i++) | |||||
| { | |||||
| addParam(ParamWidget::create<DKnob>(Vec(Side + 6, 87 + i * KS), module, SuHa::VCO_PARAM + i, -54.0, 54.0, 0.0)); | |||||
| addParam(ParamWidget::create<DKnob>(Vec(Side + 6 + KS, 87 +i*KS), module, SuHa::SUB1_PARAM +i, 1.0, 15.0, 1.0)); | |||||
| addParam(ParamWidget::create<DKnob>(Vec(Side + 6 + 2 * KS, 87 +i*KS), module, SuHa::SUB2_PARAM +i, 1.0, 15.0, 1.0)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(Side + 15, 25 + i*30), module, SuHa::VCO_VOL_PARAM +i, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(Side + 15 + KS, 25 + i*30), module, SuHa::SUB1_VOL_PARAM +i, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(Side + 15 + 2 * KS, 25 + i*30), module, SuHa::SUB2_VOL_PARAM +i, 0.0, 1.0, 0.0)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(Side + 11, 215+i*JS), Port::INPUT, module, SuHa::VCO_INPUT +i)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(Side + 11 + KS, 215+i*JS), Port::INPUT, module, SuHa::SUB1_INPUT +i)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(Side + 11 + 2 * KS, 215+i*JS), Port::INPUT, module, SuHa::SUB2_INPUT +i)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(Side + 11, 215 + 2 * JS+i*JS), Port::OUTPUT, module, SuHa::VCO_OUTPUT +i)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(Side + 11 + KS, 215 + 2 * JS+i*JS), Port::OUTPUT, module, SuHa::SUB1_OUTPUT +i)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(Side + 11 + 2 * KS, 215 + 2 * JS+i*JS), Port::OUTPUT, module, SuHa::SUB2_OUTPUT +i)); | |||||
| } | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(Side + 40, 180), module, SuHa::SUM_VOL_PARAM, 0.0, 1.0, 0.0)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(Side + 80, 185), Port::OUTPUT, module, SuHa::SUM_OUTPUT)); | |||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||||
| } | |||||
| }; | |||||
| } // namespace rack_plugin_dBiz | |||||
| using namespace rack_plugin_dBiz; | |||||
| RACK_PLUGIN_MODEL_INIT(dBiz, SuHa) { | |||||
| // Specify the Module and ModuleWidget subclass, human-readable | |||||
| // author name for categorization per plugin, module slug (should never | |||||
| // change), human-readable module name, and any number of tags | |||||
| // (found in `include/tags.hpp`) separated by commas. | |||||
| Model *modelSuHa = Model::create<SuHa, SuHaWidget>("dBiz", "SuHa", "SuHa", OSCILLATOR_TAG); | |||||
| return modelSuHa; | |||||
| } | |||||
| @@ -0,0 +1,498 @@ | |||||
| #include "dBiz.hpp" | |||||
| #include "dsp/decimator.hpp" | |||||
| #include "dsp/filter.hpp" | |||||
| namespace rack_plugin_dBiz { | |||||
| extern float sawTable[2048]; | |||||
| extern float triTable[2048]; | |||||
| template <int OVERSAMPLE, int QUALITY> | |||||
| struct VoltageControlledOscillator | |||||
| { | |||||
| bool analog = false; | |||||
| bool soft = false; | |||||
| float lastSyncValue = 0.0f; | |||||
| float phase = 0.0f; | |||||
| float freq; | |||||
| float pw = 0.5f; | |||||
| float pitch; | |||||
| bool syncEnabled = false; | |||||
| bool syncDirection = false; | |||||
| Decimator<OVERSAMPLE, QUALITY> sinDecimator; | |||||
| Decimator<OVERSAMPLE, QUALITY> triDecimator; | |||||
| Decimator<OVERSAMPLE, QUALITY> sawDecimator; | |||||
| Decimator<OVERSAMPLE, QUALITY> sqrDecimator; | |||||
| RCFilter sqrFilter; | |||||
| // For analog detuning effect | |||||
| float pitchSlew = 0.0f; | |||||
| int pitchSlewIndex = 0; | |||||
| float sinBuffer[OVERSAMPLE] = {}; | |||||
| float triBuffer[OVERSAMPLE] = {}; | |||||
| float sawBuffer[OVERSAMPLE] = {}; | |||||
| float sqrBuffer[OVERSAMPLE] = {}; | |||||
| void setPitch(float pitchKnob, float pitchCv) | |||||
| { | |||||
| // Compute frequency | |||||
| pitch = pitchKnob; | |||||
| if (analog) | |||||
| { | |||||
| // Apply pitch slew | |||||
| const float pitchSlewAmount = 3.0f; | |||||
| pitch += pitchSlew * pitchSlewAmount; | |||||
| } | |||||
| else | |||||
| { | |||||
| // Quantize coarse knob if digital mode | |||||
| pitch = roundf(pitch); | |||||
| } | |||||
| pitch += pitchCv; | |||||
| // Note C4 | |||||
| freq = 261.626f * powf(2.0f, pitch / 12.0f); | |||||
| } | |||||
| void setPulseWidth(float pulseWidth) | |||||
| { | |||||
| const float pwMin = 0.01f; | |||||
| pw = clamp(pulseWidth, pwMin, 1.0f - pwMin); | |||||
| } | |||||
| void process(float deltaTime, float syncValue) | |||||
| { | |||||
| if (analog) | |||||
| { | |||||
| // Adjust pitch slew | |||||
| if (++pitchSlewIndex > 32) | |||||
| { | |||||
| const float pitchSlewTau = 100.0f; // Time constant for leaky integrator in seconds | |||||
| pitchSlew += (randomNormal() - pitchSlew / pitchSlewTau) * engineGetSampleTime(); | |||||
| pitchSlewIndex = 0; | |||||
| } | |||||
| } | |||||
| // Advance phase | |||||
| float deltaPhase = clamp(freq * deltaTime, 1e-6, 0.5f); | |||||
| // Detect sync | |||||
| int syncIndex = -1; // Index in the oversample loop where sync occurs [0, OVERSAMPLE) | |||||
| float syncCrossing = 0.0f; // Offset that sync occurs [0.0f, 1.0f) | |||||
| if (syncEnabled) | |||||
| { | |||||
| syncValue -= 0.01f; | |||||
| if (syncValue > 0.0f && lastSyncValue <= 0.0f) | |||||
| { | |||||
| float deltaSync = syncValue - lastSyncValue; | |||||
| syncCrossing = 1.0f - syncValue / deltaSync; | |||||
| syncCrossing *= OVERSAMPLE; | |||||
| syncIndex = (int)syncCrossing; | |||||
| syncCrossing -= syncIndex; | |||||
| } | |||||
| lastSyncValue = syncValue; | |||||
| } | |||||
| if (syncDirection) | |||||
| deltaPhase *= -1.0f; | |||||
| sqrFilter.setCutoff(40.0f * deltaTime); | |||||
| for (int i = 0; i < OVERSAMPLE; i++) | |||||
| { | |||||
| if (syncIndex == i) | |||||
| { | |||||
| if (soft) | |||||
| { | |||||
| syncDirection = !syncDirection; | |||||
| deltaPhase *= -1.0f; | |||||
| } | |||||
| else | |||||
| { | |||||
| // phase = syncCrossing * deltaPhase / OVERSAMPLE; | |||||
| phase = 0.0f; | |||||
| } | |||||
| } | |||||
| if (analog) | |||||
| { | |||||
| // Quadratic approximation of sine, slightly richer harmonics | |||||
| if (phase < 0.5f) | |||||
| sinBuffer[i] = 1.f - 16.f * powf(phase - 0.25f, 2); | |||||
| else | |||||
| sinBuffer[i] = -1.f + 16.f * powf(phase - 0.75f, 2); | |||||
| sinBuffer[i] *= 1.08f; | |||||
| } | |||||
| else | |||||
| { | |||||
| sinBuffer[i] = sinf(2.f * M_PI * phase); | |||||
| } | |||||
| if (analog) | |||||
| { | |||||
| triBuffer[i] = 1.25f * interpolateLinear(triTable, phase * 2047.f); | |||||
| } | |||||
| else | |||||
| { | |||||
| if (phase < 0.25f) | |||||
| triBuffer[i] = 4.f * phase; | |||||
| else if (phase < 0.75f) | |||||
| triBuffer[i] = 2.f - 4.f * phase; | |||||
| else | |||||
| triBuffer[i] = -4.f + 4.f * phase; | |||||
| } | |||||
| if (analog) | |||||
| { | |||||
| sawBuffer[i] = 1.66f * interpolateLinear(sawTable, phase * 2047.f); | |||||
| } | |||||
| else | |||||
| { | |||||
| if (phase < 0.5f) | |||||
| sawBuffer[i] = 2.f * phase; | |||||
| else | |||||
| sawBuffer[i] = -2.f + 2.f * phase; | |||||
| } | |||||
| sqrBuffer[i] = (phase < pw) ? 1.f : -1.f; | |||||
| if (analog) | |||||
| { | |||||
| // Simply filter here | |||||
| sqrFilter.process(sqrBuffer[i]); | |||||
| sqrBuffer[i] = 0.71f * sqrFilter.highpass(); | |||||
| } | |||||
| // Advance phase | |||||
| phase += deltaPhase / OVERSAMPLE; | |||||
| phase = eucmod(phase, 1.0f); | |||||
| } | |||||
| } | |||||
| float sin() | |||||
| { | |||||
| return sinDecimator.process(sinBuffer); | |||||
| } | |||||
| float tri() | |||||
| { | |||||
| return triDecimator.process(triBuffer); | |||||
| } | |||||
| float saw() | |||||
| { | |||||
| return sawDecimator.process(sawBuffer); | |||||
| } | |||||
| float sqr() | |||||
| { | |||||
| return sqrDecimator.process(sqrBuffer); | |||||
| } | |||||
| float light() | |||||
| { | |||||
| return sinf(2 * M_PI * phase); | |||||
| } | |||||
| }; | |||||
| struct TROSC : Module | |||||
| { | |||||
| enum ParamIds | |||||
| { | |||||
| LINK_A_PARAM, | |||||
| LINK_B_PARAM, | |||||
| MODE_A_PARAM, | |||||
| SYNC_A_PARAM, | |||||
| MODE_B_PARAM, | |||||
| SYNC_B_PARAM, | |||||
| MODE_C_PARAM, | |||||
| SYNC_C_PARAM, | |||||
| WAVE_A_SEL_PARAM, | |||||
| WAVE_B_SEL_PARAM, | |||||
| WAVE_C_SEL_PARAM, | |||||
| FREQ_A_PARAM, | |||||
| FINE_A_PARAM, | |||||
| FREQ_B_PARAM, | |||||
| FINE_B_PARAM, | |||||
| FREQ_C_PARAM, | |||||
| FINE_C_PARAM, | |||||
| FM_A_PARAM, | |||||
| FM_B_PARAM, | |||||
| FM_C_PARAM, | |||||
| LEVEL_A_PARAM, | |||||
| LEVEL_B_PARAM, | |||||
| LEVEL_C_PARAM, | |||||
| WAVE_A_MIX, | |||||
| WAVE2_A_MIX, | |||||
| WAVE_B_MIX, | |||||
| WAVE2_B_MIX, | |||||
| WAVE_C_MIX, | |||||
| C_WIDTH_PARAM, | |||||
| NUM_PARAMS | |||||
| }; | |||||
| enum InputIds | |||||
| { | |||||
| PITCH_A_INPUT, | |||||
| PITCH_B_INPUT, | |||||
| PITCH_C_INPUT, | |||||
| SYNC_A_INPUT, | |||||
| SYNC_B_INPUT, | |||||
| SYNC_C_INPUT, | |||||
| FM_A_INPUT, | |||||
| FM_B_INPUT, | |||||
| FM_C_INPUT, | |||||
| A_WAVE_MIX_INPUT, | |||||
| B_WAVE_MIX_INPUT, | |||||
| C_WAVE_MIX_INPUT, | |||||
| A_VOL_IN, | |||||
| B_VOL_IN, | |||||
| C_VOL_IN, | |||||
| C_WIDTH_INPUT, | |||||
| NUM_INPUTS | |||||
| }; | |||||
| enum OutputIds | |||||
| { | |||||
| A_OUTPUT, | |||||
| B_OUTPUT, | |||||
| C_OUTPUT, | |||||
| MIX_OUTPUT, | |||||
| NUM_OUTPUTS | |||||
| }; | |||||
| enum LightIds | |||||
| { | |||||
| NUM_LIGHTS | |||||
| }; | |||||
| VoltageControlledOscillator<8, 8> a_osc; | |||||
| VoltageControlledOscillator<8, 8> b_osc; | |||||
| VoltageControlledOscillator<8, 8> c_osc; | |||||
| TROSC() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | |||||
| void step() override; | |||||
| // For more advanced Module features, read Rack's engine.hpp header file | |||||
| // - toJson, fromJson: serialization of internal data | |||||
| // - onSampleRateChange: event triggered by a change of sample rate | |||||
| // - onReset, onRandomize, onCreate, onDelete: implements special behavior when user clicks these from the context menu | |||||
| }; | |||||
| void TROSC::step() { | |||||
| float a_pitchCv = 0.0; | |||||
| float b_pitchCv = 0.0; | |||||
| float c_pitchCv = 0.0; | |||||
| a_osc.analog = params[MODE_A_PARAM].value > 0.0f; | |||||
| a_osc.soft = params[SYNC_A_PARAM].value <= 0.0f; | |||||
| b_osc.analog = params[MODE_B_PARAM].value > 0.0f; | |||||
| b_osc.soft = params[SYNC_B_PARAM].value <= 0.0f; | |||||
| c_osc.analog = params[MODE_C_PARAM].value > 0.0f; | |||||
| c_osc.soft = params[SYNC_C_PARAM].value <= 0.0f; | |||||
| float a_pitchFine = 3.0f * quadraticBipolar(params[FINE_A_PARAM].value); | |||||
| a_pitchCv = 12.0f * inputs[PITCH_A_INPUT].value; | |||||
| float b_pitchFine = 3.0f * quadraticBipolar(params[FINE_B_PARAM].value); | |||||
| if(params[LINK_A_PARAM].value==1) | |||||
| b_pitchCv = 12.0f * inputs[PITCH_B_INPUT].value; | |||||
| else | |||||
| b_pitchCv = a_pitchCv ; | |||||
| float c_pitchFine = 3.0f * quadraticBipolar(params[FINE_C_PARAM].value); | |||||
| if (params[LINK_B_PARAM].value == 1) | |||||
| c_pitchCv = 12.0f * inputs[PITCH_C_INPUT].value; | |||||
| else | |||||
| c_pitchCv = b_pitchCv; | |||||
| if (inputs[FM_A_INPUT].active) | |||||
| { | |||||
| a_pitchCv += quadraticBipolar(params[FM_A_PARAM].value) * 12.0f * inputs[FM_A_INPUT].value; | |||||
| } | |||||
| a_osc.setPitch(params[FREQ_A_PARAM].value, a_pitchFine + a_pitchCv); | |||||
| a_osc.syncEnabled = inputs[SYNC_A_INPUT].active; | |||||
| if (inputs[FM_B_INPUT].active) | |||||
| { | |||||
| b_pitchCv += quadraticBipolar(params[FM_B_PARAM].value) * 12.0f * inputs[FM_B_INPUT].value; | |||||
| } | |||||
| b_osc.setPitch(params[FREQ_B_PARAM].value, b_pitchFine + b_pitchCv); | |||||
| b_osc.syncEnabled = inputs[SYNC_B_INPUT].active; | |||||
| if (inputs[FM_C_INPUT].active) | |||||
| { | |||||
| c_pitchCv += quadraticBipolar(params[FM_C_PARAM].value) * 12.0f * inputs[FM_C_INPUT].value; | |||||
| } | |||||
| c_osc.setPitch(params[FREQ_C_PARAM].value, c_pitchFine + c_pitchCv); | |||||
| c_osc.setPulseWidth(0.5+params[C_WIDTH_PARAM].value * inputs[C_WIDTH_INPUT].value / 10.0f); | |||||
| c_osc.syncEnabled = inputs[SYNC_C_INPUT].active; | |||||
| a_osc.process(engineGetSampleTime(), inputs[SYNC_A_INPUT].value); | |||||
| b_osc.process(engineGetSampleTime(), inputs[SYNC_A_INPUT].value); | |||||
| c_osc.process(engineGetSampleTime(), inputs[SYNC_A_INPUT].value); | |||||
| // Set output | |||||
| float wave_a = clamp(params[WAVE_A_MIX].value, 0.0f, 1.0f); | |||||
| float wave2_a = clamp(params[WAVE2_A_MIX].value, 0.0f, 1.0f); | |||||
| float mix_a = clamp(params[WAVE_A_SEL_PARAM].value, 0.0f, 1.0f)*clamp(inputs[A_WAVE_MIX_INPUT].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| float wave_b = clamp(params[WAVE_B_MIX].value, 0.0f, 1.0f); | |||||
| float wave2_b = clamp(params[WAVE2_B_MIX].value, 0.0f, 1.0f); | |||||
| float mix_b = clamp(params[WAVE_B_SEL_PARAM].value, 0.0f, 1.0f)*clamp(inputs[B_WAVE_MIX_INPUT].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| float wave_c = clamp(params[WAVE_C_MIX].value, 0.0f, 1.0f); | |||||
| float mix_c = clamp(params[WAVE_C_SEL_PARAM].value, 0.0f, 1.0f)*clamp(inputs[C_WAVE_MIX_INPUT].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| float out_a; | |||||
| float out2_a; | |||||
| float a_out; | |||||
| float out_b; | |||||
| float out2_b; | |||||
| float b_out; | |||||
| float out_c; | |||||
| float out2_c; | |||||
| float c_out; | |||||
| float mixa,mixb,mixc; | |||||
| out_a = crossfade(a_osc.sin(), a_osc.tri(), wave_a); | |||||
| out2_a = crossfade(a_osc.saw(), a_osc.sqr(), wave2_a); | |||||
| a_out = crossfade(out_a, out2_a, mix_a); | |||||
| out_b = crossfade(b_osc.sin(), b_osc.tri(), wave_b); | |||||
| out2_b = crossfade(b_osc.saw(), b_osc.sqr(), wave2_b); | |||||
| b_out = crossfade(out_b, out2_b, mix_b); | |||||
| out_c = crossfade(c_osc.sin(), c_osc.tri(), wave_c); | |||||
| out2_c =c_osc.sqr(); | |||||
| c_out = crossfade(out_c, out2_c, mix_c); | |||||
| mixa = 2.0f * (a_out)*params[LEVEL_A_PARAM].value*clamp(inputs[A_VOL_IN].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| outputs[A_OUTPUT].value= mixa; | |||||
| mixb = 2.0f * (b_out)*params[LEVEL_B_PARAM].value*clamp(inputs[B_VOL_IN].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| outputs[B_OUTPUT].value = mixb; | |||||
| mixc = 2.0f * (c_out)*params[LEVEL_C_PARAM].value*clamp(inputs[C_VOL_IN].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| outputs[C_OUTPUT].value = mixc; | |||||
| outputs[MIX_OUTPUT].value = mixa+mixb+mixc; | |||||
| } | |||||
| struct TROSCWidget : ModuleWidget { | |||||
| TROSCWidget(TROSC *module) : ModuleWidget(module) { | |||||
| setPanel(SVG::load(assetPlugin(plugin, "res/TROSC.svg"))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
| int space = 170; | |||||
| int vspace = 50; | |||||
| addParam(ParamWidget::create<VerboDL>(Vec(30,20), module, TROSC::FREQ_A_PARAM,-54.0f, 54.0f, 0.0f)); | |||||
| addParam(ParamWidget::create<VerboDL>(Vec(30, 150), module, TROSC::FREQ_B_PARAM, -54.0f, 54.0f, 0.0f)); | |||||
| addParam(ParamWidget::create<VerboDL>(Vec(30, 280), module, TROSC::FREQ_C_PARAM, -54.0f, 54.0f, 0.0f)); | |||||
| addParam(ParamWidget::create<CKSS>(Vec(5, 5 + 20), module, TROSC::MODE_A_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<CKSS>(Vec(5, 5 + 150), module, TROSC::MODE_B_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<CKSS>(Vec(5, 5 + 280), module, TROSC::MODE_C_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<CKSS>(Vec(143, 75 + 20), module, TROSC::SYNC_A_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<CKSS>(Vec(143, 75 + 150), module, TROSC::SYNC_B_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<CKSS>(Vec(143, 75 + 280), module, TROSC::SYNC_C_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(110, 20), module, TROSC::FINE_A_PARAM, -1.0f, 1.0f, 0.0f)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(110, 150), module, TROSC::FINE_B_PARAM, -1.0f, 1.0f, 0.0f)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(110, 280), module, TROSC::FINE_C_PARAM, -1.0f, 1.0f, 0.0f)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(150, 20 -10), module, TROSC::FM_A_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(150, 150-10), module, TROSC::FM_B_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(150, 280-10), module, TROSC::FM_C_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(250, vspace+20), module, TROSC::LEVEL_A_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(250, vspace+150), module, TROSC::LEVEL_B_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(250, vspace+280), module, TROSC::LEVEL_C_PARAM , 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<LEDSliderGreen>(Vec(20+space, 20), module, TROSC::WAVE_A_MIX, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<LEDSliderGreen>(Vec(50 + space, 20), module, TROSC::WAVE2_A_MIX, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<LEDSliderGreen>(Vec(20 + space, 150), module, TROSC::WAVE_B_MIX, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<LEDSliderGreen>(Vec(50 + space, 150), module, TROSC::WAVE2_B_MIX, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<LEDSliderGreen>(Vec(20 + space, 280), module, TROSC::WAVE_C_MIX, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<VerboDS>(Vec(40 + space, 290), module, TROSC::C_WIDTH_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(73 + space, 20 -10), module, TROSC::WAVE_A_SEL_PARAM, 0.0, 1.0, 0.5)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(73 + space, 150-10), module, TROSC::WAVE_B_SEL_PARAM, 0.0, 1.0, 0.5)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(73 + space, 280-10), module, TROSC::WAVE_C_SEL_PARAM, 0.0, 1.0, 0.5)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(100 + space,20-13), Port::INPUT, module, TROSC::A_WAVE_MIX_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(100 + space,150-13), Port::INPUT, module, TROSC::B_WAVE_MIX_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(100 + space,280-13), Port::INPUT, module, TROSC::C_WAVE_MIX_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(2, 30 + 20), Port::INPUT, module, TROSC::PITCH_A_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(2, 30 + 150), Port::INPUT, module, TROSC::PITCH_B_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(2, 30 + 280), Port::INPUT, module, TROSC::PITCH_C_INPUT)); | |||||
| addParam(ParamWidget::create<SilverSwitch>(Vec(60, 90 + 20), module, TROSC::LINK_A_PARAM,0.0,1.0,0.0)); | |||||
| addParam(ParamWidget::create<SilverSwitch>(Vec(60, 90 + 150),module, TROSC::LINK_B_PARAM,0.0,1.0,0.0)); | |||||
| addInput(Port::create<PJ301MOrPort>(Vec(115, 55 + 20), Port::INPUT, module, TROSC::SYNC_A_INPUT)); | |||||
| addInput(Port::create<PJ301MOrPort>(Vec(115, 55 + 150), Port::INPUT, module, TROSC::SYNC_B_INPUT)); | |||||
| addInput(Port::create<PJ301MOrPort>(Vec(115, 55 + 280), Port::INPUT, module, TROSC::SYNC_C_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(155, 45 + 20), Port::INPUT, module, TROSC::FM_A_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(155, 45 + 150), Port::INPUT, module, TROSC::FM_B_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(155, 45 + 280), Port::INPUT, module, TROSC::FM_C_INPUT)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(290,vspace+10+20), Port::INPUT, module, TROSC::A_VOL_IN)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(290,vspace+10+150), Port::INPUT, module, TROSC::B_VOL_IN)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(290,vspace+10+280), Port::INPUT, module, TROSC::C_VOL_IN)); | |||||
| addInput(Port::create<PJ301MCPort>(Vec(215, 50 + 280), Port::INPUT, module, TROSC::C_WIDTH_INPUT)); | |||||
| addOutput(Port::create<PJ301MOPort>(Vec(290, 30), Port::OUTPUT, module, TROSC::MIX_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MOPort>(Vec(255, 20 + 20), Port::OUTPUT, module, TROSC::A_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MOPort>(Vec(255, 20 + 150), Port::OUTPUT, module, TROSC::B_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MOPort>(Vec(255, 20 + 280), Port::OUTPUT, module, TROSC::C_OUTPUT)); | |||||
| } | |||||
| }; | |||||
| } // namespace rack_plugin_dBiz | |||||
| using namespace rack_plugin_dBiz; | |||||
| RACK_PLUGIN_MODEL_INIT(dBiz, TROSC) { | |||||
| // Specify the Module and ModuleWidget subclass, human-readable | |||||
| // author name for categorization per plugin, module slug (should never | |||||
| // change), human-readable module name, and any number of tags | |||||
| // (found in `include/tags.hpp`) separated by commas. | |||||
| Model *modelTROSC = Model::create<TROSC, TROSCWidget>("dBiz", "TROSC", "Triple Oscillator", OSCILLATOR_TAG); | |||||
| return modelTROSC; | |||||
| } | |||||
| @@ -0,0 +1,339 @@ | |||||
| /////////////////////////////////////////////////// | |||||
| // dBiz Util2 | |||||
| // | |||||
| /////////////////////////////////////////////////// | |||||
| #include "dBiz.hpp" | |||||
| #include "dsp/digital.hpp" | |||||
| namespace rack_plugin_dBiz { | |||||
| struct Util2 : Module { | |||||
| enum ParamIds | |||||
| { | |||||
| MODE_PARAM, | |||||
| VALUE_PARAM = MODE_PARAM + 4, | |||||
| BUTTON_PARAM = VALUE_PARAM +4, | |||||
| RANGE_PARAM = BUTTON_PARAM +4, | |||||
| GLIDE_PARAM= RANGE_PARAM + 2, | |||||
| RISE_PARAM = RANGE_PARAM + 2, | |||||
| FALL_PARAM = RISE_PARAM + 2, | |||||
| NUM_PARAMS = FALL_PARAM + 2 | |||||
| }; | |||||
| enum InputIds | |||||
| { | |||||
| BUTTON_INPUT, | |||||
| TRIG_INPUT=BUTTON_INPUT + 4, | |||||
| IN_INPUT = TRIG_INPUT + 2, | |||||
| NUM_INPUTS = IN_INPUT + 2 | |||||
| }; | |||||
| enum OutputIds | |||||
| { | |||||
| BUTTON_OUTPUT, | |||||
| EG_OUTPUT = BUTTON_OUTPUT + 4, | |||||
| OUT_OUTPUT = EG_OUTPUT + 2, | |||||
| NUM_OUTPUTS = OUT_OUTPUT + 2 | |||||
| }; | |||||
| enum LighIds | |||||
| { | |||||
| BUTTON_LIGHT, | |||||
| NUM_LIGHTS = BUTTON_LIGHT + 4 | |||||
| }; | |||||
| float out[2]{}; | |||||
| float outg[2]{}; | |||||
| float eg_out[2]{}; | |||||
| bool gate[2] = {}; | |||||
| bool gateEg[2] = {}; | |||||
| bool gateState[4] = {}; | |||||
| bool pulse[4]; | |||||
| SchmittTrigger trigger[2]; | |||||
| SchmittTrigger btrigger[4]; | |||||
| PulseGenerator buttonPulse[4]; | |||||
| Util2() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | |||||
| void step() override; | |||||
| json_t *toJson() override | |||||
| { | |||||
| json_t *rootJ = json_object(); | |||||
| json_t *gatesJ = json_array(); | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| json_t *gateJ = json_integer((int)gateState[i]); | |||||
| json_array_append_new(gatesJ, gateJ); | |||||
| } | |||||
| json_object_set_new(rootJ, "gate", gatesJ); | |||||
| return rootJ; | |||||
| } | |||||
| void fromJson(json_t *rootJ) override | |||||
| { | |||||
| json_t *gatesJ = json_object_get(rootJ, "gates"); | |||||
| if (gatesJ) | |||||
| { | |||||
| for (int i = 0; i < 8; i++) | |||||
| { | |||||
| json_t *gateJ = json_array_get(gatesJ, i); | |||||
| if (gateJ) | |||||
| gateState[i] = !!json_integer_value(gateJ); | |||||
| } | |||||
| } | |||||
| } | |||||
| void reset() override | |||||
| { | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| gateState[i] = false; | |||||
| } | |||||
| } | |||||
| }; | |||||
| ///////////////////////////////////////////////////// | |||||
| static float shapeDelta(float delta, float tau, float shape) | |||||
| { | |||||
| float lin = sgn(delta) * 10.0 / tau; | |||||
| if (shape < 0.0) | |||||
| { | |||||
| float log = sgn(delta) * 40.0 / tau / (fabsf(delta) + 1.0); | |||||
| return crossfade(lin, log, -shape * 0.95); | |||||
| } | |||||
| else | |||||
| { | |||||
| float exp = M_E * delta / tau; | |||||
| return crossfade(lin, exp, shape * 0.90); | |||||
| } | |||||
| } | |||||
| ///////////////////////////////////////////////////// | |||||
| void Util2::step() { | |||||
| ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||||
| for (int c = 0; c < 2; c++) | |||||
| { | |||||
| float in = inputs[IN_INPUT + c].value; | |||||
| float shape = 0.0 ; | |||||
| float delta = in - out[c]; | |||||
| bool rising = false; | |||||
| bool falling = false; | |||||
| if (delta > 0) | |||||
| { | |||||
| // Rise | |||||
| float riseCv = params[GLIDE_PARAM + c].value; | |||||
| float rise = 1e-1 * powf(2.0, riseCv * 10.0); | |||||
| out[c] += shapeDelta(delta, rise, shape) / engineGetSampleRate(); | |||||
| rising = (in - out[c] > 1e-3); | |||||
| if (!rising) | |||||
| { | |||||
| gate[c] = false; | |||||
| } | |||||
| } | |||||
| else if (delta < 0) | |||||
| { | |||||
| // Fall | |||||
| float fallCv = params[GLIDE_PARAM + c].value; | |||||
| float fall = 1e-1 * powf(2.0, fallCv * 10.0); | |||||
| out[c] += shapeDelta(delta, fall, shape) / engineGetSampleRate(); | |||||
| falling = (in - out[c] < -1e-3); | |||||
| } | |||||
| else | |||||
| { | |||||
| gate[c] = false; | |||||
| } | |||||
| if (!rising && !falling) | |||||
| { | |||||
| out[c] = in; | |||||
| } | |||||
| outputs[OUT_OUTPUT + c].value = out[c]; | |||||
| } | |||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||||
| for (int c = 0; c < 2; c++) | |||||
| { | |||||
| float in = 0.0f; //inputs[IN_INPUT + c].value; | |||||
| if (trigger[c].process(inputs[TRIG_INPUT + c].value)) | |||||
| { | |||||
| gateEg[c] = true; | |||||
| } | |||||
| if (gateEg[c]) | |||||
| { | |||||
| in = 5.0; | |||||
| } | |||||
| float shape = 0.0; | |||||
| float delta = in - outg[c]; | |||||
| float minTime; | |||||
| switch ((int)params[RANGE_PARAM + c].value) | |||||
| { | |||||
| case 0: minTime = 1e-1; break; | |||||
| case 1: minTime = 1e-2; break; | |||||
| default:minTime = 1e-3; break; | |||||
| } | |||||
| bool rising = false; | |||||
| bool falling = false; | |||||
| if (delta > 0) | |||||
| { | |||||
| // Rise | |||||
| float riseCv = params[RISE_PARAM + c].value; | |||||
| float rise = minTime * powf(2.0, riseCv * 10.0); | |||||
| outg[c] += shapeDelta(delta, rise, shape) / engineGetSampleRate(); | |||||
| rising = (in - outg[c] > 1e-3); | |||||
| if (!rising) | |||||
| { | |||||
| gateEg[c] = false; | |||||
| } | |||||
| } | |||||
| else if (delta < 0) | |||||
| { | |||||
| // Fall | |||||
| float fallCv = params[FALL_PARAM + c].value; | |||||
| float fall = minTime * powf(2.0, fallCv * 10.0); | |||||
| outg[c] += shapeDelta(delta, fall, shape) / engineGetSampleRate(); | |||||
| falling = (in - outg[c] < -1e-3); | |||||
| } | |||||
| else | |||||
| { | |||||
| gateEg[c] = false; | |||||
| } | |||||
| if (!rising && !falling) | |||||
| { | |||||
| outg[c] = in; | |||||
| } | |||||
| outputs[EG_OUTPUT + c].value = outg[c]; | |||||
| } | |||||
| /////////////////////////////////////////////////////////////////////////////////////////////////////// | |||||
| for (int i=0;i<4;i++) | |||||
| { | |||||
| if(params[MODE_PARAM+i].value==0) | |||||
| { | |||||
| if (btrigger[i].process(params[BUTTON_PARAM+i].value*10+inputs[BUTTON_INPUT+i].value)) | |||||
| { | |||||
| // button[i] = true; | |||||
| lights[BUTTON_LIGHT + i].value = 1.0f; | |||||
| buttonPulse[i].trigger(1e-3); | |||||
| } | |||||
| if (lights[BUTTON_LIGHT + i].value>0) | |||||
| { | |||||
| lights[BUTTON_LIGHT + i].value -= lights[BUTTON_LIGHT + i].value / 0.02 / engineGetSampleRate(); | |||||
| } | |||||
| pulse[i] = buttonPulse[i].process(1.0f / engineGetSampleRate()); | |||||
| outputs[BUTTON_OUTPUT + i].value = pulse[i] ? 10.0f : 0.0f; | |||||
| } | |||||
| if (params[MODE_PARAM + i].value == 1) | |||||
| { | |||||
| if (btrigger[i].process(params[BUTTON_PARAM + i].value * 10 + inputs[BUTTON_INPUT + i].value)) | |||||
| { | |||||
| gateState[i] = !gateState[i]; | |||||
| } | |||||
| lights[BUTTON_LIGHT + i].value = gateState[i] ? 1.0 : 0.0; | |||||
| if (gateState[i]) | |||||
| { | |||||
| outputs[BUTTON_OUTPUT + i].value = params[VALUE_PARAM + i].value; | |||||
| } | |||||
| else | |||||
| { | |||||
| outputs[BUTTON_OUTPUT + i].value = 0.0; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| struct Util2Widget : ModuleWidget | |||||
| { | |||||
| Util2Widget(Util2 *module) : ModuleWidget(module) | |||||
| { | |||||
| box.size = Vec(15*10, 380); | |||||
| { | |||||
| SVGPanel *panel = new SVGPanel(); | |||||
| panel->box.size = box.size; | |||||
| panel->setBackground(SVG::load(assetPlugin(plugin,"res/Util2.svg"))); | |||||
| addChild(panel); | |||||
| } | |||||
| //Screw | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365))); | |||||
| int knob=33; | |||||
| int jack = 28; | |||||
| int si = 10; | |||||
| // | |||||
| for (int i = 0; i < 2; i++) | |||||
| { | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(30 + knob, 20 + knob * i), module, Util2::GLIDE_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(40 , 91 + knob * i), module, Util2::RISE_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(40 + knob , 91 + knob * i), module, Util2::FALL_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(si, 23 + knob * i), Port::INPUT, module, Util2::IN_INPUT+i)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(si + jack, 23 + knob * i), Port::OUTPUT, module, Util2::OUT_OUTPUT+i)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(si, 94 + knob * i), Port::INPUT, module, Util2::TRIG_INPUT + i)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(40 + knob*2, 94 + knob * i), Port::OUTPUT, module, Util2::EG_OUTPUT + i)); | |||||
| addParam(ParamWidget::create<MCKSSS>(Vec(43 + knob * 2.7, 95 + knob * i), module, Util2::RANGE_PARAM + i, 0.0, 2.0, 0.0)); | |||||
| // addInput(Port::create<PJ301MVAPort>(Vec(si + 40, 22.5 + knob * i), Port::INPUT, module, Util2::SUB1_INPUT + i)); | |||||
| // addInput(Port::create<PJ301MVAPort>(Vec(si + 40, 173.5 + knob * i), Port::INPUT, module, Util2::SUB2_INPUT + i)); | |||||
| } | |||||
| for (int i=0;i<4;i++) | |||||
| { | |||||
| addParam(ParamWidget::create<LEDBezel>(Vec(si+5+knob * i,170), module, Util2::BUTTON_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| addChild(GrayModuleLightWidget::create<BigLight<OrangeLight>>(Vec(si +5+ 1 + knob * i, 171), module, Util2::BUTTON_LIGHT + i)); | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(si +2 + knob * i, 170 + jack), module, Util2::VALUE_PARAM + i, -10.0, 10.0, 0.0)); | |||||
| addInput(Port::create<PJ301MVAPort>(Vec(si + 3.5 + knob * i, 175 + jack * 2), Port::INPUT, module, Util2::BUTTON_INPUT + i)); | |||||
| addOutput(Port::create<PJ301MVAPort>(Vec(si + 3.5 + knob * i, 175 + jack * 3), Port::OUTPUT, module, Util2::BUTTON_OUTPUT + i)); | |||||
| addParam(ParamWidget::create<SilverSwitch>(Vec(si + 2 + knob * i, 175 + jack*4), module, Util2::MODE_PARAM + i, 0.0, 1.0, 0.0)); | |||||
| // addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 2, 310), Port::OUTPUT, module, Util2::CD_OUTPUT)); | |||||
| // addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 3, 310), Port::OUTPUT, module, Util2::TRIG_OUTPUT)); | |||||
| // addParam(ParamWidget::create<MCKSSS>(Vec(15 + jack * 4, 313), module, Util2::MODE_PARAM + 0, 0.0, 1.// 0, 0.0)); | |||||
| // addInput(Port::create<PJ301MVAPort>(Vec(15, 310 + jack), Port::INPUT, module, Util2::CLOCKB_INPUT)); | |||||
| // addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 1, 310 + jack), Port::OUTPUT, module, Util2::AB2_OUTPUT)); | |||||
| // addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 2, 310 + jack), Port::OUTPUT, module, Util2::CD2_OUTPUT)); | |||||
| // addOutput(Port::create<PJ301MVAPort>(Vec(15 + jack * 3, 310 + jack), Port::OUTPUT, module, Util2::TRIGB_OUTPUT)); | |||||
| } | |||||
| } | |||||
| }; | |||||
| } // namespace rack_plugin_dBiz | |||||
| using namespace rack_plugin_dBiz; | |||||
| RACK_PLUGIN_MODEL_INIT(dBiz, Util2) { | |||||
| Model *modelUtil2 = Model::create<Util2, Util2Widget>("dBiz", "Util2", "Util2", QUANTIZER_TAG); | |||||
| return modelUtil2; | |||||
| } | |||||
| @@ -0,0 +1,220 @@ | |||||
| /////////////////////////////////////////////////////////////////// | |||||
| // | |||||
| // dBiz revisited version of Cartesian seq. by Strum | |||||
| // | |||||
| /////////////////////////////////////////////////////////////////// | |||||
| #include "dBiz.hpp" | |||||
| #include "dsp/digital.hpp" | |||||
| namespace rack_plugin_dBiz { | |||||
| struct VCA4 : Module { | |||||
| enum ParamIds | |||||
| { | |||||
| CV_PARAM, | |||||
| MUTE_PARAM = CV_PARAM+16, | |||||
| NUM_PARAMS = MUTE_PARAM + 16 | |||||
| }; | |||||
| enum InputIds | |||||
| { | |||||
| CH_INPUT, | |||||
| CV_INPUT=CH_INPUT+4, | |||||
| NUM_INPUTS=CV_INPUT+16 | |||||
| }; | |||||
| enum OutputIds | |||||
| { | |||||
| CH_OUTPUT, | |||||
| NUM_OUTPUTS=CH_OUTPUT+4 | |||||
| }; | |||||
| enum LightIds | |||||
| { | |||||
| MUTE_LIGHT, | |||||
| NUM_LIGHTS =MUTE_LIGHT+16 | |||||
| }; | |||||
| SchmittTrigger mute_triggers[16]; | |||||
| bool mute_states[16] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; | |||||
| float ch_in[4]; | |||||
| float ch_out[4]; | |||||
| float cv_val[16]; | |||||
| VCA4() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | |||||
| void step() override; | |||||
| json_t *toJson() override | |||||
| { | |||||
| json_t *rootJ = json_object(); | |||||
| // mute states | |||||
| json_t *mute_statesJ = json_array(); | |||||
| for (int i = 0; i < 16; i++) | |||||
| { | |||||
| json_t *mute_stateJ = json_integer((int)mute_states[i]); | |||||
| json_array_append_new(mute_statesJ, mute_stateJ); | |||||
| } | |||||
| json_object_set_new(rootJ, "mutes", mute_statesJ); | |||||
| return rootJ; | |||||
| } | |||||
| void fromJson(json_t *rootJ) override | |||||
| { | |||||
| // mute states | |||||
| json_t *mute_statesJ = json_object_get(rootJ, "mutes"); | |||||
| if (mute_statesJ) | |||||
| { | |||||
| for (int i = 0; i < 16; i++) | |||||
| { | |||||
| json_t *mute_stateJ = json_array_get(mute_statesJ, i); | |||||
| if (mute_stateJ) | |||||
| mute_states[i] = !!json_integer_value(mute_stateJ); | |||||
| } | |||||
| } | |||||
| } | |||||
| }; | |||||
| void VCA4::step() { | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| for (int j = 0; j < 4; j++) | |||||
| { | |||||
| if (mute_triggers[i + j * 4].process(params[MUTE_PARAM + i + j * 4].value)) | |||||
| { | |||||
| mute_states[i + j * 4] = !mute_states[+i + j * 4]; | |||||
| } | |||||
| lights[MUTE_LIGHT + i + j * 4].value = mute_states[i + j * 4] ? 1.0 : 0.0; | |||||
| } | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| ch_in[i] = inputs[CH_INPUT + i].value; | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| for (int j = 0; j < 4; j++) | |||||
| { | |||||
| if (!mute_states[i + j * 4]) | |||||
| { | |||||
| cv_val[i + j * 4] = 0.0; | |||||
| } | |||||
| else | |||||
| cv_val[i + j * 4] = params[CV_PARAM + i + j * 4].value*clamp(inputs[CV_INPUT + i+j*4].normalize(10.0f) / 10.0f, 0.0f, 1.0f); | |||||
| } | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| outputs[CH_OUTPUT + i ].value =0.4* (ch_in[0]*cv_val[i] + ch_in[0]*cv_val[i] + ch_in[0]*cv_val[i] + ch_in[0]*cv_val[i]); | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| outputs[CH_OUTPUT + i ].value +=0.4* (ch_in[1] * cv_val[i+4] + ch_in[1] * cv_val[i+4] + ch_in[1] * cv_val[i+4] + ch_in[1] * cv_val[i+4]); | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| outputs[CH_OUTPUT + i].value +=0.4* (ch_in[2] * cv_val[i + 8] + ch_in[2] * cv_val[i + 8] + ch_in[2] * cv_val[i + 8] + ch_in[2] * cv_val[i + 8]); | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| outputs[CH_OUTPUT + i].value +=0.4* (ch_in[3] * cv_val[i+12] + ch_in[3] * cv_val[i+12] + ch_in[3] * cv_val[i+12] + ch_in[3] * cv_val[i+12]); | |||||
| } | |||||
| } | |||||
| /*for (int i = 0; i < 4; i++) | |||||
| { | |||||
| ch_in[i]=inputs[CH_INPUT+i].value; | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| outputs[CH_OUTPUT+i].value=ch_out[i]; | |||||
| } | |||||
| }*/ | |||||
| //////////////////////////////// | |||||
| struct VCA4Widget : ModuleWidget | |||||
| { | |||||
| VCA4Widget(VCA4 *module) : ModuleWidget(module) | |||||
| { | |||||
| box.size = Vec(15*20, 380); | |||||
| { | |||||
| SVGPanel *panel = new SVGPanel(); | |||||
| panel->box.size = box.size; | |||||
| panel->setBackground(SVG::load(assetPlugin(plugin,"res/VCA4.svg"))); | |||||
| addChild(panel); | |||||
| } | |||||
| int top = 20; | |||||
| int left = 2; | |||||
| int column_spacing = 35; | |||||
| int row_spacing = 30; | |||||
| int button_offset = 20; | |||||
| // addOutput(Port::create<PJ301MOrPort>(Vec(130, 10), Port::OUTPUT, module, VCA4::X_OUT)); | |||||
| // addOutput(Port::create<PJ301MOrPort>(Vec(130, 40), Port::OUTPUT, module, VCA4::Y_OUT)); | |||||
| // addOutput(Port::create<PJ301MOrPort>(Vec(130, 70), Port::OUTPUT, module, VCA4::G_OUT)); | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| for ( int j = 0 ; j < 4 ; j++) | |||||
| { | |||||
| addParam(ParamWidget::create<LEDButton>(Vec(button_offset + left + column_spacing * i+140, top + row_spacing * j + 170), module, VCA4::MUTE_PARAM + i + j * 4, 0.0, 1.0, 0.0)); | |||||
| addChild(GrayModuleLightWidget::create<BigLight<OrangeLight>>(Vec(button_offset + column_spacing * i+140, top + row_spacing * j + 170 ), module, VCA4::MUTE_LIGHT + i + j * 4)); | |||||
| addParam(ParamWidget::create<Trimpot>(Vec(10+column_spacing * i, top + row_spacing * j + 170), module, VCA4::CV_PARAM + i + j * 4, 0.0, 1.0, 0.0)); | |||||
| } | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| addInput(Port::create<PJ301MIPort>(Vec(30,24+40*i), Port::INPUT, module, VCA4::CH_INPUT + i)); | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| for (int j = 0; j < 4; j++) | |||||
| { | |||||
| if (j == 0 || j==2 ) | |||||
| addInput(Port::create<PJ301MIPort>(Vec(column_spacing * 1.5 * i + 100, 60 + row_spacing * j), Port::INPUT, module, VCA4::CV_INPUT + i + j * 4)); | |||||
| else | |||||
| addInput(Port::create<PJ301MIPort>(Vec(column_spacing * 1.5 * i + 70, 60 + row_spacing * j), Port::INPUT, module, VCA4::CV_INPUT + i + j * 4)); | |||||
| } | |||||
| } | |||||
| for (int i = 0; i < 4; i++) | |||||
| { | |||||
| addOutput(Port::create<PJ301MRPort>(Vec(70 + row_spacing *1.9* i,24), Port::OUTPUT, module, VCA4::CH_OUTPUT + i)); | |||||
| } | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 30, 0))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
| addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 30, 365))); | |||||
| } | |||||
| }; | |||||
| } // namespace rack_plugin_dBiz | |||||
| using namespace rack_plugin_dBiz; | |||||
| RACK_PLUGIN_MODEL_INIT(dBiz, VCA4) { | |||||
| Model *modelVCA4 = Model::create<VCA4, VCA4Widget>("dBiz", "VCA4", "VCA4", UTILITY_TAG); | |||||
| return modelVCA4; | |||||
| } | |||||
| @@ -146,8 +146,8 @@ VCA530Widget(VCA530 *module) : ModuleWidget(module) | |||||
| addParam(ParamWidget::create<DaviesBlu>(Vec(52, med + up ), module, VCA530::MIX1_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<DaviesBlu>(Vec(129, med + up), module, VCA530::MIX2_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(52, med + up ), module, VCA530::MIX1_PARAM, 0.0, 1.0, 0.0)); | |||||
| addParam(ParamWidget::create<SDKnob>(Vec(129, med + up), module, VCA530::MIX2_PARAM, 0.0, 1.0, 0.0)); | |||||
| // channel strips | // channel strips | ||||
| @@ -321,8 +321,8 @@ VerboWidget(Verbo *module) : ModuleWidget(module) | |||||
| for(int i=0; i<8;i++) | for(int i=0; i<8;i++) | ||||
| { | { | ||||
| addParam(ParamWidget::create<SlidePot>(Vec(left+95+space*i, 110), module, Verbo::HARM_PARAM+i, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<SlidePot>(Vec(left+95+space*i, 110), module, Verbo::HARM_PARAM+i, 0.0, 1.0, 0.0)); | ||||
| addOutput(Port::create<PJ301MPort>(Vec(left+90+space*i, 80), Port::OUTPUT, module, Verbo::HARM_OUTPUT+i)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(left+90+space*i, 222), Port::INPUT, module, Verbo::HARM_INPUT+i)); | |||||
| addOutput(Port::create<PJ301MIPort>(Vec(left+90+space*i, 80), Port::OUTPUT, module, Verbo::HARM_OUTPUT+i)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(left+90+space*i, 222), Port::INPUT, module, Verbo::HARM_INPUT+i)); | |||||
| addChild(GrayModuleLightWidget::create<MediumLight<BlueLight>>(Vec(left+95+space*i, 250), module, Verbo::HARM_LIGHT+i)); | addChild(GrayModuleLightWidget::create<MediumLight<BlueLight>>(Vec(left+95+space*i, 250), module, Verbo::HARM_LIGHT+i)); | ||||
| } | } | ||||
| @@ -330,28 +330,28 @@ int ks = 60; | |||||
| int vp=20; | int vp=20; | ||||
| addParam(ParamWidget::create<VerboS>(Vec(10, vp+272), module, Verbo::FM_PARAM, 0.0, 1.0, 0.0)); | addParam(ParamWidget::create<VerboS>(Vec(10, vp+272), module, Verbo::FM_PARAM, 0.0, 1.0, 0.0)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(15, vp+320), Port::INPUT, module, Verbo::FM_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(15, vp+320), Port::INPUT, module, Verbo::FM_INPUT)); | |||||
| addParam(ParamWidget::create<VerboS>(Vec(55, vp+272), module, Verbo::CV_PARAM, -1.0, 1.0, 0.0)); | addParam(ParamWidget::create<VerboS>(Vec(55, vp+272), module, Verbo::CV_PARAM, -1.0, 1.0, 0.0)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(60, vp+320), Port::INPUT, module, Verbo::CV_INPUT)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(90, vp+320), Port::INPUT, module, Verbo::PITCH_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(60, vp+320), Port::INPUT, module, Verbo::CV_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(90, vp+320), Port::INPUT, module, Verbo::PITCH_INPUT)); | |||||
| addParam(ParamWidget::create<VerboS>(Vec(30+left+ks, vp+272), module, Verbo::WIDTH_CV_PARAM, -1.0, 1.0, 0.0)); | addParam(ParamWidget::create<VerboS>(Vec(30+left+ks, vp+272), module, Verbo::WIDTH_CV_PARAM, -1.0, 1.0, 0.0)); | ||||
| addParam(ParamWidget::create<VerboS>(Vec(30+left+ks+space*2, vp+272), module, Verbo::WIDTH_PARAM, 1.0, 8.0, 0.0)); | addParam(ParamWidget::create<VerboS>(Vec(30+left+ks+space*2, vp+272), module, Verbo::WIDTH_PARAM, 1.0, 8.0, 0.0)); | ||||
| addParam(ParamWidget::create<Trimpot>(Vec(30+left+ks*2-15, vp+322.5), module, Verbo::SLOPE_PARAM, 0.0, 5.0, 0.0)); | addParam(ParamWidget::create<Trimpot>(Vec(30+left+ks*2-15, vp+322.5), module, Verbo::SLOPE_PARAM, 0.0, 5.0, 0.0)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(30+left+ks*2+25, vp+320), Port::INPUT, module, Verbo::SLOPE_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(30+left+ks*2+25, vp+320), Port::INPUT, module, Verbo::SLOPE_INPUT)); | |||||
| addParam(ParamWidget::create<VerboS>(Vec(30+left+ks*3, vp+272), module, Verbo::CENTER_CV_PARAM, -1.0, 1.0, 0.0)); | addParam(ParamWidget::create<VerboS>(Vec(30+left+ks*3, vp+272), module, Verbo::CENTER_CV_PARAM, -1.0, 1.0, 0.0)); | ||||
| addParam(ParamWidget::create<VerboS>(Vec(30+left+ks*3+space*2, vp+272), module, Verbo::CENTER_PARAM, -1.0, 8.0, -1.0)); | addParam(ParamWidget::create<VerboS>(Vec(30+left+ks*3+space*2, vp+272), module, Verbo::CENTER_PARAM, -1.0, 8.0, -1.0)); | ||||
| addInput(Port::create<PJ301MPort>(Vec(30+left+ks+5, vp+320), Port::INPUT, module, Verbo::WIDTH_INPUT)); | |||||
| addInput(Port::create<PJ301MPort>(Vec(30+left+ks*3+5, vp+320), Port::INPUT, module, Verbo::CENTER_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(30+left+ks+5, vp+320), Port::INPUT, module, Verbo::WIDTH_INPUT)); | |||||
| addInput(Port::create<PJ301MIPort>(Vec(30+left+ks*3+5, vp+320), Port::INPUT, module, Verbo::CENTER_INPUT)); | |||||
| addOutput(Port::create<PJ301MPort>(Vec(5, 80), Port::OUTPUT, module, Verbo::TRI_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MPort>(Vec(33, 80), Port::OUTPUT, module, Verbo::SQR_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MPort>(Vec(61, 80), Port::OUTPUT, module, Verbo::SAW_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MPort>(Vec(89, 80), Port::OUTPUT, module, Verbo::SIN_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MIPort>(Vec(5, 80), Port::OUTPUT, module, Verbo::TRI_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MIPort>(Vec(33, 80), Port::OUTPUT, module, Verbo::SQR_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MIPort>(Vec(61, 80), Port::OUTPUT, module, Verbo::SAW_OUTPUT)); | |||||
| addOutput(Port::create<PJ301MIPort>(Vec(89, 80), Port::OUTPUT, module, Verbo::SIN_OUTPUT)); | |||||
| } | } | ||||
| @@ -1,10 +1,13 @@ | |||||
| #include "dBiz.hpp" | #include "dBiz.hpp" | ||||
| #include <math.h> | #include <math.h> | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, FourSeq); | |||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, dBizBlank); | RACK_PLUGIN_MODEL_DECLARE(dBiz, dBizBlank); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Multiple); | RACK_PLUGIN_MODEL_DECLARE(dBiz, Multiple); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Contorno); | RACK_PLUGIN_MODEL_DECLARE(dBiz, Contorno); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Chord); | RACK_PLUGIN_MODEL_DECLARE(dBiz, Chord); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Divider); | |||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, DualFilter); | |||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Utility); | RACK_PLUGIN_MODEL_DECLARE(dBiz, Utility); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Transpose); | RACK_PLUGIN_MODEL_DECLARE(dBiz, Transpose); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Bene); | RACK_PLUGIN_MODEL_DECLARE(dBiz, Bene); | ||||
| @@ -12,7 +15,11 @@ RACK_PLUGIN_MODEL_DECLARE(dBiz, Bene2); | |||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, BenePads); | RACK_PLUGIN_MODEL_DECLARE(dBiz, BenePads); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, SubMix); | RACK_PLUGIN_MODEL_DECLARE(dBiz, SubMix); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Remix); | RACK_PLUGIN_MODEL_DECLARE(dBiz, Remix); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, SmiX); | |||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, SuHa); | |||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, TROSC); | |||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, PerfMixer); | RACK_PLUGIN_MODEL_DECLARE(dBiz, PerfMixer); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Util2); | |||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, VCA530); | RACK_PLUGIN_MODEL_DECLARE(dBiz, VCA530); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, Verbo); | RACK_PLUGIN_MODEL_DECLARE(dBiz, Verbo); | ||||
| RACK_PLUGIN_MODEL_DECLARE(dBiz, DVCO); | RACK_PLUGIN_MODEL_DECLARE(dBiz, DVCO); | ||||
| @@ -21,10 +28,13 @@ RACK_PLUGIN_MODEL_DECLARE(dBiz, DAOSC); | |||||
| RACK_PLUGIN_INIT(dBiz) { | RACK_PLUGIN_INIT(dBiz) { | ||||
| RACK_PLUGIN_INIT_ID(); | RACK_PLUGIN_INIT_ID(); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, FourSeq); | |||||
| RACK_PLUGIN_MODEL_ADD(dBiz, dBizBlank); | RACK_PLUGIN_MODEL_ADD(dBiz, dBizBlank); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Multiple); | RACK_PLUGIN_MODEL_ADD(dBiz, Multiple); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Contorno); | RACK_PLUGIN_MODEL_ADD(dBiz, Contorno); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Chord); | RACK_PLUGIN_MODEL_ADD(dBiz, Chord); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Divider); | |||||
| RACK_PLUGIN_MODEL_ADD(dBiz, DualFilter); | |||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Utility); | RACK_PLUGIN_MODEL_ADD(dBiz, Utility); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Transpose); | RACK_PLUGIN_MODEL_ADD(dBiz, Transpose); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Bene); | RACK_PLUGIN_MODEL_ADD(dBiz, Bene); | ||||
| @@ -32,7 +42,11 @@ RACK_PLUGIN_INIT(dBiz) { | |||||
| RACK_PLUGIN_MODEL_ADD(dBiz, BenePads); | RACK_PLUGIN_MODEL_ADD(dBiz, BenePads); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, SubMix); | RACK_PLUGIN_MODEL_ADD(dBiz, SubMix); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Remix); | RACK_PLUGIN_MODEL_ADD(dBiz, Remix); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, SmiX); | |||||
| RACK_PLUGIN_MODEL_ADD(dBiz, SuHa); | |||||
| RACK_PLUGIN_MODEL_ADD(dBiz, TROSC); | |||||
| RACK_PLUGIN_MODEL_ADD(dBiz, PerfMixer); | RACK_PLUGIN_MODEL_ADD(dBiz, PerfMixer); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Util2); | |||||
| RACK_PLUGIN_MODEL_ADD(dBiz, VCA530); | RACK_PLUGIN_MODEL_ADD(dBiz, VCA530); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, Verbo); | RACK_PLUGIN_MODEL_ADD(dBiz, Verbo); | ||||
| RACK_PLUGIN_MODEL_ADD(dBiz, DVCO); | RACK_PLUGIN_MODEL_ADD(dBiz, DVCO); | ||||
| @@ -28,6 +28,29 @@ namespace rack_plugin_dBiz { | |||||
| //////////////////// | //////////////////// | ||||
| // Knobs | // Knobs | ||||
| //////////////////// | //////////////////// | ||||
| struct DKnob : SVGKnob | |||||
| { | |||||
| DKnob() | |||||
| { | |||||
| minAngle = -0.83 * M_PI; | |||||
| maxAngle = 0.83 * M_PI; | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/DKnob.svg"))); | |||||
| box.size = Vec(50, 50); | |||||
| } | |||||
| }; | |||||
| struct SDKnob : SVGKnob | |||||
| { | |||||
| SDKnob() | |||||
| { | |||||
| minAngle = -0.83 * M_PI; | |||||
| maxAngle = 0.83 * M_PI; | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/SDKnob.svg"))); | |||||
| box.size = Vec(30, 30); | |||||
| } | |||||
| }; | |||||
| struct VerboL : SVGKnob | struct VerboL : SVGKnob | ||||
| { | { | ||||
| VerboL() | VerboL() | ||||
| @@ -50,46 +73,39 @@ struct VerboS : SVGKnob | |||||
| } | } | ||||
| }; | }; | ||||
| struct SmallKnob : SVGKnob | |||||
| struct VerboDL : SVGKnob | |||||
| { | { | ||||
| SmallKnob() | |||||
| VerboDL() | |||||
| { | { | ||||
| minAngle = -0.83 * M_PI; | minAngle = -0.83 * M_PI; | ||||
| maxAngle = 0.83 * M_PI; | maxAngle = 0.83 * M_PI; | ||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/VerboDL.svg"))); | |||||
| box.size = Vec(80, 80); | |||||
| } | } | ||||
| }; | }; | ||||
| struct SmallOra : SmallKnob | |||||
| struct VerboDS : SVGKnob | |||||
| { | { | ||||
| SmallOra() | |||||
| VerboDS() | |||||
| { | { | ||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/SmallOra.svg"))); | |||||
| minAngle = -0.83 * M_PI; | |||||
| maxAngle = 0.83 * M_PI; | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/VerboDS.svg"))); | |||||
| box.size = Vec(35, 35); | |||||
| } | } | ||||
| }; | }; | ||||
| struct SmallOraSnapKnob : SmallOra | |||||
| { | |||||
| SmallOraSnapKnob() | |||||
| { | |||||
| snap = true; | |||||
| }; | |||||
| }; | |||||
| struct LargeOra : SmallOra | |||||
| { | |||||
| LargeOra() | |||||
| { | |||||
| box.size = Vec(45, 45); | |||||
| } | |||||
| }; | |||||
| struct MicroOra : SmallOra | |||||
| struct SmallKnob : SVGKnob | |||||
| { | { | ||||
| MicroOra() | |||||
| SmallKnob() | |||||
| { | { | ||||
| box.size = Vec(25, 25); | |||||
| minAngle = -0.83 * M_PI; | |||||
| maxAngle = 0.83 * M_PI; | |||||
| } | } | ||||
| }; | }; | ||||
| struct SmallBlu : SmallKnob | struct SmallBlu : SmallKnob | ||||
| { | { | ||||
| SmallBlu() | SmallBlu() | ||||
| @@ -148,59 +164,6 @@ struct DaviesKnob : SVGKnob | |||||
| } | } | ||||
| }; | }; | ||||
| struct DaviesGre : DaviesKnob | |||||
| { | |||||
| DaviesGre() | |||||
| { | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/DaviesGre.svg"))); | |||||
| } | |||||
| }; | |||||
| struct LDaviesGre : DaviesGre | |||||
| { | |||||
| LDaviesGre() | |||||
| { | |||||
| box.size = Vec(45, 45); | |||||
| } | |||||
| }; | |||||
| struct DaviesWhy : DaviesKnob | |||||
| { | |||||
| DaviesWhy() | |||||
| { | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/DaviesWhy.svg"))); | |||||
| } | |||||
| }; | |||||
| struct LDaviesWhy : DaviesWhy | |||||
| { | |||||
| LDaviesWhy() | |||||
| { | |||||
| box.size = Vec(45, 45); | |||||
| } | |||||
| }; | |||||
| struct DaviesWhySnapKnob : DaviesWhy | |||||
| { | |||||
| DaviesWhySnapKnob() | |||||
| { | |||||
| snap = true; | |||||
| }; | |||||
| }; | |||||
| struct DaviesAzz : DaviesKnob | |||||
| { | |||||
| DaviesAzz() | |||||
| { | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/DaviesAzz.svg"))); | |||||
| } | |||||
| }; | |||||
| struct LDaviesAzz : DaviesAzz | |||||
| { | |||||
| LDaviesAzz() | |||||
| { | |||||
| box.size = Vec(45, 45); | |||||
| } | |||||
| }; | |||||
| struct DaviesPur : DaviesKnob | struct DaviesPur : DaviesKnob | ||||
| { | { | ||||
| DaviesPur() | DaviesPur() | ||||
| @@ -246,20 +209,6 @@ struct LDaviesRed : DaviesRed | |||||
| } | } | ||||
| }; | }; | ||||
| struct DaviesYel : DaviesKnob | |||||
| { | |||||
| DaviesYel() | |||||
| { | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/DaviesYel.svg"))); | |||||
| } | |||||
| }; | |||||
| struct LDaviesYel : DaviesYel | |||||
| { | |||||
| LDaviesYel() | |||||
| { | |||||
| box.size = Vec(45, 45); | |||||
| } | |||||
| }; | |||||
| struct RoundAzz : DaviesKnob | struct RoundAzz : DaviesKnob | ||||
| { | { | ||||
| @@ -277,11 +226,11 @@ struct RoundRed : DaviesKnob | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/RoundRed.svg"))); | setSVG(SVG::load(assetPlugin(plugin, "res/component/RoundRed.svg"))); | ||||
| } | } | ||||
| }; | }; | ||||
| struct RoundWhy : DaviesKnob | struct RoundWhy : DaviesKnob | ||||
| { | { | ||||
| RoundWhy() | RoundWhy() | ||||
| { | { | ||||
| box.size = Vec(30, 30); | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/RoundWhy.svg"))); | setSVG(SVG::load(assetPlugin(plugin, "res/component/RoundWhy.svg"))); | ||||
| } | } | ||||
| }; | }; | ||||
| @@ -298,7 +247,7 @@ struct LRoundWhy : RoundWhy | |||||
| { | { | ||||
| LRoundWhy() | LRoundWhy() | ||||
| { | { | ||||
| box.size = Vec(45, 45); | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/LRoundWhy.svg"))); | |||||
| } | } | ||||
| }; | }; | ||||
| @@ -314,7 +263,7 @@ struct LRoundBlu : RoundBlu | |||||
| { | { | ||||
| LRoundBlu() | LRoundBlu() | ||||
| { | { | ||||
| box.size = Vec(45, 45); | |||||
| setSVG(SVG::load(assetPlugin(plugin, "res/component/LRoundBlu.svg"))); | |||||
| } | } | ||||
| }; | }; | ||||
| @@ -328,6 +277,7 @@ struct FlatA : DaviesKnob | |||||
| }; | }; | ||||
| struct FlatASnap : FlatA | struct FlatASnap : FlatA | ||||
| { | { | ||||
| FlatASnap() | FlatASnap() | ||||
| { | { | ||||
| snap = true; | snap = true; | ||||
| @@ -487,6 +437,16 @@ struct PJ301MIPort : SVGPort | |||||
| } | } | ||||
| }; | }; | ||||
| struct PJ301MVAPort : SVGPort | |||||
| { | |||||
| PJ301MVAPort() | |||||
| { | |||||
| background->svg = SVG::load(assetPlugin(plugin, "res/component/PJ301MVA.svg")); | |||||
| background->wrap(); | |||||
| box.size = background->box.size; | |||||
| } | |||||
| }; | |||||
| struct PJ301MOrPort : SVGPort | struct PJ301MOrPort : SVGPort | ||||
| { | { | ||||
| PJ301MOrPort() | PJ301MOrPort() | ||||
| @@ -522,6 +482,25 @@ struct PJ301MCPort : SVGPort | |||||
| // SWITCHES | // SWITCHES | ||||
| //////////////////////////////////////////////// | //////////////////////////////////////////////// | ||||
| struct SilverSwitch : SVGSwitch, ToggleSwitch | |||||
| { | |||||
| SilverSwitch() | |||||
| { | |||||
| addFrame(SVG::load(assetPlugin(plugin,"res/component/SilverSwitch_0.svg"))); | |||||
| addFrame(SVG::load(assetPlugin(plugin,"res/component/SilverSwitch_2.svg"))); | |||||
| } | |||||
| }; | |||||
| struct SilverSwitch3 : SVGSwitch, ToggleSwitch | |||||
| { | |||||
| SilverSwitch3() | |||||
| { | |||||
| addFrame(SVG::load(assetPlugin(plugin, "res/component/SilverSwitch_0.svg"))); | |||||
| addFrame(SVG::load(assetPlugin(plugin, "res/component/SilverSwitch_1.svg"))); | |||||
| addFrame(SVG::load(assetPlugin(plugin, "res/component/SilverSwitch_2.svg"))); | |||||
| } | |||||
| }; | |||||
| struct CKSSS : SVGSwitch, ToggleSwitch | struct CKSSS : SVGSwitch, ToggleSwitch | ||||
| { | { | ||||
| CKSSS() | CKSSS() | ||||
| @@ -1,4 +1,15 @@ | |||||
| ** October ??th, 2018 | |||||
| - add Linux port | |||||
| - add module dBiz.FourSeq | |||||
| - add module dBiz.Divider | |||||
| - add module dBiz.DualFilter | |||||
| - add module dBiz.SmiX | |||||
| - add module dBiz.SuHa | |||||
| - add module dBiz.TROSC | |||||
| - add module dBiz.Util2 | |||||
| ** October 12th, 2018 | ** October 12th, 2018 | ||||
| - add support for ppqPos based timing clock | - add support for ppqPos based timing clock | ||||
| (fixes CLK1/2 output in FLStudio) | (fixes CLK1/2 output in FLStudio) | ||||
| @@ -1,23 +1,37 @@ | |||||
| # dBiz_Modules | # dBiz_Modules | ||||
| Here's my collection of modules for VCVRack! | Here's my collection of modules for VCVRack! | ||||
| Many thx to Michael Hetrick, Strum's Mental and Jeremy Wen for sources and inspiring me! | |||||
| Ready for v 0.5 here's what i have: | |||||
| First of all many thx to all the awesome developers and VCV community! Whithout you this pack would not have existed! | |||||
| - Quad envelope generator based on rampage, | |||||
| Now ready for v 0.6.2 this is what you'll find | |||||
|  | |||||
| UTILITY AND QUANTIZER | |||||
| - Quad envelope AD, | |||||
| - Chord generator/transformer, | |||||
| - Utility transposer octave/sem/fine with ability to link the inputs, | - Utility transposer octave/sem/fine with ability to link the inputs, | ||||
| - Performance 8 channel stereo mixer with stereo sends and return | |||||
| - VCA based on Roland VCA530 | |||||
| - Simple transposer | |||||
|  | |||||
|  | |||||
| VCA AND ROUTERS | |||||
| Based on Strum modules i've made a compact 4 channel mixer, a 8 channel mixer,a chord utility and from Michael Hetrick Scanner i've made Remix Module ! | |||||
| - 6 Ch. mixer router/scanner, | |||||
| - 4x4 in/out matrix mixer, | |||||
| - 6 Ch. VCA based on Roland system 500 / 530 | |||||
| - 8 Ch. mixer scanner/sequencer/router | |||||
|  | |||||
|  | |||||
| GRID SEQUENCERS | |||||
| Starting from some grid sequencers like Cartesian by strum and Gridseq by JW i've made those grid sequencers: | Starting from some grid sequencers like Cartesian by strum and Gridseq by JW i've made those grid sequencers: | ||||
|  | |||||
|  | |||||
| - Bene | - Bene | ||||
| Classical 4x4 cv sequencer with internal quantization , | Classical 4x4 cv sequencer with internal quantization , | ||||
| BenePads is his "keyboard" it sends position to Bene(x,y) and a Gate out(g); | BenePads is his "keyboard" it sends position to Bene(x,y) and a Gate out(g); | ||||
| @@ -25,13 +39,25 @@ Classical 4x4 cv sequencer with internal quantization , | |||||
| - Bene2 | - Bene2 | ||||
| Evolution of Bene: Can out up to 8 individual sequence with cv (colums and rows) and gate (on the bottom) outs running with independent cloks. still some fix to do as usuall but it's really fun to play with it! | Evolution of Bene: Can out up to 8 individual sequence with cv (colums and rows) and gate (on the bottom) outs running with independent cloks. still some fix to do as usuall but it's really fun to play with it! | ||||
| And here's a collection of oscillator you might know... | |||||
|  | |||||
| OSCILLATORS: | |||||
| They don't need introductions ;) | |||||
|  | |||||
| VINTAGE SERIE | |||||
| This mini 4 modules series is based on subharmonicon sequencer,oscillator and clock subdivision. | |||||
| The Utility2 module is a collection of 2 glide generator, 2 ad envelope and 4 button/toggle with value selection. | |||||
|  | |||||
| I'm not a real coder so push req. and advice are always welcome | |||||
| The code and how it sounds can be improoved as usuall so push req. and advice are always welcome | |||||
| Have fun! | Have fun! | ||||
| @@ -3433,9 +3433,9 @@ | |||||
| borderopacity="1.0" | borderopacity="1.0" | ||||
| inkscape:pageopacity="0.0" | inkscape:pageopacity="0.0" | ||||
| inkscape:pageshadow="2" | inkscape:pageshadow="2" | ||||
| inkscape:zoom="2.2606344" | |||||
| inkscape:cx="44.406358" | |||||
| inkscape:cy="169.31782" | |||||
| inkscape:zoom="2.5944565" | |||||
| inkscape:cx="86.453105" | |||||
| inkscape:cy="369.01201" | |||||
| inkscape:document-units="px" | inkscape:document-units="px" | ||||
| inkscape:current-layer="layer1" | inkscape:current-layer="layer1" | ||||
| showgrid="true" | showgrid="true" | ||||
| @@ -3700,17 +3700,17 @@ | |||||
| style="display:inline"> | style="display:inline"> | ||||
| <path | <path | ||||
| style="fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | style="fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||
| d="M 62.653303,24.17144 V 349.34482" | |||||
| d="M 64.653303,24.17144 V 349.34482" | |||||
| id="path5273" | id="path5273" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| <path | <path | ||||
| style="display:inline;fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | style="display:inline;fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||
| d="M 127.49724,24.326629 V 349.5" | |||||
| d="M 129.49724,24.326629 V 349.5" | |||||
| id="path5273-3" | id="path5273-3" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| <path | <path | ||||
| style="display:inline;fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | style="display:inline;fill:none;stroke:#000000;stroke-width:0.90497124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||
| d="M 192.30151,24.129685 V 349.30305" | |||||
| d="M 194.30151,24.129685 V 349.30305" | |||||
| id="path5273-5" | id="path5273-5" | ||||
| inkscape:connector-curvature="0" /> | inkscape:connector-curvature="0" /> | ||||
| <path | <path | ||||
| @@ -4464,102 +4464,126 @@ | |||||
| <g | <g | ||||
| aria-label="RANGE" | aria-label="RANGE" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | ||||
| id="text5845"> | |||||
| id="text5845" | |||||
| transform="translate(-0.81763573,-3.8156334)"> | |||||
| <path | <path | ||||
| d="m 39.653742,20.575103 q 0.41227,0 0.721472,-0.309203 0.274846,-0.274846 0.274846,-0.824539 0,-0.515337 -0.309202,-0.824539 -0.343558,-0.343558 -0.927606,-0.343558 h -0.755828 v 2.301839 z m -0.06871,-2.954599 q 0.858895,0 1.408588,0.549693 0.446625,0.446625 0.446625,1.271164 0,0.755828 -0.446625,1.236809 -0.309202,0.343558 -0.618404,0.446625 l 1.236808,3.195089 h -0.824539 l -1.168097,-3.092021 h -0.961962 v 3.092021 h -0.790183 v -6.69938 z" | d="m 39.653742,20.575103 q 0.41227,0 0.721472,-0.309203 0.274846,-0.274846 0.274846,-0.824539 0,-0.515337 -0.309202,-0.824539 -0.343558,-0.343558 -0.927606,-0.343558 h -0.755828 v 2.301839 z m -0.06871,-2.954599 q 0.858895,0 1.408588,0.549693 0.446625,0.446625 0.446625,1.271164 0,0.755828 -0.446625,1.236809 -0.309202,0.343558 -0.618404,0.446625 l 1.236808,3.195089 h -0.824539 l -1.168097,-3.092021 h -0.961962 v 3.092021 h -0.790183 v -6.69938 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5922" /> | |||||
| id="path5922" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 42.814475,24.319884 h -0.824539 l 1.71779,-6.69938 h 0.687116 l 1.717789,6.69938 h -0.824539 l -0.480981,-1.95828 h -1.511655 z m 1.271164,-4.878523 h -0.06871 l -0.549693,2.267483 h 1.168097 z" | d="m 42.814475,24.319884 h -0.824539 l 1.71779,-6.69938 h 0.687116 l 1.717789,6.69938 h -0.824539 l -0.480981,-1.95828 h -1.511655 z m 1.271164,-4.878523 h -0.06871 l -0.549693,2.267483 h 1.168097 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5924" /> | |||||
| id="path5924" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 50.200971,17.620504 v 6.69938 h -0.961963 l -1.786501,-5.015946 h -0.03436 v 5.015946 h -0.790183 v -6.69938 h 0.961962 l 1.786502,5.015946 h 0.03435 v -5.015946 z" | d="m 50.200971,17.620504 v 6.69938 h -0.961963 l -1.786501,-5.015946 h -0.03436 v 5.015946 h -0.790183 v -6.69938 h 0.961962 l 1.786502,5.015946 h 0.03435 v -5.015946 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5926" /> | |||||
| id="path5926" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 53.877041,19.716208 q -0.03436,-0.893251 -0.343558,-1.202453 -0.240491,-0.240491 -0.549693,-0.240491 -0.274846,0 -0.446625,0.171779 -0.755827,0.755828 -0.755827,2.679752 0,1.683434 0.549692,2.233127 0.274847,0.274846 0.549693,0.274846 0.343558,0 0.618404,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.752146 v 3.641714 H 54.014464 L 53.911397,23.70148 q -0.480981,0.618404 -1.133741,0.618404 -0.584049,0 -0.996318,-0.41227 -0.790184,-0.790183 -0.790184,-2.782819 0,-2.130059 0.858895,-2.988954 0.515337,-0.515337 1.133741,-0.515337 0.65276,0 1.030674,0.377914 0.584049,0.584049 0.584049,1.71779 z" | d="m 53.877041,19.716208 q -0.03436,-0.893251 -0.343558,-1.202453 -0.240491,-0.240491 -0.549693,-0.240491 -0.274846,0 -0.446625,0.171779 -0.755827,0.755828 -0.755827,2.679752 0,1.683434 0.549692,2.233127 0.274847,0.274846 0.549693,0.274846 0.343558,0 0.618404,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.752146 v 3.641714 H 54.014464 L 53.911397,23.70148 q -0.480981,0.618404 -1.133741,0.618404 -0.584049,0 -0.996318,-0.41227 -0.790184,-0.790183 -0.790184,-2.782819 0,-2.130059 0.858895,-2.988954 0.515337,-0.515337 1.133741,-0.515337 0.65276,0 1.030674,0.377914 0.584049,0.584049 0.584049,1.71779 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5928" /> | |||||
| id="path5928" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 56.350658,20.437679 h 2.336193 v 0.65276 h -2.336193 v 2.576685 h 2.714107 v 0.65276 h -3.504291 v -6.69938 h 3.332512 v 0.65276 h -2.542328 z" | d="m 56.350658,20.437679 h 2.336193 v 0.65276 h -2.336193 v 2.576685 h 2.714107 v 0.65276 h -3.504291 v -6.69938 h 3.332512 v 0.65276 h -2.542328 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5930" /> | |||||
| id="path5930" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | </g> | ||||
| <g | <g | ||||
| aria-label="RANGE" | aria-label="RANGE" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | ||||
| id="text5845-7"> | |||||
| id="text5845-7" | |||||
| transform="translate(-0.81763573,-3.8156334)"> | |||||
| <path | <path | ||||
| d="m 102.54877,20.575103 q 0.41227,0 0.72147,-0.309203 0.27485,-0.274846 0.27485,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75583 v 2.301839 z m -0.0687,-2.954599 q 0.85889,0 1.40859,0.549693 0.44662,0.446625 0.44662,1.271164 0,0.755828 -0.44662,1.236809 -0.30921,0.343558 -0.61841,0.446625 l 1.23681,3.195089 h -0.82454 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79018 v -6.69938 z" | d="m 102.54877,20.575103 q 0.41227,0 0.72147,-0.309203 0.27485,-0.274846 0.27485,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75583 v 2.301839 z m -0.0687,-2.954599 q 0.85889,0 1.40859,0.549693 0.44662,0.446625 0.44662,1.271164 0,0.755828 -0.44662,1.236809 -0.30921,0.343558 -0.61841,0.446625 l 1.23681,3.195089 h -0.82454 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79018 v -6.69938 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5911" /> | |||||
| id="path5911" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 105.7095,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68712 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51166 z m 1.27117,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.1681 z" | d="m 105.7095,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68712 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51166 z m 1.27117,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.1681 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5913" /> | |||||
| id="path5913" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 113.096,17.620504 v 6.69938 h -0.96196 l -1.78651,-5.015946 h -0.0344 v 5.015946 H 109.523 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0343 v -5.015946 z" | d="m 113.096,17.620504 v 6.69938 h -0.96196 l -1.78651,-5.015946 h -0.0344 v 5.015946 H 109.523 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0343 v -5.015946 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5915" /> | |||||
| id="path5915" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 116.77207,19.716208 q -0.0344,-0.893251 -0.34356,-1.202453 -0.24049,-0.240491 -0.54969,-0.240491 -0.27485,0 -0.44663,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.5497,2.233127 0.27484,0.274846 0.54969,0.274846 0.34356,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75215 v 3.641714 h -0.58405 l -0.10307,-0.618404 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.8589,-2.988954 0.51533,-0.515337 1.13374,-0.515337 0.65276,0 1.03067,0.377914 0.58405,0.584049 0.58405,1.71779 z" | d="m 116.77207,19.716208 q -0.0344,-0.893251 -0.34356,-1.202453 -0.24049,-0.240491 -0.54969,-0.240491 -0.27485,0 -0.44663,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.5497,2.233127 0.27484,0.274846 0.54969,0.274846 0.34356,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75215 v 3.641714 h -0.58405 l -0.10307,-0.618404 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.8589,-2.988954 0.51533,-0.515337 1.13374,-0.515337 0.65276,0 1.03067,0.377914 0.58405,0.584049 0.58405,1.71779 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5917" /> | |||||
| id="path5917" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 119.24568,20.437679 h 2.3362 v 0.65276 h -2.3362 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | d="m 119.24568,20.437679 h 2.3362 v 0.65276 h -2.3362 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5919" /> | |||||
| id="path5919" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | </g> | ||||
| <g | <g | ||||
| aria-label="RANGE" | aria-label="RANGE" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | ||||
| id="text5845-4"> | |||||
| id="text5845-4" | |||||
| transform="translate(-0.81763573,-3.8156334)"> | |||||
| <path | <path | ||||
| d="m 167.87351,20.575103 q 0.41227,0 0.72148,-0.309203 0.27484,-0.274846 0.27484,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75582 v 2.301839 z m -0.0687,-2.954599 q 0.8589,0 1.40859,0.549693 0.44663,0.446625 0.44663,1.271164 0,0.755828 -0.44663,1.236809 -0.3092,0.343558 -0.6184,0.446625 l 1.2368,3.195089 h -0.82453 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79019 v -6.69938 z" | d="m 167.87351,20.575103 q 0.41227,0 0.72148,-0.309203 0.27484,-0.274846 0.27484,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75582 v 2.301839 z m -0.0687,-2.954599 q 0.8589,0 1.40859,0.549693 0.44663,0.446625 0.44663,1.271164 0,0.755828 -0.44663,1.236809 -0.3092,0.343558 -0.6184,0.446625 l 1.2368,3.195089 h -0.82453 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79019 v -6.69938 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5900" /> | |||||
| id="path5900" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 171.03425,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68711 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51165 z m 1.27116,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.16809 z" | d="m 171.03425,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68711 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51165 z m 1.27116,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.16809 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5902" /> | |||||
| id="path5902" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 178.42074,17.620504 v 6.69938 h -0.96196 l -1.7865,-5.015946 h -0.0344 v 5.015946 h -0.79018 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0344 v -5.015946 z" | d="m 178.42074,17.620504 v 6.69938 h -0.96196 l -1.7865,-5.015946 h -0.0344 v 5.015946 h -0.79018 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0344 v -5.015946 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5904" /> | |||||
| id="path5904" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 182.09681,19.716208 q -0.0344,-0.893251 -0.34355,-1.202453 -0.2405,-0.240491 -0.5497,-0.240491 -0.27484,0 -0.44662,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.54969,2.233127 0.27485,0.274846 0.5497,0.274846 0.34355,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75214 v 3.641714 h -0.58404 l -0.10307,-0.618404 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.85889,-2.988954 0.51534,-0.515337 1.13374,-0.515337 0.65276,0 1.03068,0.377914 0.58404,0.584049 0.58404,1.71779 z" | d="m 182.09681,19.716208 q -0.0344,-0.893251 -0.34355,-1.202453 -0.2405,-0.240491 -0.5497,-0.240491 -0.27484,0 -0.44662,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.54969,2.233127 0.27485,0.274846 0.5497,0.274846 0.34355,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75214 v 3.641714 h -0.58404 l -0.10307,-0.618404 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.85889,-2.988954 0.51534,-0.515337 1.13374,-0.515337 0.65276,0 1.03068,0.377914 0.58404,0.584049 0.58404,1.71779 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5906" /> | |||||
| id="path5906" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 184.57043,20.437679 h 2.33619 v 0.65276 h -2.33619 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | d="m 184.57043,20.437679 h 2.33619 v 0.65276 h -2.33619 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5908" /> | |||||
| id="path5908" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | </g> | ||||
| <g | <g | ||||
| aria-label="RANGE" | aria-label="RANGE" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.79508305px;line-height:1.25;font-family:'DejaVu Math TeX Gyre';-inkscape-font-specification:'DejaVu Math TeX Gyre';letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54969269" | ||||
| id="text5845-7-9"> | |||||
| id="text5845-7-9" | |||||
| transform="translate(-0.81763573,-3.8156334)"> | |||||
| <path | <path | ||||
| d="m 230.76855,20.575103 q 0.41227,0 0.72147,-0.309203 0.27485,-0.274846 0.27485,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75583 v 2.301839 z m -0.0687,-2.954599 q 0.85889,0 1.40859,0.549693 0.44662,0.446625 0.44662,1.271164 0,0.755828 -0.44662,1.236809 -0.30921,0.343558 -0.61841,0.446625 l 1.23681,3.195089 h -0.82454 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79018 v -6.69938 z" | d="m 230.76855,20.575103 q 0.41227,0 0.72147,-0.309203 0.27485,-0.274846 0.27485,-0.824539 0,-0.515337 -0.3092,-0.824539 -0.34356,-0.343558 -0.92761,-0.343558 h -0.75583 v 2.301839 z m -0.0687,-2.954599 q 0.85889,0 1.40859,0.549693 0.44662,0.446625 0.44662,1.271164 0,0.755828 -0.44662,1.236809 -0.30921,0.343558 -0.61841,0.446625 l 1.23681,3.195089 h -0.82454 l -1.1681,-3.092021 h -0.96196 v 3.092021 h -0.79018 v -6.69938 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5889" /> | |||||
| id="path5889" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 233.92928,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68712 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51166 z m 1.27117,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.1681 z" | d="m 233.92928,24.319884 h -0.82454 l 1.71779,-6.69938 h 0.68712 l 1.71779,6.69938 h -0.82454 l -0.48098,-1.95828 h -1.51166 z m 1.27117,-4.878523 h -0.0687 l -0.54969,2.267483 h 1.1681 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5891" /> | |||||
| id="path5891" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 241.31578,17.620504 v 6.69938 h -0.96196 l -1.78651,-5.015946 h -0.0343 v 5.015946 h -0.79018 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0343 v -5.015946 z" | d="m 241.31578,17.620504 v 6.69938 h -0.96196 l -1.78651,-5.015946 h -0.0343 v 5.015946 h -0.79018 v -6.69938 h 0.96196 l 1.7865,5.015946 h 0.0343 v -5.015946 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5893" /> | |||||
| id="path5893" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 244.99185,19.716208 q -0.0344,-0.893251 -0.34356,-1.202453 -0.24049,-0.240491 -0.54969,-0.240491 -0.27485,0 -0.44663,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.5497,2.233127 0.27484,0.274846 0.54969,0.274846 0.34356,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75215 v 3.641714 h -0.58405 L 245.0262,23.70148 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.8589,-2.988954 0.51533,-0.515337 1.13374,-0.515337 0.65276,0 1.03067,0.377914 0.58405,0.584049 0.58405,1.71779 z" | d="m 244.99185,19.716208 q -0.0344,-0.893251 -0.34356,-1.202453 -0.24049,-0.240491 -0.54969,-0.240491 -0.27485,0 -0.44663,0.171779 -0.75583,0.755828 -0.75583,2.679752 0,1.683434 0.5497,2.233127 0.27484,0.274846 0.54969,0.274846 0.34356,0 0.6184,-0.274846 0.41227,-0.41227 0.41227,-1.374232 v -0.65276 h -1.06503 v -0.65276 h 1.75215 v 3.641714 h -0.58405 L 245.0262,23.70148 q -0.48098,0.618404 -1.13374,0.618404 -0.58405,0 -0.99632,-0.41227 -0.79018,-0.790183 -0.79018,-2.782819 0,-2.130059 0.8589,-2.988954 0.51533,-0.515337 1.13374,-0.515337 0.65276,0 1.03067,0.377914 0.58405,0.584049 0.58405,1.71779 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5895" /> | |||||
| id="path5895" | |||||
| inkscape:connector-curvature="0" /> | |||||
| <path | <path | ||||
| d="m 247.46546,20.437679 h 2.3362 v 0.65276 h -2.3362 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | d="m 247.46546,20.437679 h 2.3362 v 0.65276 h -2.3362 v 2.576685 h 2.71411 v 0.65276 h -3.50429 v -6.69938 h 3.33251 v 0.65276 h -2.54233 z" | ||||
| style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'MS Gothic';-inkscape-font-specification:'MS Gothic';stroke-width:0.54969269" | ||||
| id="path5897" /> | |||||
| id="path5897" | |||||
| inkscape:connector-curvature="0" /> | |||||
| </g> | </g> | ||||
| <g | <g | ||||
| aria-label="CYCLE" | aria-label="CYCLE" | ||||