Browse Source

Add shadows to knobs, remove ability to rescale knobs (must export

different sized SVGs)
tags/v0.6.0
Andrew Belt 6 years ago
parent
commit
ad20f3c997
13 changed files with 414 additions and 1319 deletions
  1. +4
    -1
      include/app.hpp
  2. +9
    -13
      include/componentlibrary.hpp
  3. +6
    -0
      include/util/math.hpp
  4. +31
    -393
      res/ComponentLibrary/BefacoBigKnob.svg
  5. +34
    -391
      res/ComponentLibrary/BefacoTinyKnob.svg
  6. +0
    -123
      res/ComponentLibrary/RoundBlack.svg
  7. +71
    -0
      res/ComponentLibrary/RoundBlackKnob.svg
  8. +71
    -0
      res/ComponentLibrary/RoundHugeBlackKnob.svg
  9. +71
    -0
      res/ComponentLibrary/RoundLargeBlackKnob.svg
  10. +71
    -0
      res/ComponentLibrary/RoundSmallBlackKnob.svg
  11. +24
    -386
      res/ComponentLibrary/Trimpot.svg
  12. +15
    -6
      src/app/CircularShadow.cpp
  13. +7
    -6
      src/app/SVGKnob.cpp

+ 4
- 1
include/app.hpp View File

@@ -217,7 +217,9 @@ struct Component : OpaqueWidget {
};

struct CircularShadow : TransparentWidget {
float blur = 0.0;
float blurRadius;
float opacity;
CircularShadow();
void draw(NVGcontext *vg) override;
};

@@ -276,6 +278,7 @@ struct SVGKnob : Knob, FramebufferWidget {
float minAngle, maxAngle;
TransformWidget *tw;
SVGWidget *sw;
CircularShadow *shadow;

SVGKnob();
void setSVG(std::shared_ptr<SVG> svg);


+ 9
- 13
include/componentlibrary.hpp View File

@@ -36,31 +36,30 @@ struct RoundKnob : SVGKnob {

struct RoundBlackKnob : RoundKnob {
RoundBlackKnob() {
setSVG(SVG::load(assetGlobal("res/ComponentLibrary/RoundBlack.svg")));
box.size = Vec(38, 38);
setSVG(SVG::load(assetGlobal("res/ComponentLibrary/RoundBlackKnob.svg")));
}
};

struct RoundSmallBlackKnob : RoundBlackKnob {
struct RoundSmallBlackKnob : RoundKnob {
RoundSmallBlackKnob() {
box.size = Vec(28, 28);
setSVG(SVG::load(assetGlobal("res/ComponentLibrary/RoundSmallBlackKnob.svg")));
}
};

struct RoundLargeBlackKnob : RoundBlackKnob {
struct RoundLargeBlackKnob : RoundKnob {
RoundLargeBlackKnob() {
box.size = Vec(46, 46);
setSVG(SVG::load(assetGlobal("res/ComponentLibrary/RoundLargeBlackKnob.svg")));
}
};

struct RoundHugeBlackKnob : RoundBlackKnob {
struct RoundHugeBlackKnob : RoundKnob {
RoundHugeBlackKnob() {
box.size = Vec(56, 56);
setSVG(SVG::load(assetGlobal("res/ComponentLibrary/RoundHugeBlackKnob.svg")));
}
};

struct RoundSmallBlackSnapKnob : RoundSmallBlackKnob {
RoundSmallBlackSnapKnob() {
struct RoundBlackSnapKnob : RoundBlackKnob {
RoundBlackSnapKnob() {
snap = true;
smooth = false;
}
@@ -294,7 +293,6 @@ struct SynthTechAlco : SVGKnob {

struct Trimpot : SVGKnob {
Trimpot() {
box.size = Vec(17, 17);
minAngle = -0.75*M_PI;
maxAngle = 0.75*M_PI;
setSVG(SVG::load(assetGlobal("res/ComponentLibrary/Trimpot.svg")));
@@ -303,7 +301,6 @@ struct Trimpot : SVGKnob {

struct BefacoBigKnob : SVGKnob {
BefacoBigKnob() {
box.size = Vec(75, 75);
minAngle = -0.75*M_PI;
maxAngle = 0.75*M_PI;
setSVG(SVG::load(assetGlobal("res/ComponentLibrary/BefacoBigKnob.svg")));
@@ -319,7 +316,6 @@ struct BefacoBigSnapKnob : BefacoBigKnob {

struct BefacoTinyKnob : SVGKnob {
BefacoTinyKnob() {
box.size = Vec(26, 26);
minAngle = -0.75*M_PI;
maxAngle = 0.75*M_PI;
setSVG(SVG::load(assetGlobal("res/ComponentLibrary/BefacoTinyKnob.svg")));


+ 6
- 0
include/util/math.hpp View File

@@ -257,6 +257,12 @@ struct Rect {
r.size = size;
return r;
}
Rect grow(Vec delta) {
Rect r;
r.pos = pos.minus(delta);
r.size = size.plus(delta.mult(2.f));
return r;
}
};




+ 31
- 393
res/ComponentLibrary/BefacoBigKnob.svg View File

@@ -9,376 +9,15 @@
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="25.664583mm"
height="25.66571mm"
viewBox="0 0 25.664584 25.665714"
width="26.000004mm"
height="26.001146mm"
viewBox="0 0 26.000004 26.001146"
version="1.1"
id="svg15246"
sodipodi:docname="BefacoBigKnob.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
id="svg113936"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="BefacoBigKnob.svg">
<defs
id="defs15240">
<clipPath
id="clip89">
<rect
y="0"
x="0"
width="18"
height="19"
id="rect4864" />
</clipPath>
<clipPath
id="clip90">
<path
inkscape:connector-curvature="0"
d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0"
id="path4861" />
</clipPath>
<mask
id="mask44">
<g
style="filter:url(#alpha)"
id="g4858"
transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4856" />
</g>
</mask>
<filter
id="alpha"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix4149" />
</filter>
<clipPath
id="clipPath17821">
<rect
y="0"
x="0"
width="18"
height="19"
id="rect17819" />
</clipPath>
<clipPath
id="clipPath17825">
<path
inkscape:connector-curvature="0"
d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0"
id="path17823" />
</clipPath>
<clipPath
id="clip87">
<rect
y="0"
x="0"
width="24"
height="26"
id="rect4848" />
</clipPath>
<clipPath
id="clip88">
<path
inkscape:connector-curvature="0"
d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0"
id="path4845" />
</clipPath>
<mask
id="mask43">
<g
style="filter:url(#alpha)"
id="g4842"
transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4840" />
</g>
</mask>
<filter
id="filter17836"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix17834" />
</filter>
<clipPath
id="clipPath17840">
<rect
y="0"
x="0"
width="24"
height="26"
id="rect17838" />
</clipPath>
<clipPath
id="clipPath17844">
<path
inkscape:connector-curvature="0"
d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0"
id="path17842" />
</clipPath>
<clipPath
id="clip95">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect4912" />
</clipPath>
<clipPath
id="clip96">
<path
inkscape:connector-curvature="0"
d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0"
id="path4909" />
</clipPath>
<mask
id="mask47">
<g
style="filter:url(#alpha-3)"
id="g4906"
transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.33000201;stroke:none"
id="rect4904" />
</g>
</mask>
<filter
id="alpha-3"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix4149-6" />
</filter>
<clipPath
id="clipPath18541">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect18539" />
</clipPath>
<clipPath
id="clipPath18545">
<path
inkscape:connector-curvature="0"
d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0"
id="path18543" />
</clipPath>
<clipPath
id="clip93">
<rect
y="0"
x="0"
width="22"
height="24"
id="rect4896" />
</clipPath>
<clipPath
id="clip94">
<path
inkscape:connector-curvature="0"
d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0"
id="path4893" />
</clipPath>
<mask
id="mask46">
<g
style="filter:url(#alpha-3)"
id="g4890"
transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4888" />
</g>
</mask>
<filter
id="filter18556"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix18554" />
</filter>
<clipPath
id="clipPath18560">
<rect
y="0"
x="0"
width="22"
height="24"
id="rect18558" />
</clipPath>
<clipPath
id="clipPath18564">
<path
inkscape:connector-curvature="0"
d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0"
id="path18562" />
</clipPath>
<clipPath
id="clip91">
<rect
y="0"
x="0"
width="29"
height="32"
id="rect4880" />
</clipPath>
<clipPath
id="clip92">
<path
inkscape:connector-curvature="0"
d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0"
id="path4877" />
</clipPath>
<mask
id="mask45">
<g
style="filter:url(#alpha-3)"
id="g4874"
transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4872" />
</g>
</mask>
<filter
id="filter18575"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix18573" />
</filter>
<clipPath
id="clipPath18579">
<rect
y="0"
x="0"
width="29"
height="32"
id="rect18577" />
</clipPath>
<clipPath
id="clipPath18583">
<path
inkscape:connector-curvature="0"
d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0"
id="path18581" />
</clipPath>
<clipPath
id="clip202">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect5795" />
</clipPath>
<clipPath
id="clip203">
<path
inkscape:connector-curvature="0"
d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0"
id="path5792" />
</clipPath>
<mask
id="mask104">
<g
style="filter:url(#alpha-7)"
id="g5789"
transform="matrix(0.26458333,0,0,0.26458333,74.416306,97.613551)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.33000201;stroke:none"
id="rect5787" />
</g>
</mask>
<filter
id="alpha-7"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix4149-5" />
</filter>
<clipPath
id="clipPath18765">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect18763" />
</clipPath>
<clipPath
id="clipPath18769">
<path
inkscape:connector-curvature="0"
d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0"
id="path18767" />
</clipPath>
</defs>
id="defs113930" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
@@ -386,24 +25,23 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="87.773411"
inkscape:cy="59.915557"
inkscape:document-units="px"
inkscape:zoom="5.6"
inkscape:cx="14.009349"
inkscape:cy="28.754907"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1274"
inkscape:window-height="1434"
inkscape:window-x="1280"
inkscape:window-y="0"
inkscape:window-maximized="0"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1422"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0" />
<metadata
id="metadata15243">
id="metadata113933">
<rdf:RDF>
<cc:Work
rdf:about="">
@@ -418,26 +56,26 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-35.482976,-90.654687)">
transform="translate(-80.833177,-85.089003)">
<path
inkscape:connector-curvature="0"
id="path8601"
d="m 61.147561,103.48699 c 0,7.08725 -5.74505,12.83341 -12.832292,12.83341 -7.087243,0 -12.832293,-5.74616 -12.832293,-12.83341 0,-7.086131 5.74505,-12.832303 12.832293,-12.832303 7.087242,0 12.832292,5.746172 12.832292,12.832303"
style="fill:#d4d4d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.28420019" />
style="fill:#d4d4d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2879144"
d="m 106.83318,98.089007 c 0,7.179863 -5.82014,13.001143 -13.000007,13.001143 -7.179864,0 -12.999996,-5.82128 -12.999996,-13.001143 0,-7.178735 5.820132,-13.000004 12.999996,-13.000004 7.179867,0 13.000007,5.821269 13.000007,13.000004"
id="path109718" />
<path
inkscape:connector-curvature="0"
id="path8603"
d="m 57.727183,98.408023 c -0.629474,-1.174541 -1.474287,-2.215876 -2.478992,-3.075134 -1.937223,0.271988 -3.943278,-0.692738 -4.94463,-2.372407 -0.643883,-0.122118 -1.308884,-0.187618 -1.988292,-0.187618 -0.679408,0 -1.3433,0.0655 -1.988294,0.187618 -1.00135,1.679669 -3.006296,2.644395 -4.944627,2.372407 -1.004706,0.859258 -1.849519,1.900593 -2.478994,3.075134 0.71715,1.853957 0.205392,4.067617 -1.254488,5.418667 0.04774,1.34552 0.340842,2.62774 0.840408,3.80119 1.942764,0.58283 3.389316,2.4046 3.515869,4.43063 1.029117,0.75603 2.199227,1.32997 3.462581,1.67855 1.673003,-1.17786 4.022088,-1.17786 5.69509,0 1.263355,-0.34858 2.433463,-0.92252 3.463689,-1.67855 0.125446,-2.02603 1.571996,-3.8478 3.51587,-4.43063 0.499566,-1.17345 0.792663,-2.45567 0.83927,-3.80119 -1.45985,-1.35105 -1.970501,-3.56471 -1.25446,-5.418667"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.28420019" />
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2879144"
d="m 103.36809,92.943667 c -0.6377,-1.189896 -1.49355,-2.244833 -2.51139,-3.115323 -1.962536,0.275543 -3.99481,-0.701791 -5.009247,-2.403411 -0.652299,-0.123713 -1.32599,-0.190069 -2.01428,-0.190069 -0.688287,0 -1.360855,0.06636 -2.014277,0.190069 -1.014438,1.70162 -3.045587,2.678954 -5.00925,2.403411 -1.017835,0.87049 -1.873689,1.925427 -2.51139,3.115323 0.726523,1.878194 0.208076,4.120774 -1.270883,5.489499 0.04838,1.363087 0.345295,2.662074 0.851391,3.850844 1.968154,0.59045 3.433609,2.43604 3.561817,4.48854 1.042568,0.76591 2.227968,1.34736 3.507834,1.7005 1.694867,-1.19327 4.074651,-1.19327 5.769516,0 1.279864,-0.35314 2.465268,-0.93459 3.508959,-1.7005 0.12709,-2.0525 1.59254,-3.89809 3.56182,-4.48854 0.50609,-1.18877 0.80302,-2.487757 0.85024,-3.850844 -1.47894,-1.368725 -1.99626,-3.611305 -1.27086,-5.489499"
id="path109720" />
<path
inkscape:connector-curvature="0"
id="path8605"
d="m 48.76709,91.713777 c 0,0.249785 -0.203146,0.450724 -0.451821,0.450724 -0.248676,0 -0.450713,-0.200939 -0.450713,-0.450724 0,-0.249785 0.202037,-0.450726 0.450713,-0.450726 0.248675,0 0.451821,0.200941 0.451821,0.450726"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.28420019" />
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2879144"
d="m 94.2909,86.161932 c 0,0.253052 -0.205801,0.456617 -0.457727,0.456617 -0.251924,0 -0.456603,-0.203565 -0.456603,-0.456617 0,-0.253046 0.204679,-0.456614 0.456603,-0.456614 0.251926,0 0.457727,0.203568 0.457727,0.456614"
id="path109722" />
<path
inkscape:connector-curvature="0"
id="path8607"
d="m 48.76709,103.48809 h -0.902534 v -9.733847 h 0.902534 z m 0,0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.28420019" />
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2879144"
d="m 94.2909,98.090134 h -0.91433 v -9.861065 h 0.91433 z m 0,0"
id="path109724" />
</g>
</svg>

+ 34
- 391
res/ComponentLibrary/BefacoTinyKnob.svg View File

@@ -9,376 +9,15 @@
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="8.6999998mm"
height="8.7000618mm"
viewBox="0 0 8.7000002 8.7000631"
width="9.0000019mm"
height="9.0000801mm"
viewBox="0 0 9.0000016 9.00008"
version="1.1"
id="svg15246"
sodipodi:docname="BefacoTinyKnob.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
id="svg113936"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="BefacoTinyKnob.svg">
<defs
id="defs15240">
<clipPath
id="clip89">
<rect
y="0"
x="0"
width="18"
height="19"
id="rect4864" />
</clipPath>
<clipPath
id="clip90">
<path
inkscape:connector-curvature="0"
d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0"
id="path4861" />
</clipPath>
<mask
id="mask44">
<g
style="filter:url(#alpha)"
id="g4858"
transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4856" />
</g>
</mask>
<filter
id="alpha"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix4149" />
</filter>
<clipPath
id="clipPath17821">
<rect
y="0"
x="0"
width="18"
height="19"
id="rect17819" />
</clipPath>
<clipPath
id="clipPath17825">
<path
inkscape:connector-curvature="0"
d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0"
id="path17823" />
</clipPath>
<clipPath
id="clip87">
<rect
y="0"
x="0"
width="24"
height="26"
id="rect4848" />
</clipPath>
<clipPath
id="clip88">
<path
inkscape:connector-curvature="0"
d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0"
id="path4845" />
</clipPath>
<mask
id="mask43">
<g
style="filter:url(#alpha)"
id="g4842"
transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4840" />
</g>
</mask>
<filter
id="filter17836"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix17834" />
</filter>
<clipPath
id="clipPath17840">
<rect
y="0"
x="0"
width="24"
height="26"
id="rect17838" />
</clipPath>
<clipPath
id="clipPath17844">
<path
inkscape:connector-curvature="0"
d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0"
id="path17842" />
</clipPath>
<clipPath
id="clip95">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect4912" />
</clipPath>
<clipPath
id="clip96">
<path
inkscape:connector-curvature="0"
d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0"
id="path4909" />
</clipPath>
<mask
id="mask47">
<g
style="filter:url(#alpha-3)"
id="g4906"
transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.33000201;stroke:none"
id="rect4904" />
</g>
</mask>
<filter
id="alpha-3"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix4149-6" />
</filter>
<clipPath
id="clipPath18541">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect18539" />
</clipPath>
<clipPath
id="clipPath18545">
<path
inkscape:connector-curvature="0"
d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0"
id="path18543" />
</clipPath>
<clipPath
id="clip93">
<rect
y="0"
x="0"
width="22"
height="24"
id="rect4896" />
</clipPath>
<clipPath
id="clip94">
<path
inkscape:connector-curvature="0"
d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0"
id="path4893" />
</clipPath>
<mask
id="mask46">
<g
style="filter:url(#alpha-3)"
id="g4890"
transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4888" />
</g>
</mask>
<filter
id="filter18556"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix18554" />
</filter>
<clipPath
id="clipPath18560">
<rect
y="0"
x="0"
width="22"
height="24"
id="rect18558" />
</clipPath>
<clipPath
id="clipPath18564">
<path
inkscape:connector-curvature="0"
d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0"
id="path18562" />
</clipPath>
<clipPath
id="clip91">
<rect
y="0"
x="0"
width="29"
height="32"
id="rect4880" />
</clipPath>
<clipPath
id="clip92">
<path
inkscape:connector-curvature="0"
d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0"
id="path4877" />
</clipPath>
<mask
id="mask45">
<g
style="filter:url(#alpha-3)"
id="g4874"
transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4872" />
</g>
</mask>
<filter
id="filter18575"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix18573" />
</filter>
<clipPath
id="clipPath18579">
<rect
y="0"
x="0"
width="29"
height="32"
id="rect18577" />
</clipPath>
<clipPath
id="clipPath18583">
<path
inkscape:connector-curvature="0"
d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0"
id="path18581" />
</clipPath>
<clipPath
id="clip202">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect5795" />
</clipPath>
<clipPath
id="clip203">
<path
inkscape:connector-curvature="0"
d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0"
id="path5792" />
</clipPath>
<mask
id="mask104">
<g
style="filter:url(#alpha-7)"
id="g5789"
transform="matrix(0.26458333,0,0,0.26458333,74.416306,97.613551)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.33000201;stroke:none"
id="rect5787" />
</g>
</mask>
<filter
id="alpha-7"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix4149-5" />
</filter>
<clipPath
id="clipPath18765">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect18763" />
</clipPath>
<clipPath
id="clipPath18769">
<path
inkscape:connector-curvature="0"
d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0"
id="path18767" />
</clipPath>
</defs>
id="defs113930" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
@@ -386,24 +25,23 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="6.9301735"
inkscape:cy="26.379575"
inkscape:zoom="2.8"
inkscape:cx="-45.569736"
inkscape:cy="83.754679"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1422"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
inkscape:window-maximized="0" />
<metadata
id="metadata15243">
id="metadata113933">
<rdf:RDF>
<cc:Work
rdf:about="">
@@ -418,26 +56,31 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.329061,-94.497224)">
transform="translate(-111.86932,-85.795053)">
<path
inkscape:connector-curvature="0"
style="fill:#d4d4d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.28209424"
d="m 120.10511,92.798549 c 1.38512,-2.062815 0.83525,-4.854005 -1.22757,-6.23803 -2.0617,-1.384026 -4.86062,-0.840773 -6.24463,1.222041 -1.38514,2.062814 -0.83306,4.866126 1.22866,6.251255 2.06282,1.384023 4.8595,0.827547 6.24354,-1.235266"
id="path109730" />
<path
inkscape:connector-curvature="0"
id="path8613"
d="m 52.290324,101.26723 c 1.338942,-1.994021 0.807417,-4.692165 -1.186639,-6.030054 -1.992992,-1.337892 -4.698607,-0.812749 -6.036486,1.181298 -1.338972,1.994058 -0.805286,4.703946 1.187706,6.042896 1.994056,1.33787 4.69751,0.79991 6.035419,-1.19414"
style="fill:#d4d4d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2726914" />
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.28209424"
d="m 120.02026,91.143448 c -0.46281,2.022043 -2.47716,3.285957 -4.49919,2.823148 -2.02205,-0.462813 -3.28598,-2.47714 -2.82314,-4.499182 0.46281,-2.020944 2.47713,-3.285958 4.49918,-2.82315 2.02093,0.462812 3.28594,2.477141 2.82315,4.499184"
id="path109732" />
<path
inkscape:connector-curvature="0"
id="path8615"
d="m 52.208301,99.667339 c -0.44738,1.954671 -2.394585,3.176391 -4.349209,2.729081 -1.954654,-0.44739 -3.176442,-2.39461 -2.729042,-4.349251 0.44738,-1.953574 2.394563,-3.176427 4.349208,-2.729043 1.953568,0.447388 3.176423,2.394569 2.729043,4.349213"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2726914" />
style="fill:none;stroke:#7f7878;stroke-width:0.11481237;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
d="m 120.02026,91.143463 c -0.46281,2.022042 -2.47715,3.285956 -4.49919,2.823145 -2.02204,-0.462811 -3.28595,-2.47714 -2.82314,-4.499183 0.46281,-2.020941 2.47714,-3.285957 4.49918,-2.823145 2.02094,0.46281 3.28596,2.47714 2.82315,4.499183 z m 0,0"
id="path109734" />
<path
inkscape:connector-curvature="0"
id="path8617"
d="m 52.208301,99.667339 c -0.44738,1.954671 -2.394585,3.176391 -4.349209,2.729081 -1.954654,-0.44739 -3.176442,-2.39461 -2.729042,-4.349251 0.44738,-1.953574 2.394563,-3.176427 4.349208,-2.729043 1.953568,0.447388 3.176423,2.394569 2.729043,4.349213 z m 0,0"
style="fill:none;stroke:#7f7878;stroke-width:0.11098535;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" />
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.28209424"
d="m 116.20648,88.009558 c -0.11239,-0.07603 -0.14328,-0.229201 -0.0672,-0.342701 0.0761,-0.113495 0.23029,-0.143251 0.34379,-0.06722 0.11356,0.07603 0.14325,0.229201 0.0672,0.342701 -0.076,0.113495 -0.23031,0.14325 -0.34379,0.06722"
id="path109736" />
<path
inkscape:connector-curvature="0"
id="path8619"
d="m 48.391403,96.830763 c -0.21444,-0.145066 -0.273308,-0.437224 -0.128239,-0.653739 0.145022,-0.216515 0.439333,-0.273263 0.65581,-0.128222 0.216541,0.145032 0.273259,0.437221 0.128239,0.653732 -0.145017,0.216521 -0.439318,0.27326 -0.65581,0.128291"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.53812313" />
style="fill:none;stroke:#000000;stroke-width:0.46912277;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
d="m 116.20647,88.009571 c -0.11239,-0.07603 -0.14326,-0.229202 -0.0672,-0.3427 0.076,-0.113495 0.23032,-0.14325 0.34381,-0.06722 0.11356,0.07602 0.14325,0.229201 0.0672,0.3427 -0.076,0.113495 -0.2303,0.143251 -0.3438,0.06722 z m 0,0"
id="path109738" />
</g>
</svg>

+ 0
- 123
res/ComponentLibrary/RoundBlack.svg View File

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

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="37.556625"
height="37.556622"
viewBox="0 0 9.9368575 9.9368564"
version="1.1"
id="svg49872"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="RoundBlack.svg">
<defs
id="defs49866">
<clipPath
id="clip12">
<path
d="m 143,129.75 h 3 V 158 h -3 z m 0,0"
id="path28860"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clip11">
<path
d="m 117.39453,129.75 h 54 v 54.00391 h -54 z m 0,0"
id="path28857"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clip150">
<path
d="m 176,208.92578 h 2 V 228 h -2 z m 0,0"
id="path29465"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clip149">
<path
d="m 159.27734,208.92578 h 36 v 36 h -36 z m 0,0"
id="path29462"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clip142">
<path
d="m 110,208.92578 h 3 V 228 h -3 z m 0,0"
id="path29320"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clip141">
<path
d="m 93.511719,208.92578 h 36.000001 v 36 H 93.511719 Z m 0,0"
id="path29317"
inkscape:connector-curvature="0" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.4"
inkscape:cx="15.038057"
inkscape:cy="23.041"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="2560"
inkscape:window-height="1422"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0"
inkscape:snap-global="true"
inkscape:snap-bbox="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-object-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:object-paths="true"
inkscape:pagecheckerboard="true" />
<metadata
id="metadata49869">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-73.816227,-78.610433)">
<path
style="clip-rule:nonzero;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.27602378"
d="m 83.753084,83.578861 c 0,2.744065 -2.224363,4.968428 -4.968429,4.968428 -2.744065,0 -4.968428,-2.224363 -4.968428,-4.968428 0,-2.744066 2.224363,-4.968428 4.968428,-4.968428 2.744066,0 4.968429,2.224362 4.968429,4.968428"
id="path38955"
inkscape:connector-curvature="0" />
<path
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.396875;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
d="m 78.784655,83.578861 0,-4.968428"
id="path53181"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
</svg>

+ 71
- 0
res/ComponentLibrary/RoundBlackKnob.svg View File

@@ -0,0 +1,71 @@
<?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="10.0004mm"
height="10.000431mm"
viewBox="0 0 10.000399 10.000431"
version="1.1"
id="svg111794"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="RoundBlackKnob.svg">
<defs
id="defs111788" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="-66.596017"
inkscape:cy="-47.298945"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1422"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0" />
<metadata
id="metadata111791">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-135.80716,-61.39592)">
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775"
d="m 145.80756,66.395451 c 0,2.761586 -2.23791,5.0009 -4.99949,5.0009 -2.76162,0 -5.00091,-2.239314 -5.00091,-5.0009 0,-2.76159 2.23929,-4.999524 5.00091,-4.999524 2.76158,0 4.99949,2.237934 4.99949,4.999524"
id="path110594" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.35277775"
d="m 140.97479,61.41522 c -0.0551,-0.01242 -0.11024,-0.0193 -0.16672,-0.0193 -0.0579,0 -0.11162,0.0069 -0.16676,0.0193 v 5.043618 h 0.33348 z m 0,0"
id="path110596" />
</g>
</svg>

+ 71
- 0
res/ComponentLibrary/RoundHugeBlackKnob.svg View File

@@ -0,0 +1,71 @@
<?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="19.000362mm"
height="19.000389mm"
viewBox="0 0 19.000362 19.000389"
version="1.1"
id="svg111794"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="RoundHugeBlackKnob.svg">
<defs
id="defs111788" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="-18.065819"
inkscape:cy="35.516889"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1422"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0" />
<metadata
id="metadata111791">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-98.209438,-77.425955)">
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775"
d="m 117.2098,86.92615 c 0,5.247569 -4.25397,9.500195 -9.50016,9.500195 -5.24757,0 -9.500202,-4.252626 -9.500202,-9.500195 0,-5.24619 4.252632,-9.500193 9.500202,-9.500193 5.24619,0 9.50016,4.254003 9.50016,9.500193"
id="path110586" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.35277775"
d="m 108.0252,77.463165 c -0.10337,-0.02343 -0.2067,-0.03721 -0.31556,-0.03721 -0.10887,0 -0.21361,0.01379 -0.3156,0.03721 v 9.582876 h 0.63116 z m 0,0"
id="path110588" />
</g>
</svg>

+ 71
- 0
res/ComponentLibrary/RoundLargeBlackKnob.svg View File

@@ -0,0 +1,71 @@
<?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="12.69999mm"
height="12.7mm"
viewBox="0 0 12.69999 12.7"
version="1.1"
id="svg111794"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="RoundLargeBlackKnob.svg">
<defs
id="defs111788" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="-130.49441"
inkscape:cy="-43.340255"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1422"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0" />
<metadata
id="metadata111791">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-127.95617,-62.862058)">
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775"
d="m 140.65616,69.212058 c 0,3.505729 -2.84289,6.35 -6.35,6.35 -3.5071,0 -6.34999,-2.844271 -6.34999,-6.35 0,-3.507109 2.84289,-6.35 6.34999,-6.35 3.50711,0 6.35,2.842891 6.35,6.35"
id="path110590" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.35277775"
d="m 134.51698,62.885486 c -0.0689,-0.01517 -0.13917,-0.02342 -0.21082,-0.02342 -0.0731,0 -0.14333,0.0083 -0.21085,0.02342 v 6.405121 h 0.42167 z m 0,0"
id="path110592" />
</g>
</svg>

+ 71
- 0
res/ComponentLibrary/RoundSmallBlackKnob.svg View File

@@ -0,0 +1,71 @@
<?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="7.9995098mm"
height="7.9995222mm"
viewBox="0 0 7.9995093 7.9995222"
version="1.1"
id="svg111794"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="RoundSmallBlackKnob.svg">
<defs
id="defs111788" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="-87.928177"
inkscape:cy="-71.041818"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1422"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0" />
<metadata
id="metadata111791">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-168.09312,-67.39659)">
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775"
d="m 176.09263,71.397045 c 0,2.208995 -1.79006,3.999067 -3.99905,3.999067 -2.20902,0 -4.00046,-1.790072 -4.00046,-3.999067 0,-2.210372 1.79144,-4.000444 4.00046,-4.000444 2.20899,0 3.99905,1.790072 3.99905,4.000444"
id="path110598" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.35277775"
d="m 172.22587,67.41176 c -0.0427,-0.0097 -0.0868,-0.01517 -0.13229,-0.01517 -0.0455,0 -0.0896,0.0055 -0.13367,0.01517 v 4.034896 h 0.26596 z m 0,0"
id="path110600" />
</g>
</svg>

+ 24
- 386
res/ComponentLibrary/Trimpot.svg View File

@@ -9,376 +9,15 @@
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="6.2990241mm"
height="6.3003879mm"
viewBox="0 0 6.2990242 6.3003887"
width="6.2990298mm"
height="6.3003922mm"
viewBox="0 0 6.2990294 6.3003921"
version="1.1"
id="svg15246"
sodipodi:docname="Trimpot.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
id="svg111794"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="Trimpot.svg">
<defs
id="defs15240">
<clipPath
id="clip89">
<rect
y="0"
x="0"
width="18"
height="19"
id="rect4864" />
</clipPath>
<clipPath
id="clip90">
<path
inkscape:connector-curvature="0"
d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0"
id="path4861" />
</clipPath>
<mask
id="mask44">
<g
style="filter:url(#alpha)"
id="g4858"
transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4856" />
</g>
</mask>
<filter
id="alpha"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix4149" />
</filter>
<clipPath
id="clipPath17821">
<rect
y="0"
x="0"
width="18"
height="19"
id="rect17819" />
</clipPath>
<clipPath
id="clipPath17825">
<path
inkscape:connector-curvature="0"
d="m 0.898438,0.128906 h 16.25 v 17.882813 h -16.25 z m 0,0"
id="path17823" />
</clipPath>
<clipPath
id="clip87">
<rect
y="0"
x="0"
width="24"
height="26"
id="rect4848" />
</clipPath>
<clipPath
id="clip88">
<path
inkscape:connector-curvature="0"
d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0"
id="path4845" />
</clipPath>
<mask
id="mask43">
<g
style="filter:url(#alpha)"
id="g4842"
transform="matrix(0.26458333,0,0,0.26458333,89.358789,128.57765)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4840" />
</g>
</mask>
<filter
id="filter17836"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix17834" />
</filter>
<clipPath
id="clipPath17840">
<rect
y="0"
x="0"
width="24"
height="26"
id="rect17838" />
</clipPath>
<clipPath
id="clipPath17844">
<path
inkscape:connector-curvature="0"
d="m 0.683594,0.921875 h 22.679687 v 24.9375 H 0.683594 Z m 0,0"
id="path17842" />
</clipPath>
<clipPath
id="clip95">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect4912" />
</clipPath>
<clipPath
id="clip96">
<path
inkscape:connector-curvature="0"
d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0"
id="path4909" />
</clipPath>
<mask
id="mask47">
<g
style="filter:url(#alpha-3)"
id="g4906"
transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.33000201;stroke:none"
id="rect4904" />
</g>
</mask>
<filter
id="alpha-3"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix4149-6" />
</filter>
<clipPath
id="clipPath18541">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect18539" />
</clipPath>
<clipPath
id="clipPath18545">
<path
inkscape:connector-curvature="0"
d="M 0.140625,0.140625 H 17.199219 V 17.199219 H 0.140625 Z m 0,0"
id="path18543" />
</clipPath>
<clipPath
id="clip93">
<rect
y="0"
x="0"
width="22"
height="24"
id="rect4896" />
</clipPath>
<clipPath
id="clip94">
<path
inkscape:connector-curvature="0"
d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0"
id="path4893" />
</clipPath>
<mask
id="mask46">
<g
style="filter:url(#alpha-3)"
id="g4890"
transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4888" />
</g>
</mask>
<filter
id="filter18556"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix18554" />
</filter>
<clipPath
id="clipPath18560">
<rect
y="0"
x="0"
width="22"
height="24"
id="rect18558" />
</clipPath>
<clipPath
id="clipPath18564">
<path
inkscape:connector-curvature="0"
d="M 0.0390625,0.0390625 H 21.300781 V 23.421875 H 0.0390625 Z m 0,0"
id="path18562" />
</clipPath>
<clipPath
id="clip91">
<rect
y="0"
x="0"
width="29"
height="32"
id="rect4880" />
</clipPath>
<clipPath
id="clip92">
<path
inkscape:connector-curvature="0"
d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0"
id="path4877" />
</clipPath>
<mask
id="mask45">
<g
style="filter:url(#alpha-3)"
id="g4874"
transform="matrix(0.26458333,0,0,0.26458333,88.611154,119.19859)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.14999402;stroke:none"
id="rect4872" />
</g>
</mask>
<filter
id="filter18575"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix18573" />
</filter>
<clipPath
id="clipPath18579">
<rect
y="0"
x="0"
width="29"
height="32"
id="rect18577" />
</clipPath>
<clipPath
id="clipPath18583">
<path
inkscape:connector-curvature="0"
d="M 0.507812,0.5 H 28.855469 V 31.679688 H 0.507812 Z m 0,0"
id="path18581" />
</clipPath>
<clipPath
id="clip202">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect5795" />
</clipPath>
<clipPath
id="clip203">
<path
inkscape:connector-curvature="0"
d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0"
id="path5792" />
</clipPath>
<mask
id="mask104">
<g
style="filter:url(#alpha-7)"
id="g5789"
transform="matrix(0.26458333,0,0,0.26458333,74.416306,97.613551)">
<rect
x="0"
y="0"
width="3052.8701"
height="3351.5"
style="fill:#000000;fill-opacity:0.33000201;stroke:none"
id="rect5787" />
</g>
</mask>
<filter
id="alpha-7"
filterUnits="objectBoundingBox"
x="0"
y="0"
width="1"
height="1">
<feColorMatrix
type="matrix"
in="SourceGraphic"
values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
id="feColorMatrix4149-5" />
</filter>
<clipPath
id="clipPath18765">
<rect
y="0"
x="0"
width="18"
height="18"
id="rect18763" />
</clipPath>
<clipPath
id="clipPath18769">
<path
inkscape:connector-curvature="0"
d="M 0.855469,0.140625 H 17.914062 V 17.199219 H 0.855469 Z m 0,0"
id="path18767" />
</clipPath>
</defs>
id="defs111788" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
@@ -386,24 +25,23 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6"
inkscape:cx="26.106375"
inkscape:cy="37.463453"
inkscape:zoom="2.8"
inkscape:cx="-118.16736"
inkscape:cy="0.15014965"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1274"
inkscape:window-height="1434"
inkscape:window-x="1280"
inkscape:window-y="0"
inkscape:window-maximized="0"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1422"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0" />
<metadata
id="metadata15243">
id="metadata111791">
<rdf:RDF>
<cc:Work
rdf:about="">
@@ -418,16 +56,16 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-46.318588,-97.647662)">
transform="translate(-183.93691,-77.348595)">
<path
inkscape:connector-curvature="0"
id="path7219"
d="m 46.318588,100.79786 c 0,1.74046 1.409735,3.15019 3.1502,3.15019 1.739088,0 3.148824,-1.40973 3.148824,-3.15019 0,-1.739087 -1.409736,-3.150198 -3.148824,-3.150198 -1.740465,0 -3.1502,1.411111 -3.1502,3.150198"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775"
d="m 183.93691,80.498791 c 0,1.740461 1.40974,3.150196 3.1502,3.150196 1.73909,0 3.14883,-1.409735 3.14883,-3.150196 0,-1.739085 -1.40974,-3.150196 -3.14883,-3.150196 -1.74046,0 -3.1502,1.411111 -3.1502,3.150196"
id="path108214" />
<path
inkscape:connector-curvature="0"
id="path7221"
d="m 49.672764,97.658686 c -0.06752,-0.0055 -0.135079,-0.01101 -0.203976,-0.01101 -0.0689,0 -0.137795,0.0055 -0.205317,0.01101 v 3.139174 h 0.409293 z m 0,0"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775"
d="m 187.29109,77.359619 c -0.0675,-0.0055 -0.13508,-0.01101 -0.20398,-0.01101 -0.0689,0 -0.13779,0.0055 -0.20531,0.01101 v 3.139172 h 0.40929 z m 0,0"
id="path108216" />
</g>
</svg>

+ 15
- 6
src/app/CircularShadow.cpp View File

@@ -4,15 +4,24 @@
namespace rack {


CircularShadow::CircularShadow() {
blurRadius = 0;
opacity = 0.15;
// blurRadius = 0;
// opacity = 0.15;
}

void CircularShadow::draw(NVGcontext *vg) {
if (opacity < 0.0)
return;

nvgBeginPath(vg);
nvgRect(vg, -blur, -blur, box.size.x + 2*blur, box.size.y + 2*blur);
nvgFillColor(vg, nvgRGBAf(0.0, 0.0, 0.0, 0.25));
Vec c = box.size.div(2.0);
float radius = c.x;
NVGcolor icol = nvgRGBAf(0.0, 0.0, 0.0, 0.25);
nvgRect(vg, -blurRadius, -blurRadius, box.size.x + 2*blurRadius, box.size.y + 2*blurRadius);
Vec center = box.size.div(2.0);
float radius = center.x;
NVGcolor icol = nvgRGBAf(0.0, 0.0, 0.0, opacity);
NVGcolor ocol = nvgRGBAf(0.0, 0.0, 0.0, 0.0);
NVGpaint paint = nvgRadialGradient(vg, c.x, c.y, radius - blur/2, radius + blur/2, icol, ocol);
NVGpaint paint = nvgRadialGradient(vg, center.x, center.y, radius - blurRadius, radius, icol, ocol);
nvgFillPaint(vg, paint);
nvgFill(vg);
}


+ 7
- 6
src/app/SVGKnob.cpp View File

@@ -5,6 +5,9 @@ namespace rack {


SVGKnob::SVGKnob() {
shadow = new CircularShadow();
addChild(shadow);

tw = new TransformWidget();
addChild(tw);

@@ -13,22 +16,21 @@ SVGKnob::SVGKnob() {
}

void SVGKnob::setSVG(std::shared_ptr<SVG> svg) {
sw->svg = svg;
sw->wrap();
sw->setSVG(svg);
tw->box.size = sw->box.size;
box.size = sw->box.size;
shadow->box.size = sw->box.size;
shadow->box.pos = Vec(0, 4);
// shadow->box = shadow->box.grow(Vec(2, 2));
}

void SVGKnob::step() {
// Re-transform TransformWidget if dirty
if (dirty) {
tw->box.size = box.size;
float angle = 0.0;
if (isfinite(minValue) && isfinite(maxValue))
angle = rescale(value, minValue, maxValue, minAngle, maxAngle);
tw->identity();
// Scale SVG to box
tw->scale(box.size.div(sw->box.size));
// Rotate SVG
Vec center = sw->box.getCenter();
tw->translate(center);
@@ -44,5 +46,4 @@ void SVGKnob::onChange(EventChange &e) {
}



} // namespace rack

Loading…
Cancel
Save