Browse Source

Add Mixer module. Deprecate Unity. Add attenuverters to VCF.

tags/v2.0.1
Andrew Belt 3 years ago
parent
commit
9b16935ad7
7 changed files with 664 additions and 423 deletions
  1. +11
    -1
      plugin.json
  2. +272
    -0
      res/Mixer.svg
  3. +280
    -415
      res/Sum.svg
  4. +84
    -0
      src/Mixer.cpp
  5. +15
    -7
      src/VCF.cpp
  6. +1
    -0
      src/plugin.cpp
  7. +1
    -0
      src/plugin.hpp

+ 11
- 1
plugin.json View File

@@ -103,6 +103,15 @@
"Polyphonic"
]
},
{
"slug": "Mixer",
"name": "Mixer",
"description": "Mixes 6 signals",
"tags": [
"Mixer",
"Polyphonic"
]
},
{
"slug": "VCMixer",
"name": "Mixer",
@@ -133,7 +142,8 @@
"Mixer",
"Utility",
"Dual"
]
],
"hidden": true
},
{
"slug": "Mutes",


+ 272
- 0
res/Mixer.svg View File

@@ -0,0 +1,272 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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="380"
viewBox="0 0 45 380"
version="1.1"
id="svg79"
sodipodi:docname="UMIX.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata83">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="716"
inkscape:window-height="480"
id="namedview81"
showgrid="false"
inkscape:zoom="0.62105263"
inkscape:cx="22.5"
inkscape:cy="190"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg79" />
<defs
id="defs7">
<linearGradient
id="fe6fa1e3-b00d-43c5-bb51-48a4b2316c99"
x1="22.5"
x2="22.5"
y2="380"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#ebebeb"
id="stop2" />
<stop
offset="1"
stop-color="#e1e1e1"
id="stop4" />
</linearGradient>
</defs>
<g
id="a2e2b8e7-20e0-4b6c-bd9f-37b0b88b197d"
data-name="FND BG">
<rect
width="45"
height="380"
fill="url(#fe6fa1e3-b00d-43c5-bb51-48a4b2316c99)"
id="rect9" />
</g>
<g
id="b9541324-3c38-4337-bfb9-5334bca160d9"
data-name="FND GRAPH">
<g
id="g20">
<circle
cx="23.00165"
cy="355.83101"
r="1.18571"
fill="#1f1f1f"
id="circle12" />
<path
d="M14.35927,359.753a.91214.91214,0,0,1-.8158-.50418l-2.96428-5.92857a.91209.91209,0,0,1,1.6316-.8158l2.14848,4.297,2.14848-4.297a.91209.91209,0,0,1,1.6316.8158l-2.96428,5.92857A.91211.91211,0,0,1,14.35927,359.753Z"
fill="#1f1f1f"
id="path14" />
<path
d="M30.64073,359.753a.91211.91211,0,0,1-.8158-.50418l-2.96428-5.92857a.91209.91209,0,0,1,1.6316-.8158l2.14848,4.297,2.14848-4.297a.91209.91209,0,0,1,1.6316.8158l-2.96428,5.92857A.91214.91214,0,0,1,30.64073,359.753Z"
fill="#1f1f1f"
id="path16" />
<path
d="M22.94242,359.753a3.87637,3.87637,0,1,1,2.32653-6.97719.91209.91209,0,1,1-1.09557,1.45854,2.034,2.034,0,0,0-1.231-.40991,2.0522,2.0522,0,1,0,0,4.10439,2.034,2.034,0,0,0,1.231-.40991.91209.91209,0,1,1,1.09557,1.45854A3.8448,3.8448,0,0,1,22.94242,359.753Z"
fill="#1f1f1f"
id="path18" />
</g>
<rect
x="8.22422"
y="309.05634"
width="28.55155"
height="39.15691"
rx="2.83465"
fill="#1f1f1f"
id="rect22" />
<line
x1="22.5"
y1="132.8236"
x2="22.5"
y2="309.83531"
fill="none"
stroke="#1f1f1f"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="0.8"
id="line24" />
<g
id="g30">
<path
d="M13.92012,87.35089a16.71246,16.71246,0,1,1,17.21552-.04577L22.5,73"
fill="none"
stroke="#1f1f1f"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="0.8"
id="path26" />
<circle
cx="22.5"
cy="72.99995"
r="20.69419"
fill="none"
opacity="0.69"
style="isolation: isolate"
id="circle28" />
</g>
</g>
<g
id="b2635e9d-6eef-435d-a209-ceebf6403e0c"
data-name="FND TXT">
<g
id="g43">
<path
d="M9.125,45.72314a.5132.5132,0,0,1,1.02637,0v4.44043h2.64648a.46729.46729,0,0,1,0,.93457H9.64258a.50991.50991,0,0,1-.51758-.51757Z"
fill="#1f1f1f"
id="path33" />
<path
d="M14.418,50.58057V45.773a.50991.50991,0,0,1,.51758-.51758H18.333a.46363.46363,0,0,1,.459.45947.45813.45813,0,0,1-.459.459H15.44434v1.519H17.957a.465.465,0,0,1,.459.46729.45611.45611,0,0,1-.459.45068H15.44434v1.56934H18.374a.4634.4634,0,0,1,.46.459.458.458,0,0,1-.46.459H14.93555A.50991.50991,0,0,1,14.418,50.58057Z"
fill="#1f1f1f"
id="path35" />
<path
d="M21.93457,50.76416l-2.04492-4.80762a.57631.57631,0,0,1-.0586-.2417.50612.50612,0,0,1,.51758-.501.53807.53807,0,0,1,.52637.36718l1.68555,4.21485,1.71093-4.24805a.53054.53054,0,0,1,.49317-.334.497.497,0,0,1,.50879.49218.60646.60646,0,0,1-.04981.21729l-2.05371,4.84082a.61173.61173,0,0,1-.59277.41748h-.05762A.60906.60906,0,0,1,21.93457,50.76416Z"
fill="#1f1f1f"
id="path37" />
<path
d="M26.457,50.58057V45.773a.50992.50992,0,0,1,.51758-.51758h3.39746a.46363.46363,0,0,1,.459.45947.45813.45813,0,0,1-.459.459H27.4834v1.519h2.51269a.465.465,0,0,1,.459.46729.45611.45611,0,0,1-.459.45068H27.4834v1.56934h2.92969a.4634.4634,0,0,1,.46.459.458.458,0,0,1-.46.459H26.97461A.50991.50991,0,0,1,26.457,50.58057Z"
fill="#1f1f1f"
id="path39" />
<path
d="M32.21,45.72314a.5132.5132,0,0,1,1.02637,0v4.44043h2.64648a.46729.46729,0,0,1,0,.93457H32.72754a.50991.50991,0,0,1-.51758-.51757Z"
fill="#1f1f1f"
id="path41" />
</g>
<g
id="g49">
<path
d="M19.30078,116.71387a.41652.41652,0,0,1,.833,0v3.9834a.41652.41652,0,0,1-.833,0Z"
fill="#1f1f1f"
id="path45" />
<path
d="M21.60938,116.72754a.418.418,0,0,1,.41992-.41992h.08886a.52522.52522,0,0,1,.4336.24365l2.37109,3.06885V116.707a.40968.40968,0,0,1,.81934,0v3.9834a.40483.40483,0,0,1-.40625.41357h-.03418a.5249.5249,0,0,1-.4336-.25048l-2.43847-3.15723v3.00781a.41017.41017,0,0,1-.82031,0Z"
fill="#1f1f1f"
id="path47" />
</g>
<g
id="g59">
<path
d="M6.57227,24.5332V20.4165a.96289.96289,0,1,1,1.92578,0v4.06641c0,1.42627.71289,2.16455,1.88965,2.16455s1.88964-.71289,1.88964-2.102V20.4165a.96338.96338,0,1,1,1.92676,0v4.0542c0,2.65235-1.48926,3.95362-3.84082,3.95362C8.00977,28.42432,6.57227,27.11035,6.57227,24.5332Z"
fill="#1f1f1f"
id="path51" />
<path
d="M16.35742,20.44141a.95618.95618,0,0,1,.96387-.96338h.21191a.99.99,0,0,1,.877.50049l2.32617,3.791,2.33984-3.80371a.94553.94553,0,0,1,.86328-.48779h.21289a.95557.95557,0,0,1,.96387.96338v6.957a.95754.95754,0,1,1-1.915,0V23.03125L21.5127,25.63379a.90079.90079,0,0,1-1.60157,0l-1.66406-2.56445v4.354a.93972.93972,0,0,1-.95117.93848.92956.92956,0,0,1-.93848-.93848Z"
fill="#1f1f1f"
id="path53" />
<path
d="M27.43652,20.4165a.96338.96338,0,1,1,1.92676,0v6.98194a.96338.96338,0,1,1-1.92676,0Z"
fill="#1f1f1f"
id="path55" />
<path
d="M31.31738,26.73535,33.68164,23.832l-2.22656-2.71484a1.17547,1.17547,0,0,1-.28711-.71338.92738.92738,0,0,1,.95019-.95069,1.00808,1.00808,0,0,1,.8877.47559l1.915,2.55225,1.90137-2.50244a1.10241,1.10241,0,0,1,.93945-.5254.87972.87972,0,0,1,.875.88819,1.14464,1.14464,0,0,1-.28711.73828l-2.22754,2.72754,2.35254,2.89014a1.17783,1.17783,0,0,1,.28711.71337.92772.92772,0,0,1-.95117.95118,1.01035,1.01035,0,0,1-.8877-.47559l-2.05176-2.68994-2.02734,2.63965a1.0997,1.0997,0,0,1-.9375.52588.8807.8807,0,0,1-.877-.88819A1.14486,1.14486,0,0,1,31.31738,26.73535Z"
fill="#1f1f1f"
id="path57" />
</g>
<g
id="g67">
<path
d="M16.3877,314.66113a.51759.51759,0,0,1,.52246-.52148h.11523a.53518.53518,0,0,1,.47363.27051l1.26075,2.05273,1.2666-2.05957a.51151.51151,0,0,1,.46777-.26367h.11524a.51738.51738,0,0,1,.52148.52148v3.7666a.51857.51857,0,1,1-1.03711,0v-2.36425l-.91406,1.40918a.48793.48793,0,0,1-.86719,0l-.90137-1.38868v2.35743a.509.509,0,0,1-.51465.5083.50345.50345,0,0,1-.50878-.5083Z"
fill="#f0f0f0"
id="path61" />
<path
d="M22.55273,314.64746a.52149.52149,0,0,1,1.043,0v3.78027a.52149.52149,0,1,1-1.043,0Z"
fill="#f0f0f0"
id="path63" />
<path
d="M24.82617,318.06885l1.28028-1.57178-1.20606-1.47021a.63785.63785,0,0,1-.15527-.38624.50212.50212,0,0,1,.51465-.51464.54545.54545,0,0,1,.48046.25732l1.03711,1.38232,1.0293-1.35546a.59743.59743,0,0,1,.50879-.28418.47571.47571,0,0,1,.47363.48095.62044.62044,0,0,1-.15527.39991l-1.20606,1.47656,1.27344,1.56543a.63847.63847,0,0,1,.15625.38574.50248.50248,0,0,1-.51562.51514.54876.54876,0,0,1-.48047-.25733l-1.11133-1.457L25.65234,318.665a.59508.59508,0,0,1-.50781.28467.47684.47684,0,0,1-.47461-.481A.61966.61966,0,0,1,24.82617,318.06885Z"
fill="#f0f0f0"
id="path65" />
</g>
</g>
<g
id="b487e988-69e1-4f3e-a146-aeb5bcd8fb67"
data-name="components"
inkscape:groupmode="layer"
style="display:none">
<circle
id="eccdb024-2d3e-4e08-a47c-b0ab69c7aa89"
data-name="In6#PJ301MPort"
cx="22.5"
cy="286.00003"
r="5"
style="fill:#00ff00" />
<circle
id="badeaf3a-25a9-47ed-9354-9bfdb6861453"
data-name="In3#PJ301MPort"
cx="22.5"
cy="196.00002"
r="5"
style="fill:#00ff00" />
<circle
id="b414eed3-2a71-4e99-832f-a05e5ada8814"
data-name="In4#PJ301MPort"
cx="22.5"
cy="226.00002"
r="5"
style="fill:#00ff00" />
<circle
id="ed323d2b-7a00-43f7-abc0-c9e4a8106e0f"
data-name="In1#PJ301MPort"
cx="22.5"
cy="136.00002"
r="5"
style="fill:#00ff00" />
<circle
id="a6cab8e5-a0d5-4096-b2ba-0e00b69fd42b"
data-name="In2#PJ301MPort"
cx="22.5"
cy="166.00002"
r="5"
style="fill:#00ff00" />
<circle
id="a59e1e74-3d69-432f-b607-69c7166616cf"
data-name="In5#PJ301MPort"
cx="22.5"
cy="256"
r="5"
style="fill:#00ff00" />
<circle
id="f3016410-0f8a-4ac8-aa3d-861cad752f82"
data-name="Out#PJ301MPort"
cx="22.5"
cy="334"
r="5"
style="fill:#0000ff" />
<circle
id="b5ceac18-d110-4e9b-b49a-d2b94d480fd8"
data-name="Level#RoundBlackKnob"
cx="22.5"
cy="72.999947"
r="5"
style="fill:#ff0000" />
</g>
</svg>

+ 280
- 415
res/Sum.svg View File

@@ -1,6 +1,4 @@
<?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#"
@@ -9,443 +7,310 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="15.239718mm"
height="128.5007mm"
viewBox="0 0 15.239719 128.5007"
width="45"
height="380"
viewBox="0 0 45 380"
version="1.1"
id="svg55291"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="Sum.svg">
<defs
id="defs55285">
<clipPath
id="clip11">
<rect
x="0"
y="0"
width="17"
height="16"
id="rect9531" />
</clipPath>
<clipPath
id="clip12">
<path
inkscape:connector-curvature="0"
d="M 0.671875,0.476562 H 16.917969 V 15.574219 H 0.671875 Z m 0,0"
id="path9528" />
</clipPath>
<clipPath
id="clip9">
<rect
x="0"
y="0"
width="24"
height="25"
id="rect9515" />
</clipPath>
<clipPath
id="clip10">
<path
inkscape:connector-curvature="0"
d="M 0.457031,0.238281 H 23.132812 V 24.980469 H 0.457031 Z m 0,0"
id="path9512" />
</clipPath>
<clipPath
id="clip7">
<rect
x="0"
y="0"
width="17"
height="16"
id="rect9499" />
</clipPath>
<clipPath
id="clip8">
<path
inkscape:connector-curvature="0"
d="M 0.671875,0.449219 H 16.917969 V 15.546875 H 0.671875 Z m 0,0"
id="path9496" />
</clipPath>
<clipPath
id="clip5">
<rect
x="0"
y="0"
width="24"
height="25"
id="rect9483" />
</clipPath>
<clipPath
id="clip6">
<path
inkscape:connector-curvature="0"
d="M 0.457031,0.210938 H 23.132812 V 24.953125 H 0.457031 Z m 0,0"
id="path9480" />
</clipPath>
<clipPath
id="clip1">
<rect
x="0"
y="0"
width="30"
height="32"
id="rect9461" />
</clipPath>
<clipPath
id="clip2">
<path
inkscape:connector-curvature="0"
d="M 0.441406,0.394531 H 29.140625 V 31.96875 H 0.441406 Z m 0,0"
id="path9458" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="43.509163"
inkscape:cy="242.83108"
inkscape:document-units="mm"
inkscape:current-layer="layer3"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-nodes="false"
inkscape:window-width="1600"
inkscape:window-height="882"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0" />
id="svg157"
sodipodi:docname="SUM.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata55288">
id="metadata161">
<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>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="716"
inkscape:window-height="480"
id="namedview159"
showgrid="false"
inkscape:zoom="0.62105263"
inkscape:cx="22.5"
inkscape:cy="190"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg157" />
<defs
id="defs7">
<linearGradient
id="e509ed03-3e7a-4bf0-b112-8953fd9c9775"
x1="22.5"
x2="22.5"
y2="380"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#ebebeb"
id="stop2" />
<stop
offset="1"
stop-color="#e1e1e1"
id="stop4" />
</linearGradient>
</defs>
<g
id="e43c32f6-37e3-4701-b556-233516132173"
data-name="FND BG">
<rect
width="45"
height="380"
fill="url(#e509ed03-3e7a-4bf0-b112-8953fd9c9775)"
id="rect9" />
</g>
<g
id="fa768f65-e8a9-46f3-bda4-9b2b960338f2"
data-name="FND GRAPH">
<line
x1="22.49996"
y1="282.5303"
x2="22.49996"
y2="311.96512"
fill="none"
stroke="#1f1f1f"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="0.8"
id="line12" />
<g
id="g18">
<path
d="M13.92008,204.16572A16.71246,16.71246,0,1,1,31.13559,204.12L22.5,189.81477"
fill="none"
stroke="#1f1f1f"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="0.8"
id="path14" />
<circle
cx="22.49996"
cy="189.81477"
r="20.69419"
fill="none"
opacity="0.69"
style="isolation: isolate"
id="circle16" />
</g>
<rect
x="8.22418"
y="309.05634"
width="28.55155"
height="39.15691"
rx="2.83465"
fill="#1f1f1f"
id="rect20" />
<g
id="g30">
<circle
cx="23.00165"
cy="355.83101"
r="1.18571"
fill="#1f1f1f"
id="circle22" />
<path
d="M14.35927,359.753a.91214.91214,0,0,1-.8158-.50418l-2.96428-5.92857a.91209.91209,0,0,1,1.6316-.8158l2.14848,4.297,2.14848-4.297a.91209.91209,0,0,1,1.6316.8158l-2.96428,5.92857A.91211.91211,0,0,1,14.35927,359.753Z"
fill="#1f1f1f"
id="path24" />
<path
d="M30.64073,359.753a.91211.91211,0,0,1-.8158-.50418l-2.96428-5.92857a.91209.91209,0,0,1,1.6316-.8158l2.14848,4.297,2.14848-4.297a.91209.91209,0,0,1,1.6316.8158l-2.96428,5.92857A.91214.91214,0,0,1,30.64073,359.753Z"
fill="#1f1f1f"
id="path26" />
<path
d="M22.94242,359.753a3.87637,3.87637,0,1,1,2.32653-6.97719.91209.91209,0,1,1-1.09557,1.45854,2.034,2.034,0,0,0-1.231-.40991,2.0522,2.0522,0,1,0,0,4.10439,2.034,2.034,0,0,0,1.231-.40991.91209.91209,0,1,1,1.09557,1.45854A3.8448,3.8448,0,0,1,22.94242,359.753Z"
fill="#1f1f1f"
id="path28" />
</g>
</g>
<g
id="fb31f872-9bbc-4f1f-8c21-ce6096fd2f54"
data-name="FND TXT">
<g
id="g43">
<path
d="M9.125,162.5376a.5132.5132,0,0,1,1.02637,0v4.43994h2.64648a.46753.46753,0,0,1,0,.93506H9.64258A.50992.50992,0,0,1,9.125,167.395Z"
fill="#1f1f1f"
id="path33" />
<path
d="M14.418,167.395V162.5874a.50991.50991,0,0,1,.51758-.51758H18.333a.46363.46363,0,0,1,.459.45948.45812.45812,0,0,1-.459.459H15.44434v1.519H17.957a.465.465,0,0,1,.459.46729.4561.4561,0,0,1-.459.45068H15.44434v1.56934H18.374a.4634.4634,0,0,1,.46.459.458.458,0,0,1-.46.459H14.93555A.50991.50991,0,0,1,14.418,167.395Z"
fill="#1f1f1f"
id="path35" />
<path
d="M21.93457,167.57861,19.88965,162.771a.57639.57639,0,0,1-.0586-.2417.50612.50612,0,0,1,.51758-.501.53806.53806,0,0,1,.52637.36719l1.68555,4.21484,1.71093-4.24805a.53054.53054,0,0,1,.49317-.334.497.497,0,0,1,.50879.49219.60645.60645,0,0,1-.04981.21728l-2.05371,4.84082a.61173.61173,0,0,1-.59277.41748h-.05762A.60906.60906,0,0,1,21.93457,167.57861Z"
fill="#1f1f1f"
id="path37" />
<path
d="M26.457,167.395V162.5874a.50992.50992,0,0,1,.51758-.51758h3.39746a.46363.46363,0,0,1,.459.45948.45812.45812,0,0,1-.459.459H27.4834v1.519h2.51269a.465.465,0,0,1,.459.46729.4561.4561,0,0,1-.459.45068H27.4834v1.56934h2.92969a.4634.4634,0,0,1,.46.459.458.458,0,0,1-.46.459H26.97461A.50992.50992,0,0,1,26.457,167.395Z"
fill="#1f1f1f"
id="path39" />
<path
d="M32.21,162.5376a.5132.5132,0,0,1,1.02637,0v4.43994h2.64648a.46753.46753,0,0,1,0,.93506H32.72754A.50992.50992,0,0,1,32.21,167.395Z"
fill="#1f1f1f"
id="path41" />
</g>
<g
id="g53">
<path
d="M11.35938,314.66113a.51737.51737,0,0,1,.52148-.52148h.11523a.53563.53563,0,0,1,.47461.27051l1.25977,2.05273,1.26758-2.05957a.51.51,0,0,1,.46679-.26367h.11524a.51738.51738,0,0,1,.52148.52148v3.7666a.51808.51808,0,1,1-1.03613,0v-2.36425l-.915,1.40918a.48793.48793,0,0,1-.86719,0l-.90039-1.38868v2.35743a.50925.50925,0,0,1-.51562.5083.50323.50323,0,0,1-.50781-.5083Z"
fill="#f0f0f0"
id="path45" />
<path
d="M17.24805,316.55127v-.01367a2.52165,2.52165,0,0,1,5.041-.01319v.01319a2.52166,2.52166,0,0,1-5.041.01367Zm3.95019,0v-.01367a1.44036,1.44036,0,0,0-1.43652-1.49024,1.41759,1.41759,0,0,0-1.42188,1.477v.01319a1.44058,1.44058,0,0,0,1.43555,1.49072A1.41866,1.41866,0,0,0,21.19824,316.55127Z"
fill="#f0f0f0"
id="path47" />
<path
d="M23.43652,314.66113a.51677.51677,0,0,1,.52149-.52148h.1084a.64689.64689,0,0,1,.542.30469l2.01269,2.64209v-2.44581a.51465.51465,0,0,1,1.0293,0v3.77344a.51779.51779,0,0,1-.52148.522h-.03418a.64611.64611,0,0,1-.542-.30518L24.46582,315.894v2.54053a.51465.51465,0,1,1-1.0293,0Z"
fill="#f0f0f0"
id="path49" />
<path
d="M28.79688,316.55127v-.01367a2.52114,2.52114,0,0,1,5.04-.01319v.01319a2.52115,2.52115,0,0,1-5.04.01367Zm3.94921,0v-.01367a1.44016,1.44016,0,0,0-1.43554-1.49024,1.41858,1.41858,0,0,0-1.42383,1.477v.01319a1.44157,1.44157,0,0,0,1.4375,1.49072A1.41786,1.41786,0,0,0,32.74609,316.55127Z"
fill="#f0f0f0"
id="path51" />
</g>
<g
id="g63">
<path
d="M12.291,220.74121v-.01367a2.39977,2.39977,0,0,1,2.44531-2.45264,2.48546,2.48546,0,0,1,1.626.53516.41493.41493,0,0,1,.16309.332.40483.40483,0,0,1-.41309.40674.40992.40992,0,0,1-.251-.08154,1.72033,1.72033,0,0,0-1.13086-.42676,1.59619,1.59619,0,0,0-1.56543,1.67334v.01367a1.59823,1.59823,0,0,0,1.56543,1.68017,1.69971,1.69971,0,0,0,1.18555-.4541.37652.37652,0,0,1,.25-.09472.38889.38889,0,0,1,.25781.68408,2.42226,2.42226,0,0,1-1.72071.63672A2.38533,2.38533,0,0,1,12.291,220.74121Z"
fill="#1f1f1f"
id="path55" />
<path
d="M17.708,218.73535a.41652.41652,0,0,1,.833,0v1.59229h2.26367v-1.59229a.41652.41652,0,0,1,.833,0v3.98389a.41652.41652,0,0,1-.833,0V221.1001H18.541v1.61914a.41652.41652,0,0,1-.833,0Z"
fill="#1f1f1f"
id="path57" />
<path
d="M22.71875,222.55664l1.76172-3.92969a.52761.52761,0,0,1,.501-.33838h.041a.51866.51866,0,0,1,.49414.33838l1.76172,3.92969a.36092.36092,0,0,1,.04785.17627.3914.3914,0,0,1-.39355.3999.42892.42892,0,0,1-.40625-.2915l-.38575-.8877H23.83691l-.40039.91455a.4005.4005,0,0,1-.38574.26465.38185.38185,0,0,1-.38574-.38672A.42271.42271,0,0,1,22.71875,222.55664Zm3.10254-1.34131-.833-1.91748-.833,1.91748Z"
fill="#1f1f1f"
id="path59" />
<path
d="M28.35938,218.749a.41741.41741,0,0,1,.41992-.41992h.08789a.52316.52316,0,0,1,.43359.24414l2.37207,3.06885v-2.91357a.40968.40968,0,0,1,.81934,0v3.98388a.40484.40484,0,0,1-.40625.41358h-.03418a.52425.52425,0,0,1-.4336-.251l-2.43847-3.15723v3.0083a.41017.41017,0,0,1-.82031,0Z"
fill="#1f1f1f"
id="path61" />
</g>
<g
id="g73">
<path
d="M13.52148,266.64209a.41363.41363,0,0,1,.41993-.42041H15.3916a1.59165,1.59165,0,0,1,1.80176,1.58545v.01367c0,1.064-.85352,1.61914-1.89648,1.61914h-.94239v1.145a.41652.41652,0,0,1-.833,0Zm1.80176,2.0459c.63086,0,1.02344-.35205,1.02344-.84717v-.01318c0-.55567-.39941-.84717-1.02344-.84717h-.96875V268.688Z"
fill="#1f1f1f"
id="path65" />
<path
d="M18.0625,268.60645v-.01319a2.47973,2.47973,0,0,1,4.959-.01367v.01367a2.47973,2.47973,0,0,1-4.959.01319Zm4.085,0v-.01319a1.62443,1.62443,0,0,0-1.6123-1.687,1.6023,1.6023,0,0,0-1.59864,1.67334v.01367a1.61919,1.61919,0,0,0,1.61231,1.68018A1.59663,1.59663,0,0,0,22.14746,268.60645Z"
fill="#1f1f1f"
id="path67" />
<path
d="M24.23926,266.60156a.41652.41652,0,0,1,.833,0v3.604h2.14746a.3794.3794,0,1,1,0,.75879H24.65918a.41351.41351,0,0,1-.41992-.41993Z"
fill="#1f1f1f"
id="path69" />
<path
d="M29.31055,269.12158l-1.63282-2.24267a.51727.51727,0,0,1-.09472-.291.40576.40576,0,0,1,.41992-.3999.48044.48044,0,0,1,.40723.25049l1.32031,1.90429,1.3418-1.91113a.47924.47924,0,0,1,.39941-.25049.39579.39579,0,0,1,.40723.40674.50677.50677,0,0,1-.11524.29785l-1.61914,2.21582v1.4834a.417.417,0,0,1-.834,0Z"
fill="#1f1f1f"
id="path71" />
</g>
<g
id="g81">
<path
d="M9.06934,27.30957a.90046.90046,0,0,1-.36329-.72559.88667.88667,0,0,1,.90137-.88867.93132.93132,0,0,1,.55078.1753,3.6939,3.6939,0,0,0,2.23926.78808c.78809,0,1.26367-.313,1.26367-.82568v-.0249c0-.4878-.2998-.73829-1.76367-1.11377-1.76465-.4502-2.90332-.93848-2.90332-2.67774v-.0249c0-1.58887,1.27637-2.64014,3.06543-2.64014a5.083,5.083,0,0,1,2.77734.77588.89164.89164,0,0,1-.47461,1.65186.92569.92569,0,0,1-.48828-.1377,3.64714,3.64714,0,0,0-1.83984-.58838c-.73828,0-1.126.33789-1.126.76319v.02539c0,.57519.376.76318,1.88965,1.15088,1.77637.46289,2.77735,1.10107,2.77735,2.62744v.02539c0,1.73926-1.32618,2.71484-3.21485,2.71484A5.65279,5.65279,0,0,1,9.06934,27.30957Z"
fill="#1f1f1f"
id="path75" />
<path
d="M17.20508,24.48145V20.36523a.96338.96338,0,0,1,1.92676,0v4.06641c0,1.42627.71386,2.16455,1.88964,2.16455,1.17676,0,1.88965-.71338,1.88965-2.102V20.36523a.96338.96338,0,0,1,1.92676,0V24.419c0,2.65283-1.48926,3.9541-3.84082,3.9541C18.64453,28.37305,17.20508,27.05908,17.20508,24.48145Z"
fill="#1f1f1f"
id="path77" />
<path
d="M26.99121,20.39014a.95618.95618,0,0,1,.96387-.96338H28.168a.99167.99167,0,0,1,.876.50049l2.32714,3.7915L33.71094,19.915a.942.942,0,0,1,.86328-.48828h.21191a.95618.95618,0,0,1,.96387.96338v6.95654a.95705.95705,0,1,1-1.91406,0V22.98047L32.14648,25.583a.90119.90119,0,0,1-1.60156,0l-1.66406-2.56543v4.35449a.94033.94033,0,0,1-.95117.93848.92956.92956,0,0,1-.93848-.93848Z"
fill="#1f1f1f"
id="path79" />
</g>
</g>
<g
inkscape:label="Layer 1"
id="aea13535-2995-48dc-be35-21ac33feada0"
data-name="components"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-8.01071,-5.675522)">
<path
inkscape:connector-curvature="0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="M 8.104408,5.769232 H 23.156731 V 134.08249 H 8.104408 Z m 0,0"
id="path10665" />
<path
inkscape:connector-curvature="0"
style="fill:#ababab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="M 23.250428,5.675523 H 8.01071 V 134.17622 H 23.250428 Z M 23.063033,133.98879 H 8.196765 V 5.862936 h 14.866268 z m 0,0"
id="path10667" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 11.639405,70.855001 c 0,0.08819 0.06615,0.15434 0.15434,0.15434 h 0.931554 c 0.07717,0 0.143316,-0.06063 0.143316,-0.137804 0,-0.07717 -0.06615,-0.137804 -0.143316,-0.137804 h -0.782725 v -1.317404 c 0,-0.08268 -0.06615,-0.148828 -0.148829,-0.148828 -0.08819,0 -0.15434,0.06615 -0.15434,0.148828 z m 0,0"
id="path12217" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 13.376165,71.009341 h 1.019749 c 0.07166,0 0.132291,-0.06063 0.132291,-0.137804 0,-0.07166 -0.06063,-0.132292 -0.132291,-0.132292 h -0.87092 v -0.468533 h 0.74414 c 0.07717,0 0.137804,-0.05512 0.137804,-0.132291 0,-0.07717 -0.06063,-0.137804 -0.137804,-0.137804 h -0.74414 v -0.446484 h 0.854383 c 0.07717,0 0.137804,-0.06063 0.137804,-0.137804 0,-0.07166 -0.06063,-0.137804 -0.137804,-0.137804 h -1.003212 c -0.08819,0 -0.15434,0.06615 -0.15434,0.15434 v 1.422136 c 0,0.08819 0.06615,0.15434 0.15434,0.15434 z m 0,0"
id="path12221" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 15.637815,71.03139 h 0.01654 c 0.08268,0 0.143316,-0.0441 0.176389,-0.121268 l 0.606337,-1.43316 c 0.0055,-0.01654 0.01102,-0.03858 0.01102,-0.06063 0,-0.08268 -0.06615,-0.148828 -0.148828,-0.148828 -0.07166,0 -0.126779,0.04961 -0.143316,0.09922 l -0.507118,1.256771 -0.501606,-1.245746 c -0.02205,-0.06615 -0.07717,-0.110243 -0.15434,-0.110243 -0.08819,0 -0.15434,0.06615 -0.15434,0.148828 0,0.02756 0.01102,0.04961 0.02205,0.07166 l 0.600825,1.422135 c 0.03307,0.07717 0.0882,0.121268 0.176389,0.121268 z m 0,0"
id="path12225" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 16.969948,71.009341 h 1.019749 c 0.07166,0 0.132291,-0.06063 0.132291,-0.137804 0,-0.07166 -0.06063,-0.132292 -0.132291,-0.132292 h -0.87092 v -0.468533 h 0.74414 c 0.07717,0 0.137804,-0.05512 0.137804,-0.132291 0,-0.07717 -0.06063,-0.137804 -0.137804,-0.137804 h -0.74414 v -0.446484 h 0.854383 c 0.07717,0 0.137804,-0.06063 0.137804,-0.137804 0,-0.07166 -0.06063,-0.137804 -0.137804,-0.137804 h -1.003212 c -0.08819,0 -0.15434,0.06615 -0.15434,0.15434 v 1.422136 c 0,0.08819 0.06615,0.15434 0.15434,0.15434 z m 0,0"
id="path12229" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 18.533865,70.855001 c 0,0.08819 0.06615,0.15434 0.15434,0.15434 h 0.931554 c 0.07717,0 0.143316,-0.06063 0.143316,-0.137804 0,-0.07717 -0.06615,-0.137804 -0.143316,-0.137804 h -0.782725 v -1.317404 c 0,-0.08268 -0.06615,-0.148828 -0.148829,-0.148828 -0.08819,0 -0.15434,0.06615 -0.15434,0.148828 z m 0,0"
id="path12233" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 13.945417,52.200871 c 0.496094,0 0.843359,-0.380339 0.843359,-0.832335 0,-0.451997 -0.341753,-0.826823 -0.837847,-0.826823 -0.490582,0 -0.837847,0.374826 -0.837847,0.826823 v 0.0055 c 0,0.451996 0.341753,0.826823 0.832335,0.826823 z m 0.0055,-0.259071 c -0.319705,0 -0.545703,-0.259072 -0.545703,-0.573264 0,-0.314193 0.225998,-0.567752 0.540191,-0.567752 0.319705,0 0.545703,0.259071 0.545703,0.567752 v 0.0055 c 0,0.314193 -0.220486,0.567752 -0.540191,0.567752 z m 0,0"
id="path12237" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 15.864325,52.200871 c 0.418924,0 0.689019,-0.242535 0.689019,-0.722092 v -0.782726 c 0,-0.07717 -0.06063,-0.137804 -0.137804,-0.137804 -0.08268,0 -0.143316,0.06063 -0.143316,0.137804 v 0.79375 c 0,0.297656 -0.15434,0.446484 -0.402387,0.446484 -0.253559,0 -0.407899,-0.159852 -0.407899,-0.457508 v -0.782726 c 0,-0.07717 -0.06063,-0.137804 -0.137804,-0.137804 -0.08268,0 -0.143316,0.06063 -0.143316,0.137804 v 0.79375 c 0,0.468533 0.264583,0.711068 0.683507,0.711068 z m 0,0"
id="path12241" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 17.402084,52.04653 c 0,0.07717 0.06615,0.137804 0.143316,0.137804 0.07717,0 0.143316,-0.06063 0.143316,-0.137804 v -1.218185 h 0.391363 c 0.07166,0 0.126779,-0.06063 0.126779,-0.12678 0,-0.07166 -0.05512,-0.132292 -0.126779,-0.132292 h -1.069358 c -0.07166,0 -0.12678,0.06063 -0.12678,0.132292 0,0.06615 0.05512,0.12678 0.12678,0.12678 h 0.391363 z m 0,0"
id="path12245" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 12.364443,20.615175 c 0,0.08268 0.06615,0.148828 0.15434,0.148828 0.08268,0 0.148829,-0.06615 0.148829,-0.148828 v -0.418923 h 0.347265 c 0.380339,0 0.689019,-0.20395 0.689019,-0.589801 v -0.0055 c 0,-0.347266 -0.253559,-0.578776 -0.655946,-0.578776 h -0.529167 c -0.08819,0 -0.15434,0.06615 -0.15434,0.15434 z m 0.303169,-0.694531 v -0.617361 h 0.352777 c 0.231511,0 0.374827,0.104731 0.374827,0.30868 0,0.181901 -0.143316,0.308681 -0.374827,0.308681 z m 0,0"
id="path12249" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 14.918625,20.78054 c 0.529167,0 0.903993,-0.4079 0.903993,-0.892969 v -0.0055 c 0,-0.48507 -0.369314,-0.887457 -0.898481,-0.887457 -0.529166,0 -0.909505,0.407899 -0.909505,0.892969 v 0.0055 c 0,0.48507 0.374826,0.887457 0.903993,0.887457 z m 0.0055,-0.28112 c -0.341753,0 -0.5898,-0.275608 -0.5898,-0.611849 v -0.0055 c 0,-0.336242 0.242535,-0.606337 0.584288,-0.606337 0.341754,0 0.5898,0.275608 0.5898,0.611849 v 0.0055 c 0,0.336241 -0.242534,0.606337 -0.584288,0.606337 z m 0,0"
id="path12253" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 16.261967,20.598639 c 0,0.08819 0.06615,0.15434 0.15434,0.15434 h 0.931554 c 0.07717,0 0.143316,-0.06063 0.143316,-0.137804 0,-0.07717 -0.06615,-0.137804 -0.143316,-0.137804 h -0.782725 v -1.317404 c 0,-0.08268 -0.06615,-0.148828 -0.148829,-0.148828 -0.08819,0 -0.15434,0.06614 -0.15434,0.148828 z m 0,0"
id="path12257" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 18.109491,20.615175 c 0,0.08268 0.06615,0.148828 0.148828,0.148828 0.08819,0 0.15434,-0.06615 0.15434,-0.148828 v -0.540191 l 0.589801,-0.810286 c 0.02205,-0.02756 0.03859,-0.06615 0.03859,-0.104731 0,-0.08268 -0.05512,-0.148828 -0.148829,-0.148828 -0.06063,0 -0.10473,0.03307 -0.143315,0.08819 l -0.490582,0.700044 -0.479557,-0.694532 c -0.03859,-0.05512 -0.08268,-0.09371 -0.148829,-0.09371 -0.08819,0 -0.15434,0.06614 -0.15434,0.148828 0,0.03858 0.01654,0.07166 0.03859,0.104731 l 0.595313,0.815798 z m 0,0"
id="path12261" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 12.796313,36.43435 c 0.28112,0 0.463021,-0.08819 0.628386,-0.231511 0.02756,-0.02205 0.04961,-0.06063 0.04961,-0.104731 0,-0.07717 -0.06615,-0.143316 -0.143316,-0.143316 -0.03858,0 -0.07166,0.01654 -0.09371,0.03307 -0.12678,0.110243 -0.248047,0.165365 -0.429948,0.165365 -0.330729,0 -0.573264,-0.270096 -0.573264,-0.611849 v -0.0055 c 0,-0.336242 0.242535,-0.606337 0.573264,-0.606337 0.165364,0 0.292144,0.05512 0.413411,0.15434 0.01654,0.01654 0.0441,0.02756 0.0882,0.02756 0.08268,0 0.148828,-0.06063 0.148828,-0.148828 0,-0.04961 -0.02205,-0.09371 -0.05512,-0.121267 -0.15434,-0.115756 -0.325217,-0.192926 -0.595312,-0.192926 -0.523655,0 -0.892969,0.402387 -0.892969,0.892969 v 0.0055 c 0,0.496094 0.380339,0.887457 0.881944,0.887457 z m 0,0"
id="path12265" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 13.884898,36.268985 c 0,0.08268 0.06615,0.148828 0.15434,0.148828 0.08268,0 0.148829,-0.06615 0.148829,-0.148828 v -0.5898 h 0.826823 v 0.5898 c 0,0.08268 0.06615,0.148828 0.148828,0.148828 0.08819,0 0.15434,-0.06615 0.15434,-0.148828 v -1.455208 c 0,-0.08268 -0.06615,-0.148828 -0.15434,-0.148828 -0.08268,0 -0.148828,0.06614 -0.148828,0.148828 v 0.584288 h -0.826823 v -0.584288 c 0,-0.08268 -0.06615,-0.148828 -0.148829,-0.148828 -0.08819,0 -0.15434,0.06614 -0.15434,0.148828 z m 0,0"
id="path12269" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 15.690335,36.280009 c 0,0.07717 0.06063,0.137804 0.137804,0.137804 0.06615,0 0.115755,-0.03307 0.143316,-0.09371 l 0.143316,-0.336242 h 0.843359 l 0.137804,0.325217 c 0.02756,0.06615 0.07717,0.104731 0.148828,0.104731 0.08268,0 0.143316,-0.06063 0.143316,-0.143316 0,-0.02205 -0.0055,-0.0441 -0.01654,-0.06615 L 16.72662,34.775192 c -0.03307,-0.07717 -0.09371,-0.121268 -0.176389,-0.121268 h -0.01654 c -0.08819,0 -0.148828,0.0441 -0.181901,0.121268 l -0.644922,1.433159 c -0.01102,0.02756 -0.01654,0.04961 -0.01654,0.07166 z m 0.540191,-0.562239 0.303168,-0.694531 0.308681,0.694531 z m 0,0"
id="path12273" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 17.759429,36.268985 c 0,0.08268 0.06615,0.148828 0.15434,0.148828 0.07717,0 0.148829,-0.06615 0.148829,-0.148828 v -1.096918 l 0.887456,1.15204 c 0.03858,0.05512 0.08268,0.09371 0.15434,0.09371 h 0.01654 c 0.08268,0 0.148828,-0.06615 0.148828,-0.15434 v -1.449696 c 0,-0.08268 -0.06615,-0.148828 -0.15434,-0.148828 -0.08268,0 -0.148828,0.06614 -0.148828,0.148828 v 1.063845 l -0.859896,-1.118967 c -0.0441,-0.05512 -0.08819,-0.08819 -0.159853,-0.08819 h -0.03307 c -0.08819,0 -0.15434,0.06615 -0.15434,0.148828 z m 0,0"
id="path12277" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 12.202333,15.285096 c 0.63941,0 1.085894,-0.330729 1.085894,-0.920529 v -0.01103 c 0,-0.51263 -0.336241,-0.727604 -0.937066,-0.887456 -0.51263,-0.132292 -0.639409,-0.192926 -0.639409,-0.385851 v -0.01102 c 0,-0.143316 0.126779,-0.259072 0.380338,-0.259072 0.20395,0 0.407899,0.07166 0.622873,0.198438 0.04961,0.03307 0.09922,0.04961 0.165365,0.04961 0.165365,0 0.303168,-0.132291 0.303168,-0.303168 0,-0.12678 -0.07166,-0.214974 -0.143316,-0.259071 -0.270095,-0.165365 -0.578776,-0.259071 -0.942578,-0.259071 -0.606337,0 -1.036284,0.352777 -1.036284,0.892968 v 0.0055 c 0,0.5898 0.38585,0.755164 0.981163,0.909505 0.496094,0.126779 0.600824,0.209462 0.600824,0.374826 v 0.01102 c 0,0.170877 -0.165364,0.275608 -0.429947,0.275608 -0.286632,0 -0.534679,-0.09922 -0.755165,-0.264583 -0.0441,-0.03307 -0.104731,-0.06063 -0.187414,-0.06063 -0.170876,0 -0.30868,0.132292 -0.30868,0.303169 0,0.09922 0.05512,0.192925 0.126779,0.242534 0.330729,0.237023 0.722092,0.35829 1.113455,0.35829 z m 0,0"
id="path12281" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 15.1232,15.285096 c 0.79375,0 1.300868,-0.43546 1.300868,-1.333941 v -1.372526 c 0,-0.181901 -0.148828,-0.325217 -0.330729,-0.325217 -0.181901,0 -0.325217,0.143316 -0.325217,0.325217 v 1.394575 c 0,0.474045 -0.242535,0.711068 -0.63941,0.711068 -0.396875,0 -0.639409,-0.248047 -0.639409,-0.727605 v -1.378038 c 0,-0.181901 -0.143316,-0.325217 -0.325217,-0.325217 -0.181901,0 -0.325217,0.143316 -0.325217,0.325217 v 1.394575 c 0,0.87092 0.485069,1.311892 1.284331,1.311892 z m 0,0"
id="path12285" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 17.152378,14.948855 c 0,0.176389 0.137804,0.319705 0.314193,0.319705 0.176389,0 0.319705,-0.143316 0.319705,-0.319705 V 13.47711 l 0.567751,0.865408 c 0.06615,0.104731 0.148828,0.165365 0.270096,0.165365 0.115755,0 0.20395,-0.06063 0.270095,-0.165365 l 0.573264,-0.881944 v 1.477257 c 0,0.181901 0.143316,0.330729 0.319705,0.330729 0.181901,0 0.325217,-0.148828 0.325217,-0.330729 v -2.35369 c 0,-0.181901 -0.143316,-0.325217 -0.325217,-0.325217 h -0.07166 c -0.132292,0 -0.225998,0.05512 -0.292144,0.165365 l -0.79375,1.289844 -0.788238,-1.284332 c -0.05512,-0.09922 -0.15434,-0.170877 -0.292144,-0.170877 h -0.07166 c -0.181901,0 -0.325217,0.143316 -0.325217,0.325217 z m 0,0"
id="path12289" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 16.200411,126.15053 c 0,0.22186 -0.179175,0.401 -0.401038,0.401 -0.220486,0 -0.399626,-0.17914 -0.399626,-0.401 0,-0.22187 0.17914,-0.40104 0.399626,-0.40104 0.221863,0 0.401038,0.17917 0.401038,0.40104"
id="path10911" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 12.876574,127.4762 c -0.115746,0 -0.223238,-0.0661 -0.274249,-0.16952 l -1.003195,-2.00504 c -0.07581,-0.15297 -0.01376,-0.33761 0.137795,-0.41342 0.151589,-0.0772 0.337609,-0.0152 0.413421,0.13783 l 0.726228,1.45245 0.727604,-1.45245 c 0.07578,-0.15297 0.261832,-0.21499 0.413421,-0.13783 0.152964,0.0758 0.214947,0.26045 0.137795,0.41342 l -1.001854,2.00504 c -0.05235,0.10337 -0.159844,0.16952 -0.276966,0.16952"
id="path10913" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 18.383224,127.4762 c -0.117158,0 -0.223274,-0.0661 -0.275626,-0.16952 l -1.003194,-2.00504 c -0.07581,-0.15297 -0.01376,-0.33761 0.139171,-0.41342 0.151589,-0.0772 0.337608,-0.0152 0.413421,0.13783 l 0.726228,1.45245 0.726228,-1.45245 c 0.07578,-0.15297 0.261796,-0.21499 0.413385,-0.13783 0.152965,0.0758 0.214983,0.26045 0.13783,0.41342 l -1.001853,2.00504 c -0.05235,0.10337 -0.158468,0.16952 -0.27559,0.16952"
id="path10915" />
style="display:none">
<circle
id="e71c2f6a-80ae-4d3f-993d-8b31e3464a89"
data-name="Sum#RoundBlackKnob"
cx="22.49996"
cy="189.81477"
r="5"
style="fill:#ff0000" />
<circle
id="f0e67f4f-da74-424e-be98-4acc32b4b484"
data-name="Mono#PJ301MPort"
cx="22.49996"
cy="333.85507"
r="5"
style="fill:#0000ff" />
<circle
id="ab06248d-722e-4beb-8df5-aa2b519cbad8"
data-name="Poly#PJ301MPort"
cx="22.49996"
cy="285.8197"
r="5"
style="fill:#00ff00" />
<rect
id="f44d6e48-6050-4fa6-9b46-ba41a9730e37"
data-name="Chan"
x="10.39802"
y="227.92471"
width="24.20389"
height="24.20389"
style="fill:#ffff00" />
<rect
id="f61601c3-9739-41d0-b635-5ca43072e29e"
data-name="Screen"
x="-0.00327"
y="37.89547"
width="45.003269"
height="109.19598"
style="fill:#ffff00" />
<path
id="b20cdc2b-3590-4f39-ae7a-2cbb28b0cf6b"
data-name="LRed#RedLight"
d="m 31.91516,50.35079 a 2.9572,2.9572 0 1 0 2.95678,2.95761 2.95725,2.95725 0 0 0 -2.95678,-2.95761"
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 15.780112,127.4762 c -0.723477,0 -1.31191,-0.58706 -1.31191,-1.31054 0,-0.72207 0.588433,-1.3105 1.31191,-1.3105 0.286632,0 0.558094,0.0909 0.786835,0.26183 0.135044,0.10333 0.162631,0.29627 0.06064,0.43268 -0.101988,0.13646 -0.294886,0.16401 -0.431341,0.0606 -0.12125,-0.0909 -0.264583,-0.1378 -0.416137,-0.1378 -0.383116,0 -0.694549,0.31143 -0.694549,0.69314 0,0.38312 0.311433,0.69455 0.694549,0.69455 0.151554,0 0.294887,-0.0482 0.416137,-0.13917 0.136455,-0.10199 0.329353,-0.0744 0.431341,0.062 0.101989,0.13646 0.0744,0.32935 -0.06064,0.43134 -0.228741,0.17226 -0.500203,0.26184 -0.786835,0.26184"
id="path10917" />
style="fill:#ff00ff" />
<path
id="adc61a94-6685-4f42-b721-79a2fffe2ed5"
data-name="LYellow#RedLight"
d="M 31.91516,65.993 A 2.9572,2.9572 0 1 0 34.87194,68.95061 2.95724,2.95724 0 0 0 31.91516,65.993"
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 20.470927,109.86486 c 0,-0.54984 -0.449227,-1.00046 -1.000442,-1.00046 h -7.681172 c -0.549839,0 -1.000478,0.45062 -1.000478,1.00046 v 12.17221 c 0,0.54984 0.450639,1.00044 1.000478,1.00044 h 7.681172 c 0.551215,0 1.000442,-0.4506 1.000442,-1.00044 z m 0,0"
id="path10919" />
style="fill:#ff00ff" />
<path
id="b46df729-be42-44fe-82bb-9b9abe55e8a8"
data-name="LGreen1#RedLight"
d="m 31.91516,81.63517 a 2.9572,2.9572 0 1 0 2.95678,2.95761 2.95724,2.95724 0 0 0 -2.95678,-2.95761"
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 11.860579,112.04112 c 0,0.0992 0.07717,0.17087 0.170877,0.17087 0.09922,0 0.176389,-0.0717 0.176389,-0.17087 v -0.79375 l 0.303168,0.46853 c 0.03859,0.0551 0.08268,0.0882 0.148829,0.0882 0.06063,0 0.110243,-0.0331 0.143316,-0.0882 l 0.30868,-0.47956 v 0.79927 c 0,0.0992 0.08268,0.17638 0.176389,0.17638 0.09922,0 0.176389,-0.0772 0.176389,-0.17638 v -1.27331 c 0,-0.0992 -0.07717,-0.17639 -0.176389,-0.17639 h -0.03858 c -0.07166,0 -0.121267,0.0331 -0.159852,0.0882 l -0.424436,0.70005 -0.429948,-0.69453 c -0.03307,-0.0551 -0.08268,-0.0937 -0.159853,-0.0937 h -0.03858 c -0.09922,0 -0.176389,0.0772 -0.176389,0.17639 z m 0,0"
id="path12293" />
style="fill:#ff00ff" />
<path
id="b3259563-173e-40ba-abbe-00631037bd13"
data-name="LGreen2#RedLight"
d="m 31.91516,97.27736 a 2.9572,2.9572 0 1 0 2.95678,2.95761 2.95724,2.95724 0 0 0 -2.95678,-2.95761"
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 14.703845,112.22853 c 0.496094,0 0.859896,-0.37483 0.859896,-0.83233 0,-0.45751 -0.35829,-0.82683 -0.854384,-0.82683 -0.496094,0 -0.854384,0.37483 -0.854384,0.82683 v 0.006 c 0,0.45751 0.35829,0.82682 0.848872,0.82682 z m 0.0055,-0.32522 c -0.28112,0 -0.485069,-0.23151 -0.485069,-0.50711 0,-0.27561 0.198437,-0.50161 0.479557,-0.50161 0.286632,0 0.490582,0.226 0.490582,0.50161 v 0.006 c 0,0.27561 -0.198438,0.5016 -0.48507,0.5016 z m 0,0"
id="path12297" />
style="fill:#ff00ff" />
<path
id="fac160a6-d61a-4098-9d92-09892335b497"
data-name="LGreen3#RedLight"
d="m 31.91516,112.91955 a 2.9572,2.9572 0 1 0 2.95678,2.95761 2.95724,2.95724 0 0 0 -2.95678,-2.95761"
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 15.951408,112.04112 c 0,0.0937 0.07717,0.17087 0.176389,0.17087 0.09371,0 0.170877,-0.0772 0.170877,-0.17087 v -0.8599 l 0.705556,0.92604 c 0.04961,0.0606 0.09922,0.10473 0.187413,0.10473 h 0.01102 c 0.09922,0 0.176389,-0.0772 0.176389,-0.17638 v -1.27882 c 0,-0.0992 -0.07717,-0.17639 -0.176389,-0.17639 -0.09371,0 -0.176389,0.0772 -0.176389,0.17639 v 0.82682 l -0.677995,-0.89297 c -0.04961,-0.0606 -0.09922,-0.10473 -0.181901,-0.10473 h -0.03858 c -0.09922,0 -0.176389,0.0772 -0.176389,0.17639 z m 0,0"
id="path12301" />
style="fill:#ff00ff" />
<path
id="eae08627-6579-421b-a3b2-1220f1bc46ad"
data-name="LGreen4#RedLight"
d="m 31.91516,128.56173 a 2.9572,2.9572 0 1 0 2.95678,2.95762 2.95725,2.95725 0 0 0 -2.95678,-2.95762"
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35277781"
d="m 18.615789,112.22853 c 0.496094,0 0.859896,-0.37483 0.859896,-0.83233 0,-0.45751 -0.35829,-0.82683 -0.854384,-0.82683 -0.496094,0 -0.854384,0.37483 -0.854384,0.82683 v 0.006 c 0,0.45751 0.35829,0.82682 0.848872,0.82682 z m 0.0055,-0.32522 c -0.28112,0 -0.485069,-0.23151 -0.485069,-0.50711 0,-0.27561 0.198437,-0.50161 0.479557,-0.50161 0.286632,0 0.490582,0.226 0.490582,0.50161 v 0.006 c 0,0.27561 -0.198438,0.5016 -0.48507,0.5016 z m 0,0"
id="path12305" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="widgets"
style="display:none">
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle60361"
cx="4.6191578"
cy="33.595188"
r="0.5" />
<circle
r="0.5"
cy="33.595188"
cx="6.6186924"
id="circle60363"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle60365"
cx="8.6189232"
cy="33.595188"
r="0.5" />
<circle
r="0.5"
cy="33.595188"
cx="10.619147"
id="circle60367"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
r="0.5"
cy="35.594723"
cx="4.6191578"
id="circle60369"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle60371"
cx="6.6186924"
cy="35.594723"
r="0.5" />
<circle
r="0.5"
cy="35.594723"
cx="8.6189232"
id="circle60373"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle60375"
cx="10.619147"
cy="35.594723"
r="0.5" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle60377"
cx="4.6192131"
cy="37.594948"
r="0.5" />
<circle
r="0.5"
cy="37.594948"
cx="6.6187477"
id="circle60379"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle60381"
cx="8.6189785"
cy="37.594948"
r="0.5" />
<circle
r="0.5"
cy="37.594948"
cx="10.619204"
id="circle60383"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
r="0.5"
cy="39.595169"
cx="4.6192131"
id="circle60385"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle60387"
cx="6.6187477"
cy="39.595169"
r="0.5" />
<circle
r="0.5"
cy="39.595169"
cx="8.6189785"
id="circle60389"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.175;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle60391"
cx="10.619204"
cy="39.595169"
r="0.5" />
<circle
r="2"
cy="21.347191"
cx="7.6191711"
id="circle60359"
style="display:inline;opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle13640"
cx="7.6198769"
cy="112.02072"
r="2" />
<circle
r="2"
cy="70.791878"
cx="7.6191654"
id="circle14185"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle14187"
cx="7.6191654"
cy="75.916817"
r="2" />
<circle
r="2"
cy="81.041733"
cx="7.6191654"
id="circle14189"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle14191"
cx="7.6191654"
cy="86.166656"
r="2" />
<circle
r="2"
cy="91.291595"
cx="7.6191654"
id="circle14193"
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle14195"
cx="7.6191654"
cy="96.416512"
r="2" />
<circle
style="display:inline;opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="circle14197"
cx="7.6198769"
cy="53.518875"
r="2" />
style="fill:#ff00ff" />
</g>
</svg>

+ 84
- 0
src/Mixer.cpp View File

@@ -0,0 +1,84 @@
#include "plugin.hpp"


using simd::float_4;


struct Mixer : Module {
enum ParamId {
LEVEL_PARAM,
PARAMS_LEN
};
enum InputId {
ENUMS(IN_INPUTS, 6),
INPUTS_LEN
};
enum OutputId {
OUT_OUTPUT,
OUTPUTS_LEN
};
enum LightId {
LIGHTS_LEN
};

Mixer() {
config(PARAMS_LEN, INPUTS_LEN, OUTPUTS_LEN, LIGHTS_LEN);
configParam(LEVEL_PARAM, 0.f, 1.f, 1.f, "Level", "%", 0, 100);
for (int i = 0; i < 6; i++)
configInput(IN_INPUTS + i, string::f("Channel %d", i + 1));
configOutput(OUT_OUTPUT, "Mix");
}

void process(const ProcessArgs& args) override {
// Get number of channels
int channels = 1;
for (int i = 0; i < 6; i++)
channels = std::max(channels, inputs[IN_INPUTS + i].getChannels());

float gain = params[LEVEL_PARAM].getValue();

// Iterate polyphonic channels
for (int c = 0; c < channels; c += 4) {
float_4 out = 0.f;
// Mix input
for (int i = 0; i < 6; i++) {
out += inputs[IN_INPUTS + i].getVoltageSimd<float_4>(c);
}

// Apply gain
out *= gain;

// Set output
outputs[OUT_OUTPUT].setVoltageSimd(out, c);
}

outputs[OUT_OUTPUT].setChannels(channels);
}
};


struct MixerWidget : ModuleWidget {
MixerWidget(Mixer* module) {
setModule(module);
setPanel(createPanel(asset::plugin(pluginInstance, "res/Mixer.svg")));

addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0)));
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));

addParam(createParamCentered<RoundBlackKnob>(mm2px(Vec(7.62, 24.723)), module, Mixer::LEVEL_PARAM));

addInput(createInputCentered<PJ301MPort>(mm2px(Vec(7.62, 46.059)), module, Mixer::IN_INPUTS + 0));
addInput(createInputCentered<PJ301MPort>(mm2px(Vec(7.62, 56.219)), module, Mixer::IN_INPUTS + 1));
addInput(createInputCentered<PJ301MPort>(mm2px(Vec(7.62, 66.379)), module, Mixer::IN_INPUTS + 2));
addInput(createInputCentered<PJ301MPort>(mm2px(Vec(7.62, 76.539)), module, Mixer::IN_INPUTS + 3));
addInput(createInputCentered<PJ301MPort>(mm2px(Vec(7.62, 86.699)), module, Mixer::IN_INPUTS + 4));
addInput(createInputCentered<PJ301MPort>(mm2px(Vec(7.62, 96.859)), module, Mixer::IN_INPUTS + 5));

addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(7.62, 113.115)), module, Mixer::OUT_OUTPUT));
}
};


Model* modelMixer = createModel<Mixer, MixerWidget>("Mixer");

+ 15
- 7
src/VCF.cpp View File

@@ -68,10 +68,13 @@ static const int UPSAMPLE = 2;
struct VCF : Module {
enum ParamIds {
FREQ_PARAM,
FINE_PARAM, // removed
FINE_PARAM, // removed in 2.0
RES_PARAM,
FREQ_CV_PARAM,
DRIVE_PARAM,
// Added in 2.0
RES_CV_PARAM,
DRIVE_CV_PARAM,
NUM_PARAMS
};
enum InputIds {
@@ -95,11 +98,13 @@ struct VCF : Module {
VCF() {
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS);
// Multiply and offset for backward patch compatibility
configParam(FREQ_PARAM, 0.f, 1.f, 0.5f, "Frequency", " Hz", std::pow(2, 10.f), dsp::FREQ_C4 / std::pow(2, 5.f));
configParam(FREQ_PARAM, 0.f, 1.f, 0.5f, "Cutoff frequency", " Hz", std::pow(2, 10.f), dsp::FREQ_C4 / std::pow(2, 5.f));
configParam(FINE_PARAM, 0.f, 1.f, 0.5f, "Fine frequency");
configParam(RES_PARAM, 0.f, 1.f, 0.f, "Resonance", "%", 0.f, 100.f);
configParam(FREQ_CV_PARAM, -1.f, 1.f, 0.f, "Frequency modulation", "%", 0.f, 100.f);
configParam(RES_CV_PARAM, -1.f, 1.f, 0.f, "Resonance CV", "%", 0.f, 100.f);
configParam(FREQ_CV_PARAM, -1.f, 1.f, 0.f, "Cutoff frequency CV", "%", 0.f, 100.f);
configParam(DRIVE_PARAM, 0.f, 1.f, 0.f, "Drive", "", 0, 11);
configParam(DRIVE_CV_PARAM, -1.f, 1.f, 0.f, "Drive CV", "%", 0, 100);
configInput(FREQ_INPUT, "Frequency");
configInput(RES_INPUT, "Resonance");
configInput(DRIVE_INPUT, "Drive");
@@ -121,7 +126,9 @@ struct VCF : Module {
}

float driveParam = params[DRIVE_PARAM].getValue();
float driveCvParam = params[DRIVE_CV_PARAM].getValue();
float resParam = params[RES_PARAM].getValue();
float resCvParam = params[RES_CV_PARAM].getValue();
float fineParam = params[FINE_PARAM].getValue();
fineParam = dsp::quadraticBipolar(fineParam * 2.f - 1.f) * 7.f / 12.f;
float freqCvParam = params[FREQ_CV_PARAM].getValue();
@@ -137,7 +144,8 @@ struct VCF : Module {
float_4 input = float_4::load(inputs[IN_INPUT].getVoltages(c)) / 5.f;

// Drive gain
float_4 drive = driveParam + inputs[DRIVE_INPUT].getPolyVoltageSimd<float_4>(c) / 10.f;
// TODO Make center of knob unity gain, 0 is off like a VCA
float_4 drive = driveParam + inputs[DRIVE_INPUT].getPolyVoltageSimd<float_4>(c) / 10.f * driveCvParam;
drive = clamp(drive, 0.f, 1.f);
float_4 gain = simd::pow(1.f + drive, 5);
input *= gain;
@@ -146,7 +154,7 @@ struct VCF : Module {
input += 1e-6f * (2.f * random::uniform() - 1.f);

// Set resonance
float_4 resonance = resParam + inputs[RES_INPUT].getPolyVoltageSimd<float_4>(c) / 10.f;
float_4 resonance = resParam + inputs[RES_INPUT].getPolyVoltageSimd<float_4>(c) / 10.f * resCvParam;
resonance = clamp(resonance, 0.f, 1.f);
filter->resonance = simd::pow(resonance, 2) * 10.f;

@@ -208,8 +216,8 @@ struct VCFWidget : ModuleWidget {
addParam(createParamCentered<RoundLargeBlackKnob>(mm2px(Vec(8.895, 56.388)), module, VCF::RES_PARAM));
addParam(createParamCentered<RoundLargeBlackKnob>(mm2px(Vec(26.665, 56.388)), module, VCF::DRIVE_PARAM));
addParam(createParamCentered<Trimpot>(mm2px(Vec(6.996, 80.603)), module, VCF::FREQ_CV_PARAM));
// addParam(createParamCentered<Trimpot>(mm2px(Vec(17.833, 80.603)), module, VCF::RESCV_PARAM));
// addParam(createParamCentered<Trimpot>(mm2px(Vec(28.67, 80.603)), module, VCF::DRIVE_CV_PARAM));
addParam(createParamCentered<Trimpot>(mm2px(Vec(17.833, 80.603)), module, VCF::RES_CV_PARAM));
addParam(createParamCentered<Trimpot>(mm2px(Vec(28.67, 80.603)), module, VCF::DRIVE_CV_PARAM));

addInput(createInputCentered<PJ301MPort>(mm2px(Vec(6.996, 96.813)), module, VCF::FREQ_INPUT));
addInput(createInputCentered<PJ301MPort>(mm2px(Vec(17.833, 96.813)), module, VCF::RES_INPUT));


+ 1
- 0
src/plugin.cpp View File

@@ -15,6 +15,7 @@ void init(Plugin* p) {
p->addModel(modelLFO2);
p->addModel(modelDelay);
p->addModel(modelADSR);
p->addModel(modelMixer);
p->addModel(modelVCMixer);
p->addModel(model_8vert);
p->addModel(modelUnity);


+ 1
- 0
src/plugin.hpp View File

@@ -15,6 +15,7 @@ extern Model* modelLFO;
extern Model* modelLFO2;
extern Model* modelDelay;
extern Model* modelADSR;
extern Model* modelMixer;
extern Model* modelVCMixer;
extern Model* model_8vert;
extern Model* modelUnity;


Loading…
Cancel
Save