Browse Source

First commit

U-SYNTEC\jonge 2 năm trước cách đây
commit
0b47b0f1b6
10 tập tin đã thay đổi với 562 bổ sung0 xóa
  1. 6 0
      .gitignore
  2. 23 0
      Makefile
  3. 33 0
      plugin.json
  4. 55 0
      res/MyModule.svg
  5. 237 0
      res/SSI2164-Mixer1.svg
  6. 22 0
      src/.vscode/c_cpp_properties.json
  7. 55 0
      src/MyAwsomeModule.cpp
  8. 101 0
      src/SSI2164-Mixer1.cpp
  9. 17 0
      src/plugin.cpp
  10. 13 0
      src/plugin.hpp

+ 6 - 0
.gitignore

@@ -0,0 +1,6 @@
+/build
+/dist
+/*.so
+/*.dylib
+/*.dll
+.DS_Store

+ 23 - 0
Makefile

@@ -0,0 +1,23 @@
+# If RACK_DIR is not defined when calling the Makefile, default to two directories above
+RACK_DIR ?= ../..
+
+# FLAGS will be passed to both the C and C++ compiler
+FLAGS +=
+CFLAGS +=
+CXXFLAGS +=
+
+# Careful about linking to shared libraries, since you can't assume much about the user's environment and library search path.
+# Static libraries are fine, but they should be added to this plugin's build system.
+LDFLAGS +=
+
+# Add .cpp files to the build
+SOURCES += $(wildcard src/*.cpp)
+
+# Add files to the ZIP package when running `make dist`
+# The compiled plugin and "plugin.json" are automatically added.
+DISTRIBUTABLES += res
+DISTRIBUTABLES += $(wildcard LICENSE*)
+DISTRIBUTABLES += $(wildcard presets)
+
+# Include the Rack plugin Makefile framework
+include $(RACK_DIR)/plugin.mk

+ 33 - 0
plugin.json

@@ -0,0 +1,33 @@
+{
+  "slug": "JegatronMix",
+  "name": "JegatronMix",
+  "version": "2.0.0",
+  "license": "CC0-1.0",
+  "brand": "JegatronMix",
+  "author": "Jonatan Gezelius",
+  "authorEmail": "boolean.adapter@gmail.com",
+  "authorUrl": "jegatron.se",
+  "pluginUrl": "",
+  "manualUrl": "",
+  "sourceUrl": "",
+  "donateUrl": "",
+  "changelogUrl": "",
+  "modules": [
+    {
+      "slug": "MyAwsomeModule",
+      "name": "MyAwsomeModuleName",
+      "description": "None needed",
+      "tags": [
+        "Mixer"
+      ]
+    },
+    {
+      "slug": "SSI2164-Mixer1",
+      "name": "SSI2164-Mixer1",
+      "description": "Stereo mixer with aux",
+      "tags": [
+        "Mixer"
+      ]
+    }
+  ]
+}

+ 55 - 0
res/MyModule.svg

@@ -0,0 +1,55 @@
+<?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.48mm" height="128.5mm" viewBox="0 0 30.480002 128.50002" version="1.1" id="svg8" inkscape:version="0.92.4 5da689c313, 2019-01-14" sodipodi:docname="MyModule.svg">
+  <defs id="defs2"/>
+  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="338.66683" inkscape:cy="191.1767" inkscape:document-units="mm" inkscape:current-layer="layer2" showgrid="false" units="mm" inkscape:snap-bbox="true" inkscape:snap-page="true" inkscape:bbox-nodes="false" inkscape:snap-bbox-edge-midpoints="false" inkscape:window-width="1600" inkscape:window-height="900" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="0" inkscape:snap-bbox-midpoints="true" inkscape:snap-nodes="false"/>
+  <metadata id="metadata5">
+    <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(0,-168.49998)">
+    <rect style="display:inline;opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.64935839;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" id="rect420" width="30.48" height="128.5" x="5.9211732e-17" y="168.49997"/>
+    <g aria-label="My Module" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888855px;line-height:6.61458302px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="text1229">
+      <path d="m 3.8783293,178.67396 c 0,0.1778 0.1397,0.3175 0.3174999,0.3175 0.1778,0 0.3217334,-0.1397 0.3217334,-0.3175 v -1.4732 l 0.5630333,0.86784 c 0.067733,0.1016 0.1524,0.1651 0.2709333,0.1651 0.1185333,0 0.2032,-0.0635 0.2709333,-0.1651 l 0.5715,-0.88054 v 1.47744 c 0,0.1778 0.1439333,0.32596 0.3217333,0.32596 0.1820333,0 0.3259666,-0.14393 0.3259666,-0.32596 v -2.35374 c 0,-0.18203 -0.1439333,-0.32596 -0.3259666,-0.32596 h -0.071967 c -0.1312333,0 -0.2243666,0.055 -0.2921,0.1651 l -0.7916333,1.28693 -0.7873999,-1.2827 c -0.059267,-0.0974 -0.1566333,-0.16933 -0.2963333,-0.16933 h -0.071967 c -0.1820333,0 -0.3259666,0.14393 -0.3259666,0.32596 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5029"/>
+      <path d="m 7.9515894,179.6561 c 0.3852333,0 0.5757333,-0.17357 0.7662333,-0.635 l 0.7916333,-1.90077 c 0.0127,-0.0296 0.029633,-0.1016 0.029633,-0.1524 0,-0.16933 -0.1397,-0.29633 -0.3048,-0.29633 -0.1651,0 -0.2582333,0.11006 -0.3090333,0.24553 L 8.4511227,178.2337 7.960056,176.9129 c -0.055033,-0.1524 -0.1481666,-0.2413 -0.3090333,-0.2413 -0.1778,0 -0.3175,0.127 -0.3175,0.30903 0,0.0423 0.016933,0.10583 0.033867,0.14817 l 0.7747,1.79493 -0.021167,0.0508 c -0.059267,0.1143 -0.1143,0.13547 -0.2286,0.13547 -0.046567,0 -0.080433,-0.008 -0.1354667,-0.0254 -0.0254,-0.008 -0.055033,-0.0169 -0.1058333,-0.0169 -0.1312333,0 -0.254,0.10584 -0.254,0.26247 0,0.15663 0.1100667,0.23283 0.2032,0.2667 0.1058333,0.0381 0.2074333,0.0593 0.3513667,0.0593 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5031"/>
+      <path d="m 11.303198,178.67396 c 0,0.1778 0.1397,0.3175 0.3175,0.3175 0.1778,0 0.321734,-0.1397 0.321734,-0.3175 v -1.4732 l 0.563033,0.86784 c 0.06773,0.1016 0.1524,0.1651 0.270933,0.1651 0.118534,0 0.2032,-0.0635 0.270934,-0.1651 l 0.5715,-0.88054 v 1.47744 c 0,0.1778 0.143933,0.32596 0.321733,0.32596 0.182033,0 0.325966,-0.14393 0.325966,-0.32596 v -2.35374 c 0,-0.18203 -0.143933,-0.32596 -0.325966,-0.32596 h -0.07197 c -0.131233,0 -0.224366,0.055 -0.2921,0.1651 l -0.791633,1.28693 -0.7874,-1.2827 c -0.05927,-0.0974 -0.156633,-0.16933 -0.296333,-0.16933 h -0.07197 c -0.182033,0 -0.325967,0.14393 -0.325967,0.32596 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5033"/>
+      <path d="m 16.019925,179.01686 c 0.706967,0 1.2319,-0.52916 1.2319,-1.1811 v -0.008 c 0,-0.65194 -0.5207,-1.17264 -1.223433,-1.17264 -0.706967,0 -1.2319,0.52917 -1.2319,1.1811 v 0.008 c 0,0.65193 0.5207,1.17263 1.223433,1.17263 z m 0.0085,-0.55456 c -0.3556,0 -0.5969,-0.2921 -0.5969,-0.62654 v -0.008 c 0,-0.33444 0.220133,-0.61807 0.588433,-0.61807 0.3556,0 0.5969,0.2921 0.5969,0.62653 v 0.008 c 0,0.33443 -0.220133,0.61807 -0.588433,0.61807 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5035"/>
+      <path d="m 19.999523,176.17206 c 0,-0.1778 -0.143933,-0.32173 -0.321733,-0.32173 -0.1778,0 -0.321733,0.14393 -0.321733,0.32173 v 0.82127 c -0.1524,-0.18203 -0.364067,-0.33867 -0.706967,-0.33867 -0.537633,0 -1.032933,0.41487 -1.032933,1.17264 v 0.008 c 0,0.75777 0.503766,1.17264 1.032933,1.17264 0.334433,0 0.550333,-0.15664 0.706967,-0.3683 v 0.0296 c 0,0.1778 0.143933,0.32173 0.321733,0.32173 0.1778,0 0.321733,-0.14393 0.321733,-0.32173 z m -1.185333,1.0287 c 0.300567,0 0.550333,0.24977 0.550333,0.62654 v 0.008 c 0,0.37677 -0.249766,0.62654 -0.550333,0.62654 -0.300567,0 -0.554567,-0.24977 -0.554567,-0.62654 v -0.008 c 0,-0.381 0.254,-0.62654 0.554567,-0.62654 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5037"/>
+      <path d="m 22.640196,176.99333 c 0,-0.1778 -0.143933,-0.32173 -0.321733,-0.32173 -0.1778,0 -0.321733,0.14393 -0.321733,0.32173 v 0.96943 c 0,0.3048 -0.156634,0.46144 -0.402167,0.46144 -0.245533,0 -0.389467,-0.15664 -0.389467,-0.46144 v -0.96943 c 0,-0.1778 -0.143933,-0.32173 -0.321733,-0.32173 -0.1778,0 -0.321733,0.14393 -0.321733,0.32173 v 1.17263 c 0,0.5207 0.283633,0.84244 0.770466,0.84244 0.325967,0 0.516467,-0.17357 0.664634,-0.36407 v 0.0254 c 0,0.1778 0.143933,0.32173 0.321733,0.32173 0.1778,0 0.321733,-0.14393 0.321733,-0.32173 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5039"/>
+      <path d="m 23.245762,178.66973 c 0,0.1778 0.143933,0.32173 0.321733,0.32173 0.1778,0 0.321734,-0.14393 0.321734,-0.32173 v -2.49767 c 0,-0.1778 -0.143934,-0.32173 -0.321734,-0.32173 -0.1778,0 -0.321733,0.14393 -0.321733,0.32173 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5041"/>
+      <path d="m 25.018403,177.65373 c 0.0508,-0.2921 0.224367,-0.4826 0.491067,-0.4826 0.270933,0 0.440266,0.19473 0.478366,0.4826 z m 1.341967,1.08797 c 0.04657,-0.0423 0.08467,-0.10584 0.08467,-0.1905 0,-0.14394 -0.105833,-0.254 -0.249766,-0.254 -0.06773,0 -0.110067,0.0169 -0.156634,0.0508 -0.131233,0.0974 -0.2794,0.1524 -0.4572,0.1524 -0.287866,0 -0.491066,-0.1524 -0.554566,-0.4445 h 1.274233 c 0.169333,0 0.300567,-0.12277 0.300567,-0.30904 0,-0.4699 -0.334434,-1.0922 -1.0922,-1.0922 -0.6604,0 -1.121834,0.5334 -1.121834,1.1811 v 0.008 c 0,0.69427 0.503767,1.17263 1.185334,1.17263 0.3302,0 0.588433,-0.10583 0.7874,-0.27516 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5043"/>
+    </g>
+    <g aria-label="Pitch" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.93888855px;line-height:6.61458302px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="text4944" transform="translate(0,10.583334)">
+      <path d="m 10.377818,215.46915 c 0,0.0593 0.0508,0.11007 0.110067,0.11007 0.05927,0 0.110067,-0.0508 0.110067,-0.11007 v -1.01176 h 0.8001 c 0.618066,0 1.155699,-0.32174 1.155699,-0.94404 v -0.008 c 0,-0.5715 -0.448733,-0.90594 -1.100666,-0.90594 h -0.9652 c -0.05927,0 -0.110067,0.0508 -0.110067,0.11007 z m 0.220134,-1.21496 v -1.45204 h 0.8382 c 0.533399,0 0.897466,0.24554 0.897466,0.71544 v 0.008 c 0,0.44027 -0.372533,0.72814 -0.922866,0.72814 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5046" inkscape:connector-curvature="0"/>
+      <path d="m 13.163219,212.73442 c 0,0.072 0.05503,0.127 0.127,0.127 0.07197,0 0.131233,-0.055 0.131233,-0.127 v -0.072 c 0,-0.072 -0.05927,-0.127 -0.131233,-0.127 -0.07197,0 -0.127,0.055 -0.127,0.127 z m 0.0254,2.73897 c 0,0.0635 0.04657,0.10583 0.105833,0.10583 0.05927,0 0.1016,-0.0423 0.1016,-0.10583 v -1.9812 c 0,-0.0635 -0.04657,-0.10584 -0.105833,-0.10584 -0.05927,0 -0.1016,0.0466 -0.1016,0.10584 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5048" inkscape:connector-curvature="0"/>
+      <path d="m 14.928717,215.60039 c 0.122767,0 0.220134,-0.0254 0.3048,-0.055 0.04233,-0.0169 0.06773,-0.0466 0.06773,-0.0889 0,-0.0508 -0.04657,-0.0931 -0.09313,-0.0931 -0.02963,0 -0.09737,0.0423 -0.245533,0.0423 -0.249767,0 -0.4318,-0.11006 -0.4318,-0.4191 v -1.39276 h 0.677333 c 0.0508,0 0.09737,-0.0423 0.09737,-0.0931 0,-0.0508 -0.04657,-0.0974 -0.09737,-0.0974 h -0.677333 v -0.60114 c 0,-0.0593 -0.04657,-0.10583 -0.105833,-0.10583 -0.05927,0 -0.1016,0.0466 -0.1016,0.10583 v 0.60114 h -0.232833 c -0.0508,0 -0.09737,0.0423 -0.09737,0.0931 0,0.0508 0.04657,0.0974 0.09737,0.0974 h 0.232833 v 1.41393 c 0,0.41063 0.270933,0.59267 0.605366,0.59267 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5050" inkscape:connector-curvature="0"/>
+      <path d="m 16.790392,215.61309 c 0.3683,0 0.618067,-0.1524 0.833967,-0.37254 0.01693,-0.0169 0.0254,-0.0423 0.0254,-0.0635 0,-0.0508 -0.0508,-0.1016 -0.1016,-0.1016 -0.02963,0 -0.0508,0.0169 -0.06773,0.0339 -0.173566,0.17357 -0.397933,0.30903 -0.677333,0.30903 -0.4953,0 -0.889,-0.41486 -0.889,-0.93556 v -0.008 c 0,-0.51647 0.381,-0.9271 0.872067,-0.9271 0.2921,0 0.4953,0.1397 0.668866,0.3048 0.01693,0.0169 0.04657,0.0254 0.07197,0.0254 0.05927,0 0.105833,-0.0466 0.105833,-0.10583 0,-0.0296 -0.0127,-0.0593 -0.02963,-0.0762 -0.194733,-0.18204 -0.440267,-0.3429 -0.8128,-0.3429 -0.618067,0 -1.100667,0.52493 -1.100667,1.1303 v 0.008 c 0,0.60537 0.478367,1.12184 1.100667,1.12184 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5052" inkscape:connector-curvature="0"/>
+      <path d="m 18.252215,215.47339 c 0,0.0635 0.04657,0.10583 0.105833,0.10583 0.05927,0 0.1016,-0.0423 0.1016,-0.10583 v -1.15994 c 0,-0.44873 0.325967,-0.77046 0.7493,-0.77046 0.436033,0 0.6858,0.2921 0.6858,0.7366 v 1.1938 c 0,0.0635 0.04657,0.10583 0.105833,0.10583 0.05927,0 0.1016,-0.0423 0.1016,-0.10583 v -1.2319 c 0,-0.51647 -0.3175,-0.889 -0.8636,-0.889 -0.3937,0 -0.635,0.19896 -0.778933,0.45296 v -1.2446 c 0,-0.0593 -0.04657,-0.10583 -0.105833,-0.10583 -0.05927,0 -0.1016,0.0466 -0.1016,0.10583 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5054" inkscape:connector-curvature="0"/>
+    </g>
+    <g aria-label="1V/oct" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.93888855px;line-height:6.61458302px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="text4948" transform="translate(0,5.2916669)">
+      <path d="m 9.6908279,252.06539 c 0,0.0593 0.0508,0.11007 0.1100667,0.11007 0.059267,0 0.1058333,-0.0508 0.1058333,-0.11007 v -2.794 c 0,-0.055 -0.0381,-0.10583 -0.1058333,-0.10583 h -0.00847 c -0.046567,0 -0.0889,0.0127 -0.1354666,0.0296 l -0.5164667,0.1905 c -0.046567,0.0169 -0.080433,0.0423 -0.080433,0.0931 0,0.0508 0.042333,0.0931 0.093133,0.0931 0.016933,0 0.033867,-0.004 0.055033,-0.0127 l 0.4826,-0.1651 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5057" inkscape:connector-curvature="0"/>
+      <path d="m 11.938463,252.18816 h 0.0085 c 0.06773,0 0.105833,-0.0381 0.131233,-0.0974 l 1.210733,-2.7686 c 0.0085,-0.0169 0.0085,-0.0254 0.0085,-0.0423 0,-0.0508 -0.04657,-0.1016 -0.105833,-0.1016 -0.0508,0 -0.0889,0.0381 -0.110067,0.0847 l -1.134533,2.65854 -1.1303,-2.6543 c -0.02117,-0.0508 -0.05927,-0.0889 -0.1143,-0.0889 -0.0635,0 -0.110067,0.055 -0.110067,0.10583 0,0.0212 0,0.0296 0.0085,0.0466 l 1.2065,2.76013 c 0.0254,0.0593 0.0635,0.0974 0.131233,0.0974 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5059" inkscape:connector-curvature="0"/>
+      <path d="m 13.000435,252.62842 c 0,0.0508 0.0381,0.0889 0.0889,0.0889 0.04233,0 0.07197,-0.0254 0.0889,-0.0593 l 1.913466,-3.75074 c 0.0085,-0.0169 0.0127,-0.0381 0.0127,-0.055 0,-0.0508 -0.0381,-0.0889 -0.0889,-0.0889 -0.04233,0 -0.07197,0.0254 -0.0889,0.0593 l -1.913466,3.75073 c -0.0085,0.0169 -0.0127,0.0381 -0.0127,0.055 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5061" inkscape:connector-curvature="0"/>
+      <path d="m 16.153937,252.20932 c 0.643467,0 1.113367,-0.52493 1.113367,-1.1303 v -0.008 c 0,-0.60537 -0.465667,-1.12184 -1.1049,-1.12184 -0.643467,0 -1.113367,0.52494 -1.113367,1.1303 v 0.008 c 0,0.60537 0.465667,1.12183 1.1049,1.12183 z m 0.0085,-0.19473 c -0.499534,0 -0.889,-0.41487 -0.889,-0.93557 v -0.008 c 0,-0.508 0.3683,-0.9271 0.880533,-0.9271 0.499533,0 0.889,0.41486 0.889,0.93556 v 0.008 c 0,0.508 -0.3683,0.9271 -0.880533,0.9271 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5063" inkscape:connector-curvature="0"/>
+      <path d="m 18.861683,252.20932 c 0.3683,0 0.618066,-0.1524 0.833966,-0.37253 0.01693,-0.0169 0.0254,-0.0423 0.0254,-0.0635 0,-0.0508 -0.0508,-0.1016 -0.1016,-0.1016 -0.02963,0 -0.0508,0.0169 -0.06773,0.0339 -0.173567,0.17356 -0.397933,0.30903 -0.677333,0.30903 -0.4953,0 -0.889,-0.41487 -0.889,-0.93557 v -0.008 c 0,-0.51647 0.381,-0.9271 0.872066,-0.9271 0.2921,0 0.4953,0.1397 0.668867,0.3048 0.01693,0.0169 0.04657,0.0254 0.07197,0.0254 0.05927,0 0.105834,-0.0466 0.105834,-0.10584 0,-0.0296 -0.0127,-0.0593 -0.02963,-0.0762 -0.194733,-0.18203 -0.440266,-0.3429 -0.812799,-0.3429 -0.618067,0 -1.100667,0.52494 -1.100667,1.1303 v 0.008 c 0,0.60537 0.478367,1.12183 1.100667,1.12183 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5065" inkscape:connector-curvature="0"/>
+      <path d="m 21.043172,252.19662 c 0.122767,0 0.220133,-0.0254 0.3048,-0.055 0.04233,-0.0169 0.06773,-0.0466 0.06773,-0.0889 0,-0.0508 -0.04657,-0.0931 -0.09313,-0.0931 -0.02963,0 -0.09737,0.0423 -0.245533,0.0423 -0.249767,0 -0.4318,-0.11007 -0.4318,-0.4191 v -1.39277 h 0.677333 c 0.0508,0 0.09737,-0.0423 0.09737,-0.0931 0,-0.0508 -0.04657,-0.0974 -0.09737,-0.0974 h -0.677333 v -0.60113 c 0,-0.0593 -0.04657,-0.10583 -0.105834,-0.10583 -0.05927,0 -0.1016,0.0466 -0.1016,0.10583 v 0.60113 h -0.232833 c -0.0508,0 -0.09737,0.0423 -0.09737,0.0931 0,0.0508 0.04657,0.0974 0.09737,0.0974 h 0.232833 v 1.41394 c 0,0.41063 0.270934,0.59266 0.605367,0.59266 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5067" inkscape:connector-curvature="0"/>
+    </g>
+    <g aria-label="Sine" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.93888855px;line-height:6.61458302px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="text4952">
+      <path d="m 12.236549,288.79709 c 0.5715,0 0.982133,-0.3302 0.982133,-0.80856 v -0.008 c 0,-0.4318 -0.287866,-0.67733 -0.973666,-0.81703 -0.702734,-0.14394 -0.8636,-0.33444 -0.8636,-0.6477 v -0.008 c 0,-0.30903 0.287866,-0.5588 0.7239,-0.5588 0.300566,0 0.5588,0.0804 0.817033,0.2794 0.02117,0.0169 0.04657,0.0254 0.07197,0.0254 0.05927,0 0.110066,-0.0508 0.110066,-0.11007 0,-0.0423 -0.0254,-0.072 -0.04657,-0.0889 -0.270934,-0.2032 -0.5461,-0.3048 -0.944034,-0.3048 -0.550333,0 -0.952499,0.33867 -0.952499,0.77894 v 0.008 c 0,0.44874 0.287866,0.69004 0.999066,0.83397 0.6731,0.13547 0.8382,0.3175 0.8382,0.63077 v 0.008 c 0,0.33867 -0.3048,0.58844 -0.7493,0.58844 -0.4064,0 -0.702733,-0.11854 -0.999066,-0.38524 -0.01693,-0.0127 -0.04233,-0.0254 -0.07197,-0.0254 -0.05927,0 -0.110067,0.0508 -0.110067,0.11007 0,0.0381 0.02117,0.0677 0.04233,0.0847 0.334433,0.27516 0.681566,0.41486 1.126066,0.41486 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5070"/>
+      <path d="m 13.902895,285.92689 c 0,0.072 0.05503,0.127 0.127,0.127 0.07197,0 0.131233,-0.055 0.131233,-0.127 v -0.072 c 0,-0.072 -0.05927,-0.127 -0.131233,-0.127 -0.07197,0 -0.127,0.055 -0.127,0.127 z m 0.0254,2.73897 c 0,0.0635 0.04657,0.10583 0.105833,0.10583 0.05927,0 0.1016,-0.0423 0.1016,-0.10583 v -1.9812 c 0,-0.0635 -0.04657,-0.10583 -0.105833,-0.10583 -0.05927,0 -0.1016,0.0466 -0.1016,0.10583 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5072"/>
+      <path d="m 14.948726,288.66586 c 0,0.0635 0.04657,0.10583 0.105834,0.10583 0.05927,0 0.1016,-0.0423 0.1016,-0.10583 v -1.15993 c 0,-0.44874 0.325966,-0.77047 0.7493,-0.77047 0.436033,0 0.6858,0.2921 0.6858,0.7366 v 1.1938 c 0,0.0635 0.04657,0.10583 0.105833,0.10583 0.05927,0 0.1016,-0.0423 0.1016,-0.10583 v -1.2319 c 0,-0.51647 -0.3175,-0.889 -0.8636,-0.889 -0.3937,0 -0.635,0.19897 -0.778933,0.45297 v -0.31327 c 0,-0.0635 -0.04657,-0.10583 -0.105834,-0.10583 -0.05927,0 -0.1016,0.0466 -0.1016,0.10583 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5074"/>
+      <path d="m 17.616917,287.57366 c 0.0381,-0.47837 0.3683,-0.8382 0.795867,-0.8382 0.4953,0 0.745066,0.40217 0.7747,0.8382 z m 1.680633,0.88053 c 0.0254,-0.0254 0.03387,-0.0508 0.03387,-0.072 0,-0.055 -0.04657,-0.0974 -0.1016,-0.0974 -0.02963,0 -0.0508,0.0127 -0.06773,0.0296 -0.173567,0.16934 -0.389467,0.29634 -0.6985,0.29634 -0.423334,0 -0.808567,-0.31327 -0.846667,-0.8509 h 1.693333 c 0.0508,0 0.1016,-0.0466 0.1016,-0.0974 0,-0.61807 -0.385233,-1.1176 -0.9906,-1.1176 -0.5842,0 -1.024466,0.49953 -1.024466,1.12607 v 0.008 c 0,0.6731 0.491066,1.12607 1.058333,1.12607 0.389467,0 0.630767,-0.1397 0.842433,-0.35137 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.23333311px;font-family:'Gotham Rounded';-inkscape-font-specification:'Gotham Rounded Light';text-align:center;text-anchor:middle;stroke-width:0.26458332px" id="path5076"/>
+    </g>
+  </g>
+  <g inkscape:groupmode="layer" id="layer2" inkscape:label="components">
+    <circle style="display:inline;opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" id="path4954" cx="15.24" cy="46.063263" r="4" inkscape:label="pitch"/>
+    <circle r="4" cy="77.477875" cx="15.24" id="circle4956" style="display:inline;opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" inkscape:label="pitch"/>
+    <circle style="display:inline;opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" id="circle4958" cx="15.24" cy="108.71259" r="4" inkscape:label="sine"/>
+    <circle inkscape:label="blink" r="4" cy="25.80987" cx="15.24" id="circle66" style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"/>
+  </g>
+</svg>

+ 237 - 0
res/SSI2164-Mixer1.svg

@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="185.7636mm"
+   height="128.5mm"
+   viewBox="0 0 185.76361 128.50002"
+   version="1.1"
+   id="svg8"
+   inkscape:version="1.1 (c68e22c387, 2021-05-23)"
+   sodipodi:docname="SSI2164-Mixer1.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:dc="http://purl.org/dc/elements/1.1/">
+  <defs
+     id="defs2" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.49497475"
+     inkscape:cx="639.42656"
+     inkscape:cy="220.21326"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="mm"
+     inkscape:snap-bbox="true"
+     inkscape:snap-page="true"
+     inkscape:bbox-nodes="false"
+     inkscape:snap-bbox-edge-midpoints="false"
+     inkscape:window-width="1600"
+     inkscape:window-height="900"
+     inkscape:window-x="4292"
+     inkscape:window-y="9"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox-midpoints="true"
+     inkscape:snap-nodes="false"
+     inkscape:pagecheckerboard="0" />
+  <metadata
+     id="metadata5">
+    <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>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-168.49997)"
+     style="display:inline">
+    <rect
+       style="display:inline;opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.60309;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="rect420"
+       width="185.7636"
+       height="128.5"
+       x="5.9211732e-17"
+       y="168.49997" />
+    <g
+       aria-label="2164 Mixer"
+       id="text16740"
+       style="font-size:10.5833px;line-height:1.25;stroke-width:0.264583">
+      <path
+         d="m 112.68046,215.72999 h 3.64318 v 0.8785 h -4.89891 v -0.8785 q 0.59427,-0.61494 1.61746,-1.64847 1.02836,-1.03869 1.29191,-1.33841 0.50126,-0.56328 0.69763,-0.95085 0.20154,-0.39274 0.20154,-0.76997 0,-0.61495 -0.43408,-1.00252 -0.42892,-0.38758 -1.12138,-0.38758 -0.49092,0 -1.03869,0.17054 -0.5426,0.17053 -1.16272,0.51676 v -1.0542 q 0.63045,-0.25321 1.17822,-0.3824 0.54777,-0.12919 1.00252,-0.12919 1.19889,0 1.91202,0.59944 0.71314,0.59945 0.71314,1.60197 0,0.47542 -0.18087,0.90433 -0.1757,0.42375 -0.64596,1.00252 -0.12919,0.14986 -0.82165,0.86816 -0.69246,0.71313 -1.95336,1.99987 z"
+         id="path18790" />
+      <path
+         d="m 118.69558,215.72999 h 1.70531 v -5.88592 l -1.85517,0.37207 v -0.95085 l 1.84484,-0.37207 h 1.04386 v 6.83677 h 1.70532 v 0.8785 h -4.44416 z"
+         id="path18792" />
+      <path
+         d="m 127.60973,212.33486 q -0.70279,0 -1.1162,0.48059 -0.40825,0.48059 -0.40825,1.31775 0,0.83198 0.40825,1.31774 0.41341,0.48059 1.1162,0.48059 0.7028,0 1.11104,-0.48059 0.41341,-0.48576 0.41341,-1.31774 0,-0.83716 -0.41341,-1.31775 -0.40824,-0.48059 -1.11104,-0.48059 z m 2.07222,-3.27111 v 0.95085 q -0.39274,-0.18604 -0.79581,-0.28422 -0.39791,-0.0982 -0.79065,-0.0982 -1.03353,0 -1.58129,0.69763 -0.54261,0.69763 -0.62012,2.1084 0.30489,-0.44959 0.76481,-0.6873 0.45992,-0.24288 1.01285,-0.24288 1.16272,0 1.83451,0.70797 0.67696,0.70279 0.67696,1.91719 0,1.18855 -0.7028,1.90685 -0.70279,0.7183 -1.87068,0.7183 -1.33841,0 -2.04638,-1.02319 -0.70796,-1.02836 -0.70796,-2.97655 0,-1.82934 0.86816,-2.91454 0.86816,-1.09037 2.3306,-1.09037 0.39274,0 0.79065,0.0775 0.40307,0.0775 0.83715,0.23254 z"
+         id="path18794" />
+      <path
+         d="m 134.84958,209.80273 -2.63549,4.11859 h 2.63549 z m -0.27389,-0.90951 h 1.31258 v 5.0281 h 1.10071 v 0.86817 h -1.10071 v 1.819 h -1.03869 v -1.819 h -3.48298 v -1.00769 z"
+         id="path18796" />
+      <path
+         d="m 141.98607,208.89322 h 1.55545 l 1.96887,5.25031 1.9792,-5.25031 h 1.55546 v 7.71527 h -1.01803 v -6.77476 l -1.98953,5.29165 h -1.04903 l -1.98954,-5.29165 v 6.77476 h -1.01285 z"
+         id="path18798" />
+      <path
+         d="m 151.07593,210.82075 h 0.95084 v 5.78774 h -0.95084 z m 0,-2.25309 h 0.95084 v 1.20406 h -0.95084 z"
+         id="path18800" />
+      <path
+         d="m 158.82737,210.82075 -2.09289,2.81635 2.20141,2.97139 h -1.12138 l -1.68464,-2.27376 -1.68465,2.27376 h -1.12137 l 2.24791,-3.02823 -2.05671,-2.75951 h 1.12137 l 1.53479,2.06188 1.53478,-2.06188 z"
+         id="path18802" />
+      <path
+         d="m 164.9045,213.47691 v 0.46508 h -4.37182 q 0.062,0.98185 0.58911,1.49862 0.53227,0.51159 1.47795,0.51159 0.54776,0 1.05936,-0.13436 0.51676,-0.13436 1.02319,-0.40307 v 0.89917 q -0.5116,0.21704 -1.04903,0.33072 -0.53743,0.11369 -1.09037,0.11369 -1.38492,0 -2.19624,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.42109 0.76481,-2.25308 0.76998,-0.83716 2.07222,-0.83716 1.16788,0 1.84484,0.75448 0.68213,0.7493 0.68213,2.04121 z m -0.95085,-0.27905 q -0.0103,-0.78032 -0.43924,-1.2454 -0.42375,-0.46509 -1.12655,-0.46509 -0.79581,0 -1.2764,0.44959 -0.47542,0.44958 -0.54777,1.26606 z"
+         id="path18804" />
+      <path
+         d="m 169.81891,211.70958 q -0.1602,-0.093 -0.3514,-0.13436 -0.18604,-0.0465 -0.41341,-0.0465 -0.80615,0 -1.24023,0.5271 -0.42891,0.52193 -0.42891,1.50378 v 3.0489 h -0.95602 v -5.78774 h 0.95602 v 0.89917 q 0.29972,-0.5271 0.78031,-0.78032 0.48059,-0.25838 1.16788,-0.25838 0.0982,0 0.21704,0.0155 0.11886,0.0103 0.26355,0.0362 z"
+         id="path18806" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="components"
+     transform="translate(0,1.0517578e-5)"
+     style="display:none">
+    <circle
+       style="display:inline;opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="path4954"
+       inkscape:label="ch1_aux1"
+       r="4"
+       cy="38.579716"
+       cx="12.567305" />
+    <circle
+       style="display:inline;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="path4954-4"
+       inkscape:label="ch1_aux2"
+       r="4"
+       cy="49.177582"
+       cx="12.294399" />
+    <circle
+       style="display:inline;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="path4954-4-1"
+       inkscape:label="ch1_pan"
+       r="4"
+       cy="59.066551"
+       cx="12.294397" />
+    <circle
+       style="display:inline;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="path4954-4-4"
+       inkscape:label="ch1_mute"
+       r="4"
+       cy="68.688263"
+       cx="12.561668" />
+    <circle
+       style="display:inline;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="path4954-9"
+       inkscape:label="ch1_fad"
+       r="4"
+       cy="101.82968"
+       cx="13.363477" />
+    <circle
+       r="4"
+       cy="17.876768"
+       cx="12.840212"
+       id="circle4956"
+       style="display:inline;opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       inkscape:label="ch1_in" />
+    <circle
+       r="4"
+       cy="28.330561"
+       cx="12.294398"
+       id="circle4956-1"
+       style="display:inline;vector-effect:none;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       inkscape:label="ch1_pan" />
+    <circle
+       r="4"
+       cy="28.063299"
+       cx="141.11832"
+       id="circle4956-8"
+       style="display:inline;vector-effect:none;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       inkscape:label="aux1_return" />
+    <circle
+       r="4"
+       cy="27.79603"
+       cx="159.82718"
+       id="circle4956-7"
+       style="display:inline;vector-effect:none;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       inkscape:label="aux2_return_l" />
+    <circle
+       r="4"
+       cy="27.261494"
+       cx="173.45793"
+       id="circle4956-2"
+       style="display:inline;vector-effect:none;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       inkscape:label="aux2_return_r" />
+    <circle
+       style="display:inline;opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="circle4958"
+       cx="173.19629"
+       cy="112.98891"
+       r="4"
+       inkscape:label="master_out_r" />
+    <circle
+       style="display:inline;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="circle4958-9"
+       cx="156.88721"
+       cy="113.05501"
+       r="4"
+       inkscape:label="master_out_l" />
+    <circle
+       style="display:inline;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="circle4958-4"
+       cx="160.09445"
+       cy="13.096209"
+       r="4"
+       inkscape:label="aux2_send_l" />
+    <circle
+       style="display:inline;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="circle4958-8"
+       cx="172.65611"
+       cy="13.096205"
+       r="4"
+       inkscape:label="aux2_send_r" />
+    <circle
+       style="display:inline;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
+       id="circle4958-97"
+       cx="141.11832"
+       cy="13.363472"
+       r="4"
+       inkscape:label="aux1_send" />
+    <circle
+       inkscape:label="master_led_l"
+       r="4"
+       cy="77.125618"
+       cx="156.09103"
+       id="circle66"
+       style="display:inline;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
+    <circle
+       inkscape:label="blink"
+       r="4"
+       cy="77.775436"
+       cx="171.85431"
+       id="circle66-8"
+       style="display:inline;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
+    <circle
+       inkscape:label="ch1_level"
+       r="4"
+       cy="77.775421"
+       cx="12.561669"
+       id="circle66-7"
+       style="display:inline;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
+  </g>
+</svg>

+ 22 - 0
src/.vscode/c_cpp_properties.json

@@ -0,0 +1,22 @@
+{
+    "configurations": [
+        {
+            "name": "Win32",
+            "includePath": [
+                "${workspaceFolder}/**",
+                "C:\\Users\\JONGE\\Documents\\Synth\\VCVPlugins\\Rack-SDK\\include"
+            ],
+            "defines": [
+                "_DEBUG",
+                "UNICODE",
+                "_UNICODE"
+            ],
+            "windowsSdkVersion": "10.0.19041.0",
+            "compilerPath": "cl.exe",
+            "cStandard": "c17",
+            "cppStandard": "c++17",
+            "intelliSenseMode": "windows-msvc-x64"
+        }
+    ],
+    "version": 4
+}

+ 55 - 0
src/MyAwsomeModule.cpp

@@ -0,0 +1,55 @@
+#include "plugin.hpp"
+
+
+struct MyAwsomeModule : Module {
+	enum ParamId {
+		PITCH_PARAM,
+		PARAMS_LEN
+	};
+	enum InputId {
+		PITCH_INPUT,
+		INPUTS_LEN
+	};
+	enum OutputId {
+		SINE_OUTPUT,
+		OUTPUTS_LEN
+	};
+	enum LightId {
+		BLINK_LIGHT,
+		LIGHTS_LEN
+	};
+
+	MyAwsomeModule() {
+		config(PARAMS_LEN, INPUTS_LEN, OUTPUTS_LEN, LIGHTS_LEN);
+		configParam(PITCH_PARAM, 0.f, 1.f, 0.f, "");
+		configInput(PITCH_INPUT, "");
+		configOutput(SINE_OUTPUT, "");
+	}
+
+	void process(const ProcessArgs& args) override {
+	}
+};
+
+
+struct MyAwsomeModuleWidget : ModuleWidget {
+	MyAwsomeModuleWidget(MyAwsomeModule* module) {
+		setModule(module);
+		setPanel(createPanel(asset::plugin(pluginInstance, "res/MyModule.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(15.24, 46.063)), module, MyAwsomeModule::PITCH_PARAM));
+
+		addInput(createInputCentered<PJ301MPort>(mm2px(Vec(15.24, 77.478)), module, MyAwsomeModule::PITCH_INPUT));
+
+		addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(15.24, 108.713)), module, MyAwsomeModule::SINE_OUTPUT));
+
+		addChild(createLightCentered<MediumLight<RedLight>>(mm2px(Vec(15.24, 25.81)), module, MyAwsomeModule::BLINK_LIGHT));
+	}
+};
+
+
+Model* modelMyAwsomeModule = createModel<MyAwsomeModule, MyAwsomeModuleWidget>("MyAwsomeModule");

+ 101 - 0
src/SSI2164-Mixer1.cpp

@@ -0,0 +1,101 @@
+#include "plugin.hpp"
+#include <componentlibrary.hpp>
+
+
+struct SSI2164_Mixer1 : Module {
+	enum ParamId {
+		CH1_AUX1_PARAM,
+		CH1_AUX2_PARAM,
+		CH1_PAN_PARAM,
+		CH1_MUTE_PARAM,
+		CH1_FAD_PARAM,
+		PARAMS_LEN
+	};
+	enum InputId {
+		CH1_IN_INPUT,
+		CH1_PAN_INPUT,
+		AUX2_RETURN_R_INPUT,
+		AUX2_RETURN_L_INPUT,
+		AUX1_RETURN_INPUT,
+		INPUTS_LEN
+	};
+	enum OutputId {
+		AUX2_SEND_L_OUTPUT,
+		AUX1_SEND_OUTPUT,
+		AUX2_SEND_R_OUTPUT,
+		MASTER_OUT_L_OUTPUT,
+		MASTER_OUT_R_OUTPUT,
+		OUTPUTS_LEN
+	};
+	enum LightId {
+		CH1_LEVEL_LIGHT,
+		MASTER_LED_L_LIGHT,
+		MASTER_LED_R_LIGHT,
+		LIGHTS_LEN
+	};
+
+	SSI2164_Mixer1() {
+		config(PARAMS_LEN, INPUTS_LEN, OUTPUTS_LEN, LIGHTS_LEN);
+		configParam(CH1_AUX1_PARAM, 0.f, 1.f, 0.f, "Aux 1");
+		configParam(CH1_AUX2_PARAM, 0.f, 1.f, 0.f, "Aux 2");
+		configParam(CH1_PAN_PARAM, 0.f, 1.f, 0.5f, "Pan", "R/L", 2.f);
+		configParam(CH1_MUTE_PARAM, 0.f, 1.f, 0.f, "Mute");
+		configParam(CH1_FAD_PARAM, 0.f, 1.f, 0.f, "Fader");
+		configInput(CH1_IN_INPUT, "Ch1");
+		configInput(CH1_PAN_INPUT, "Ch1 Pan CV");
+
+		configOutput(AUX1_SEND_OUTPUT, "Aux 1 Send");
+		configInput(AUX1_RETURN_INPUT, "Aux 1 Return");
+
+		configOutput(AUX2_SEND_L_OUTPUT, "Aux 2 Send L");
+		configOutput(AUX2_SEND_R_OUTPUT, "Aux 2 Send R");
+		configInput(AUX2_RETURN_L_INPUT, "Aux 2 Return L");
+		configInput(AUX2_RETURN_R_INPUT, "Aux 2 Return R");
+
+		configOutput(MASTER_OUT_L_OUTPUT, "Master L");
+		configOutput(MASTER_OUT_R_OUTPUT, "Master R");
+	}
+
+	void process(const ProcessArgs& args) override {
+	}
+};
+
+
+struct SSI2164_Mixer1Widget : ModuleWidget {
+	SSI2164_Mixer1Widget(SSI2164_Mixer1* module) {
+		setModule(module);
+		setPanel(createPanel(asset::plugin(pluginInstance, "res/SSI2164-Mixer1.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)));
+
+		addInput(createInputCentered<PJ301MPort>(mm2px(Vec(12, 17)), module, SSI2164_Mixer1::CH1_IN_INPUT));
+		addInput(createInputCentered<PJ301MPort>(mm2px(Vec(12, 28)), module, SSI2164_Mixer1::CH1_PAN_INPUT));
+		addParam(createParamCentered<RoundBlackKnob>(mm2px(Vec(12, 38)), module, SSI2164_Mixer1::CH1_AUX1_PARAM));
+		addParam(createParamCentered<RoundBlackKnob>(mm2px(Vec(12, 49)), module, SSI2164_Mixer1::CH1_AUX2_PARAM));
+		addParam(createParamCentered<RoundBlackKnob>(mm2px(Vec(12, 59)), module, SSI2164_Mixer1::CH1_PAN_PARAM));
+		addParam(createParamCentered<VCVLatch>(mm2px(Vec(12, 68)), module, SSI2164_Mixer1::CH1_MUTE_PARAM));
+		addChild(createLightCentered<MediumLight<RedLight>>(mm2px(Vec(12, 77)), module, SSI2164_Mixer1::CH1_LEVEL_LIGHT));
+		addParam(createParamCentered<VCVSlider>(mm2px(Vec(12, 101)), module, SSI2164_Mixer1::CH1_FAD_PARAM));
+
+
+		addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(141, 13)), module, SSI2164_Mixer1::AUX1_SEND_OUTPUT));
+		addInput(createInputCentered<PJ301MPort>(mm2px(Vec(141, 27)), module, SSI2164_Mixer1::AUX1_RETURN_INPUT));
+
+		addInput(createInputCentered<PJ301MPort>(mm2px(Vec(160, 27)), module, SSI2164_Mixer1::AUX2_RETURN_L_INPUT));
+		addInput(createInputCentered<PJ301MPort>(mm2px(Vec(172, 27)), module, SSI2164_Mixer1::AUX2_RETURN_R_INPUT));
+		addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(160, 13)), module, SSI2164_Mixer1::AUX2_SEND_L_OUTPUT));
+		addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(172, 13)), module, SSI2164_Mixer1::AUX2_SEND_R_OUTPUT));
+
+		addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(160, 113)), module, SSI2164_Mixer1::MASTER_OUT_L_OUTPUT));
+		addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(172, 113)), module, SSI2164_Mixer1::MASTER_OUT_R_OUTPUT));
+
+		addChild(createLightCentered<MediumLight<RedLight>>(mm2px(Vec(160, 77)), module, SSI2164_Mixer1::MASTER_LED_L_LIGHT));
+		addChild(createLightCentered<MediumLight<RedLight>>(mm2px(Vec(172, 77)), module, SSI2164_Mixer1::MASTER_LED_R_LIGHT));
+	}
+};
+
+
+Model* modelSSI2164_Mixer1 = createModel<SSI2164_Mixer1, SSI2164_Mixer1Widget>("SSI2164-Mixer1");

+ 17 - 0
src/plugin.cpp

@@ -0,0 +1,17 @@
+#include "plugin.hpp"
+
+
+Plugin* pluginInstance;
+
+
+void init(Plugin* p) {
+	pluginInstance = p;
+
+	// Add modules here
+	// p->addModel(modelMyModule);
+	p->addModel(modelMyAwsomeModule);
+	p->addModel(modelSSI2164_Mixer1);
+
+	// Any other plugin initialization may go here.
+	// As an alternative, consider lazy-loading assets and lookup tables when your module is created to reduce startup times of Rack.
+}

+ 13 - 0
src/plugin.hpp

@@ -0,0 +1,13 @@
+#pragma once
+#include <rack.hpp>
+
+
+using namespace rack;
+
+// Declare the Plugin, defined in plugin.cpp
+extern Plugin* pluginInstance;
+
+// Declare each Model, defined in each module source file
+// extern Model* modelMyModule;
+extern Model* modelMyAwsomeModule;
+extern Model* modelSSI2164_Mixer1;