Browse Source

add module bsp.RMS (env.follower)

pull/1639/head
bsp2 6 years ago
parent
commit
580dbd0280
9 changed files with 1237 additions and 2 deletions
  1. +13
    -0
      plugins/community/repos/bsp/README.md
  2. +1
    -0
      plugins/community/repos/bsp/make.objects
  3. +2
    -1
      plugins/community/repos/bsp/makefile.msvc
  4. +503
    -0
      plugins/community/repos/bsp/res/RMS.svg
  5. +199
    -0
      plugins/community/repos/bsp/src/RMS.cpp
  6. +1
    -1
      plugins/community/repos/bsp/src/Sway.cpp
  7. +2
    -0
      plugins/community/repos/bsp/src/bsp.cpp
  8. +13
    -0
      vst2_bin/plugins/bsp/README.md
  9. +503
    -0
      vst2_bin/plugins/bsp/res/RMS.svg

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

@@ -23,6 +23,7 @@ Suggested applications:
An adaption of Filatov Vadim's excellent Ob-Xd filter. Distributed under terms of the GNU General Public License V3.



# Scanner

A mixer that can seamlessly blend up to 16 input channels.
@@ -47,6 +48,17 @@ The switch enables the randomizer, and the button next to it is used to generate
NOTE: try modulating the position with the post output (feedback).



# RMS

A Root-Mean-Square based envelope follower, coupled with a slew limiter.

The rise and fall rates can be configured separately.

The module can be used to derive envelopes from audio signals, e.g. to implement compressor effects.



# Sway

A kind of slew-filtered noise generator, mainly designed for randomizing control voltages.
@@ -60,6 +72,7 @@ The "s+o" knobs are used to apply a final scaling/amplification (-5..5) and offs
NOTE: when the min/max time is set to very small values, the module can be used to generate audio-rate noise.



# Tuned Delay Line

This module was designed for Karplus-Strong synthesis.


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

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

+ 2
- 1
plugins/community/repos/bsp/makefile.msvc View File

@@ -5,7 +5,8 @@ include ../../../build_shared_plugin_pre.mk
include make.objects

define BIN_POST_FXN
cp -f $(SLUG).dll ../../../../vst2_bin/plugins/$(SLUG)/plugin.dll
cp -f $(SLUG).dll ../../../../vst2_bin/plugins/$(SLUG)/plugin.dll.fx
cp -f $(SLUG).dll ../../../../vst2_bin/plugins/$(SLUG)/plugin.dll.instr
endef

include ../../../build_shared_plugin_post.mk

+ 503
- 0
plugins/community/repos/bsp/res/RMS.svg View File

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

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="15.239717mm"
height="128.4993mm"
viewBox="0 0 15.239717 128.4993"
version="1.1"
id="svg261903"
sodipodi:docname="RMS.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<defs
id="defs261897">
<linearGradient
id="linear20"
gradientUnits="userSpaceOnUse"
x1="-0.095554203"
y1="0"
x2="1.32507"
y2="0"
gradientTransform="matrix(0,6.4087959,-6.4087959,0,64.256445,118.95198)">
<stop
offset="0"
style="stop-color:rgb(25.489807%,25.097656%,25.881958%);stop-opacity:1;"
id="stop217759" />
<stop
offset="0.0625"
style="stop-color:rgb(25.489807%,25.097656%,25.881958%);stop-opacity:1;"
id="stop217761" />
<stop
offset="0.078125"
style="stop-color:rgb(25.398254%,24.996948%,25.778198%);stop-opacity:1;"
id="stop217763" />
<stop
offset="0.09375"
style="stop-color:rgb(25.177002%,24.754333%,25.527954%);stop-opacity:1;"
id="stop217765" />
<stop
offset="0.109375"
style="stop-color:rgb(24.916077%,24.465942%,25.231934%);stop-opacity:1;"
id="stop217767" />
<stop
offset="0.125"
style="stop-color:rgb(24.653625%,24.179077%,24.935913%);stop-opacity:1;"
id="stop217769" />
<stop
offset="0.140625"
style="stop-color:rgb(24.3927%,23.892212%,24.639893%);stop-opacity:1;"
id="stop217771" />
<stop
offset="0.15625"
style="stop-color:rgb(24.131775%,23.605347%,24.343872%);stop-opacity:1;"
id="stop217773" />
<stop
offset="0.171875"
style="stop-color:rgb(23.87085%,23.316956%,24.047852%);stop-opacity:1;"
id="stop217775" />
<stop
offset="0.1875"
style="stop-color:rgb(23.609924%,23.03009%,23.751831%);stop-opacity:1;"
id="stop217777" />
<stop
offset="0.203125"
style="stop-color:rgb(23.348999%,22.743225%,23.455811%);stop-opacity:1;"
id="stop217779" />
<stop
offset="0.21875"
style="stop-color:rgb(23.088074%,22.45636%,23.15979%);stop-opacity:1;"
id="stop217781" />
<stop
offset="0.234375"
style="stop-color:rgb(22.825623%,22.167969%,22.86377%);stop-opacity:1;"
id="stop217783" />
<stop
offset="0.25"
style="stop-color:rgb(22.564697%,21.881104%,22.567749%);stop-opacity:1;"
id="stop217785" />
<stop
offset="0.265625"
style="stop-color:rgb(22.303772%,21.594238%,22.271729%);stop-opacity:1;"
id="stop217787" />
<stop
offset="0.28125"
style="stop-color:rgb(22.042847%,21.307373%,21.975708%);stop-opacity:1;"
id="stop217789" />
<stop
offset="0.296875"
style="stop-color:rgb(21.781921%,21.018982%,21.679688%);stop-opacity:1;"
id="stop217791" />
<stop
offset="0.3125"
style="stop-color:rgb(21.520996%,20.732117%,21.383667%);stop-opacity:1;"
id="stop217793" />
<stop
offset="0.328125"
style="stop-color:rgb(21.260071%,20.445251%,21.087646%);stop-opacity:1;"
id="stop217795" />
<stop
offset="0.34375"
style="stop-color:rgb(20.99762%,20.15686%,20.793152%);stop-opacity:1;"
id="stop217797" />
<stop
offset="0.359375"
style="stop-color:rgb(20.736694%,19.869995%,20.497131%);stop-opacity:1;"
id="stop217799" />
<stop
offset="0.375"
style="stop-color:rgb(20.475769%,19.58313%,20.201111%);stop-opacity:1;"
id="stop217801" />
<stop
offset="0.390625"
style="stop-color:rgb(20.214844%,19.296265%,19.90509%);stop-opacity:1;"
id="stop217803" />
<stop
offset="0.40625"
style="stop-color:rgb(19.953918%,19.007874%,19.60907%);stop-opacity:1;"
id="stop217805" />
<stop
offset="0.421875"
style="stop-color:rgb(19.692993%,18.721008%,19.313049%);stop-opacity:1;"
id="stop217807" />
<stop
offset="0.4375"
style="stop-color:rgb(19.432068%,18.434143%,19.017029%);stop-opacity:1;"
id="stop217809" />
<stop
offset="0.453125"
style="stop-color:rgb(19.169617%,18.147278%,18.721008%);stop-opacity:1;"
id="stop217811" />
<stop
offset="0.46875"
style="stop-color:rgb(18.908691%,17.858887%,18.424988%);stop-opacity:1;"
id="stop217813" />
<stop
offset="0.484375"
style="stop-color:rgb(18.647766%,17.572021%,18.128967%);stop-opacity:1;"
id="stop217815" />
<stop
offset="0.5"
style="stop-color:rgb(18.386841%,17.285156%,17.832947%);stop-opacity:1;"
id="stop217817" />
<stop
offset="0.515625"
style="stop-color:rgb(18.125916%,16.998291%,17.536926%);stop-opacity:1;"
id="stop217819" />
<stop
offset="0.53125"
style="stop-color:rgb(17.86499%,16.7099%,17.240906%);stop-opacity:1;"
id="stop217821" />
<stop
offset="0.546875"
style="stop-color:rgb(17.604065%,16.423035%,16.944885%);stop-opacity:1;"
id="stop217823" />
<stop
offset="0.5625"
style="stop-color:rgb(17.341614%,16.136169%,16.648865%);stop-opacity:1;"
id="stop217825" />
<stop
offset="0.578125"
style="stop-color:rgb(17.080688%,15.849304%,16.352844%);stop-opacity:1;"
id="stop217827" />
<stop
offset="0.59375"
style="stop-color:rgb(16.819763%,15.560913%,16.056824%);stop-opacity:1;"
id="stop217829" />
<stop
offset="0.609375"
style="stop-color:rgb(16.558838%,15.274048%,15.760803%);stop-opacity:1;"
id="stop217831" />
<stop
offset="0.625"
style="stop-color:rgb(16.297913%,14.987183%,15.464783%);stop-opacity:1;"
id="stop217833" />
<stop
offset="0.640625"
style="stop-color:rgb(16.036987%,14.700317%,15.168762%);stop-opacity:1;"
id="stop217835" />
<stop
offset="0.65625"
style="stop-color:rgb(15.776062%,14.411926%,14.872742%);stop-opacity:1;"
id="stop217837" />
<stop
offset="0.671875"
style="stop-color:rgb(15.513611%,14.125061%,14.576721%);stop-opacity:1;"
id="stop217839" />
<stop
offset="0.6875"
style="stop-color:rgb(15.252686%,13.838196%,14.280701%);stop-opacity:1;"
id="stop217841" />
<stop
offset="0.703125"
style="stop-color:rgb(14.99176%,13.551331%,13.98468%);stop-opacity:1;"
id="stop217843" />
<stop
offset="0.71875"
style="stop-color:rgb(14.730835%,13.262939%,13.68866%);stop-opacity:1;"
id="stop217845" />
<stop
offset="0.734375"
style="stop-color:rgb(14.46991%,12.976074%,13.392639%);stop-opacity:1;"
id="stop217847" />
<stop
offset="0.75"
style="stop-color:rgb(14.208984%,12.689209%,13.096619%);stop-opacity:1;"
id="stop217849" />
<stop
offset="0.765625"
style="stop-color:rgb(13.948059%,12.402344%,12.802124%);stop-opacity:1;"
id="stop217851" />
<stop
offset="0.78125"
style="stop-color:rgb(13.771057%,12.207031%,12.600708%);stop-opacity:1;"
id="stop217853" />
<stop
offset="0.8125"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217855" />
<stop
offset="0.875"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217857" />
<stop
offset="1"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217859" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="110.77991"
inkscape:cy="175.45654"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-nodes="false"
inkscape:snap-others="false"
inkscape:window-width="1600"
inkscape:window-height="882"
inkscape:window-x="299"
inkscape:window-y="76"
inkscape:window-maximized="0"
inkscape:snap-global="false" />
<metadata
id="metadata261900">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-56.636094,-70.97654)">
<path
inkscape:connector-curvature="0"
id="path227414"
d="M 56.636094,70.97654 H 71.689792 V 199.2898 H 56.636094 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
<path
inkscape:connector-curvature="0"
id="path227416"
d="M 71.875811,70.97654 H 56.636094 v 128.4993 H 71.875811 Z M 71.689756,199.28981 H 56.823489 V 71.163954 h 14.866267 z m 0,0"
style="fill:#ababab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
<rect
style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.20018744;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="rect866-0-0"
width="10.705551"
height="10.537507"
x="59.100956"
y="179.87476"
ry="1.2795542" />
<g
aria-label="RMS"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text890"
transform="matrix(0.43238424,0,0,0.43238424,54.945335,48.667005)">
<path
d="m 14.761769,71.377706 q 0.335897,0.113688 0.651123,0.485758 0.320394,0.372071 0.640788,1.023194 l 1.059367,2.108398 h -1.121379 l -0.98702,-1.979207 q -0.382405,-0.775147 -0.74414,-1.028361 -0.356568,-0.253215 -0.976685,-0.253215 h -1.136881 v 3.260783 h -1.043864 v -7.715291 h 2.356445 q 1.322917,0 1.97404,0.552938 0.651123,0.552938 0.651123,1.669149 0,0.728637 -0.341065,1.209228 -0.335896,0.480591 -0.981852,0.666626 z m -2.614827,-3.240112 v 2.738851 h 1.312581 q 0.754476,0 1.136882,-0.346232 0.387573,-0.3514 0.387573,-1.028361 0,-0.676962 -0.387573,-1.018026 -0.382406,-0.346232 -1.136882,-0.346232 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path892"
inkscape:connector-curvature="0" />
<path
d="m 18.461801,67.279765 h 1.555461 l 1.968872,5.250325 1.979207,-5.250325 h 1.555461 v 7.715291 h -1.018026 v -6.77478 l -1.989542,5.291667 H 21.464202 L 19.47466,68.220276 v 6.77478 h -1.012859 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path894"
inkscape:connector-curvature="0" />
<path
d="m 32.223236,67.53298 v 1.018025 q -0.594279,-0.28422 -1.121379,-0.423746 -0.5271,-0.139527 -1.018026,-0.139527 -0.852661,0 -1.317749,0.330729 -0.45992,0.330729 -0.45992,0.940511 0,0.511597 0.304891,0.775147 0.310059,0.258382 1.167887,0.418579 l 0.630453,0.129191 q 1.167887,0.222209 1.720825,0.785482 0.558105,0.558105 0.558105,1.498616 0,1.121379 -0.754475,1.700155 -0.749309,0.578776 -2.201416,0.578776 -0.547771,0 -1.167888,-0.124024 -0.614949,-0.124023 -1.276408,-0.366902 v -1.07487 q 0.635621,0.356567 1.245402,0.537435 0.609782,0.180867 1.198894,0.180867 0.894002,0 1.37976,-0.351399 0.485759,-0.3514 0.485759,-1.002523 0,-0.568441 -0.3514,-0.888835 -0.346232,-0.320394 -1.142049,-0.480591 l -0.63562,-0.124023 q -1.167887,-0.232544 -1.689819,-0.728638 -0.521932,-0.496093 -0.521932,-1.37976 0,-1.023194 0.718302,-1.612305 0.72347,-0.589111 1.989543,-0.589111 0.542602,0 1.105875,0.09819 0.563273,0.09819 1.152385,0.294556 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path896"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="LEN"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text901"
transform="matrix(0.33463097,0,0,0.33463097,57.604766,92.476346)">
<path
d="m 12.038518,65.074794 h 1.043864 v 6.836792 h 3.756876 v 0.878499 h -4.80074 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path911"
inkscape:connector-curvature="0" />
<path
d="m 17.929631,65.074794 h 4.878255 v 0.878499 h -3.834391 v 2.284098 h 3.674194 v 0.8785 h -3.674194 v 2.795695 h 3.927409 v 0.878499 h -4.971273 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path913"
inkscape:connector-curvature="0" />
<path
d="m 24.626897,65.074794 h 1.405599 l 3.420979,6.454386 v -6.454386 h 1.012859 v 7.715291 h -1.405599 l -3.42098,-6.454386 v 6.454386 h -1.012858 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path915"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="RISE"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text905"
transform="matrix(0.33463097,0,0,0.33463097,56.496548,105.38356)">
<path
d="m 16.632653,81.333494 q 0.335897,0.113688 0.651123,0.485758 0.320394,0.37207 0.640788,1.023193 l 1.059367,2.108399 h -1.121379 l -0.98702,-1.979207 q -0.382405,-0.775147 -0.74414,-1.028361 -0.356568,-0.253215 -0.976685,-0.253215 h -1.136881 v 3.260783 h -1.043864 v -7.715291 h 2.356445 q 1.322917,0 1.97404,0.552938 0.651123,0.552937 0.651123,1.669148 0,0.728638 -0.341065,1.209229 -0.335897,0.480591 -0.981852,0.666626 z m -2.614827,-3.240113 v 2.738851 h 1.312581 q 0.754476,0 1.136882,-0.346232 0.387573,-0.3514 0.387573,-1.028361 0,-0.676961 -0.387573,-1.018025 -0.382406,-0.346233 -1.136882,-0.346233 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path918"
inkscape:connector-curvature="0" />
<path
d="m 20.332685,77.235553 h 1.043864 v 7.715291 h -1.043864 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path920"
inkscape:connector-curvature="0" />
<path
d="m 28.078983,77.488767 v 1.018026 q -0.594279,-0.28422 -1.121379,-0.423747 -0.527099,-0.139526 -1.018025,-0.139526 -0.852662,0 -1.317749,0.330729 -0.459921,0.330729 -0.459921,0.940511 0,0.511597 0.304891,0.775146 0.310059,0.258383 1.167888,0.41858 l 0.630452,0.129191 q 1.167887,0.222208 1.720825,0.785481 0.558106,0.558106 0.558106,1.498617 0,1.121378 -0.754476,1.700154 -0.749308,0.578776 -2.201416,0.578776 -0.54777,0 -1.167887,-0.124023 -0.61495,-0.124023 -1.276408,-0.366903 V 83.53491 q 0.63562,0.356567 1.245402,0.537434 0.609782,0.180868 1.198893,0.180868 0.894002,0 1.379761,-0.3514 0.485758,-0.351399 0.485758,-1.002522 0,-0.568441 -0.3514,-0.888835 -0.346232,-0.320394 -1.142049,-0.480591 l -0.63562,-0.124023 q -1.167887,-0.232544 -1.689819,-0.728638 -0.521932,-0.496094 -0.521932,-1.379761 0,-1.023193 0.718302,-1.612304 0.72347,-0.589112 1.989543,-0.589112 0.542602,0 1.105875,0.09819 0.563274,0.09819 1.152385,0.294555 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path922"
inkscape:connector-curvature="0" />
<path
d="m 30.171878,77.235553 h 4.878255 v 0.878499 h -3.834391 v 2.284098 h 3.674194 v 0.8785 h -3.674194 v 2.795694 h 3.927408 v 0.8785 h -4.971272 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path924"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="FALL"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text909"
transform="matrix(0.33463097,0,0,0.33463097,56.04029,117.94522)">
<path
d="m 14.510763,90.599032 h 4.433838 v 0.8785 h -3.389974 v 2.273763 h 3.059245 v 0.878499 h -3.059245 v 3.684529 h -1.043864 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path927"
inkscape:connector-curvature="0" />
<path
d="m 22.215719,91.627393 -1.415934,3.839559 h 2.837036 z m -0.589112,-1.028361 h 1.183391 l 2.940389,7.715291 h -1.085205 l -0.7028,-1.979207 h -3.477824 l -0.702799,1.979207 h -1.100708 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path929"
inkscape:connector-curvature="0" />
<path
d="m 26.871765,90.599032 h 1.043864 v 6.836792 h 3.756877 v 0.878499 h -4.800741 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path931"
inkscape:connector-curvature="0" />
<path
d="m 32.762878,90.599032 h 1.043864 v 6.836792 h 3.756877 v 0.878499 h -4.800741 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path933"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="OUT"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text938"
transform="matrix(0.34629667,0,0,0.34629667,73.542719,124.95925)">
<path
d="m -33.272492,116.02943 q -1.136881,0 -1.808675,0.84749 -0.666626,0.84749 -0.666626,2.30994 0,1.45727 0.666626,2.30477 0.671794,0.84749 1.808675,0.84749 1.136882,0 1.79834,-0.84749 0.666626,-0.8475 0.666626,-2.30477 0,-1.46245 -0.666626,-2.30994 -0.661458,-0.84749 -1.79834,-0.84749 z m 0,-0.8475 q 1.62264,0 2.594157,1.09038 0.971517,1.0852 0.971517,2.91455 0,1.82417 -0.971517,2.91455 -0.971517,1.0852 -2.594157,1.0852 -1.627807,0 -2.604492,-1.0852 -0.971517,-1.08521 -0.971517,-2.91455 0,-1.82935 0.971517,-2.91455 0.976685,-1.09038 2.604492,-1.09038 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path940"
inkscape:connector-curvature="0" />
<path
d="m -28.192699,115.32146 h 1.049032 v 4.68705 q 0,1.24024 0.449585,1.78801 0.449585,0.5426 1.457275,0.5426 1.002523,0 1.452108,-0.5426 0.449585,-0.54777 0.449585,-1.78801 v -4.68705 h 1.049031 v 4.81624 q 0,1.50895 -0.749308,2.27893 -0.744141,0.76998 -2.201416,0.76998 -1.462443,0 -2.211751,-0.76998 -0.744141,-0.76998 -0.744141,-2.27893 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path942"
inkscape:connector-curvature="0" />
<path
d="m -21.39208,115.32146 h 6.526733 v 0.8785 h -2.738851 v 6.83679 h -1.049031 v -6.83679 h -2.738851 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path944"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="widgets"
style="display:none">
<rect
style="opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.19901438;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262182"
width="4.7473311"
height="10.000421"
x="5.2461929"
y="46.91531" />
<rect
y="17.69401"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect262989"
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262991"
width="8.2117491"
height="8.2103519"
x="3.513984"
y="32.18959" />
<rect
y="62.809601"
x="3.5153599"
height="8.2103519"
width="8.2117491"
id="rect262993"
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262995"
width="8.2117491"
height="8.2103519"
x="3.5153599"
y="77.809547" />
<rect
y="87.811348"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect262997"
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262999"
width="8.2117491"
height="8.2103519"
x="3.513984"
y="97.809021" />
<rect
y="107.80944"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect263001"
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
y="77.715843"
x="10.820329"
height="0.99907935"
width="0.99910229"
id="rect263003"
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect263005"
width="0.99910229"
height="0.99907935"
x="10.820329"
y="87.716263" />
<rect
y="97.716682"
x="10.820329"
height="0.99907935"
width="0.99910229"
id="rect263007"
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect263009"
width="0.99910229"
height="0.99907935"
x="10.820329"
y="107.71573" />
</g>
</svg>

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

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

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

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

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

#include <math.h>
#include <stdlib.h> // memset

#include "bsp.hpp"

namespace rack_plugin_bsp {

typedef union fi_u {
float f;
unsigned int u;
int s;
} fi_t;

struct RMS : Module {
enum ParamIds {
IN_AMP_PARAM,
WIN_SIZE_PARAM,
SMOOTH_RISE_PARAM,
SMOOTH_FALL_PARAM,
OUT_AMP_PARAM,
NUM_PARAMS
};
enum InputIds {
AUDIO_INPUT,
NUM_INPUTS
};
enum OutputIds {
RMS_OUTPUT,
NUM_OUTPUTS
};

static const uint32_t MAX_WIN_SIZE = (1024u);

float buf[MAX_WIN_SIZE];
uint32_t buf_idx;

double integrated_val;
double smoothed_sign;
double last_smoothed_val;
double smoothed_val;

uint32_t last_win_size;

RMS() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {
last_win_size = 0u;
buf_idx = 0u;
}

void step() override;
};


void RMS::step() {

#if 0
outputs[RMS_OUTPUT].value = 0.0f;
return;
#endif

uint32_t winSize = (1u << uint32_t(params[WIN_SIZE_PARAM].value));
uint32_t winSizeMask = (winSize - 1u);

if(winSize != last_win_size)
{
last_win_size = winSize;
::memset((void*)buf, 0, winSize * sizeof(float));
buf_idx = 0u;
integrated_val = 0.0;
smoothed_sign = 0.0;
last_smoothed_val = 0.0;
smoothed_val = 0.0;
}

float inAmp = params[IN_AMP_PARAM].value;
inAmp *= inAmp;
inAmp *= inAmp;
// amp is now in range 0..1000

// Read new input and calc square
float inValOrig = inputs[AUDIO_INPUT].value;
float inVal = inValOrig * inAmp;
inVal *= inVal;

// Integrate new input
integrated_val += inVal;

// Subtract oldest input
integrated_val -= buf[(buf_idx - winSize + 1u) & winSizeMask];

buf[buf_idx] = inVal;
buf_idx = (buf_idx + 1u) & winSizeMask;

double outVal = integrated_val / double(winSize);
if(outVal > 0.0)
outVal = sqrt(outVal);

// Smoothing
double smoothAmt;
if(smoothed_sign >= 0.0)
{
smoothAmt = params[SMOOTH_RISE_PARAM].value;
}
else
{
smoothAmt = params[SMOOTH_FALL_PARAM].value;
}

smoothAmt = (1.0 - smoothAmt);
smoothAmt *= smoothAmt;
smoothAmt *= smoothAmt;
smoothAmt *= smoothAmt;
smoothed_val = smoothed_val + (outVal - smoothed_val) * smoothAmt;

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

// Output
float outAmp = params[OUT_AMP_PARAM].value;
outAmp *= outAmp;
outAmp *= outAmp;
// out amp is now in range 0..1000
outputs[RMS_OUTPUT].value = float(smoothed_val * outAmp);

#if 0
static int xxx = 0;
if(0 == (++xxx & 32767))
{
printf("xxx winSize=%u winSizeMask=%u bufIdx=%u smoothAmt=%f\n", winSize, winSizeMask, buf_idx, smoothAmt);
}
#endif
}


struct RMSWidget : ModuleWidget {
RMSWidget(RMS *module);
};

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

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

float cx;
float cy;

#define STY 33.0f
cx = 12.0f;
cy = 50.0f;
addInput(Port::create<PJ301MPort>(Vec(11.0f, cy), Port::INPUT, module, RMS::AUDIO_INPUT));
cy += STY;
addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(cx, cy), module, RMS::IN_AMP_PARAM, 0.0f, 3.0f, 0.562341325191f));
#undef STY

#define STY 50.0f
cx = 12.0f;
cy = 140.0f;
addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(cx, cy), module, RMS::WIN_SIZE_PARAM, 1.0f, 10.0f, 6.0f));
cy += STY;
addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(cx, cy), module, RMS::SMOOTH_RISE_PARAM, 0.0f, 1.0f, 0.447f));
cy += STY;
addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(cx, cy), module, RMS::SMOOTH_FALL_PARAM, 0.0f, 1.0f, 0.52f));
#undef STX
#undef STY

addParam(ParamWidget::create<RoundSmallBlackKnob>(Vec(12.0f, 290.0f), module, RMS::OUT_AMP_PARAM, 0.0f, 3.0f, 1.8f));
addOutput(Port::create<PJ301MPort>(Vec(11, 325), Port::OUTPUT, module, RMS::RMS_OUTPUT));
}

} // namespace rack_plugin_bsp

using namespace rack_plugin_bsp;

RACK_PLUGIN_MODEL_INIT(bsp, RMS) {
Model *modelRMS = Model::create<RMS, RMSWidget>("bsp", "RMS", "RMS", ENVELOPE_FOLLOWER_TAG, UTILITY_TAG);
return modelRMS;
}

+ 1
- 1
plugins/community/repos/bsp/src/Sway.cpp View File

@@ -182,7 +182,7 @@ struct SwayWidget : ModuleWidget {
};

SwayWidget::SwayWidget(Sway *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/sway.svg")));
setPanel(SVG::load(assetPlugin(plugin, "res/Sway.svg")));

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


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

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

RACK_PLUGIN_MODEL_DECLARE(bsp, AttenuMixer);
RACK_PLUGIN_MODEL_DECLARE(bsp, Obxd_VCF);
RACK_PLUGIN_MODEL_DECLARE(bsp, RMS);
RACK_PLUGIN_MODEL_DECLARE(bsp, Scanner);
RACK_PLUGIN_MODEL_DECLARE(bsp, Sway);
RACK_PLUGIN_MODEL_DECLARE(bsp, TunedDelayLine);
@@ -13,6 +14,7 @@ RACK_PLUGIN_INIT(bsp) {

RACK_PLUGIN_MODEL_ADD(bsp, AttenuMixer);
RACK_PLUGIN_MODEL_ADD(bsp, Obxd_VCF);
RACK_PLUGIN_MODEL_ADD(bsp, RMS);
RACK_PLUGIN_MODEL_ADD(bsp, Scanner);
RACK_PLUGIN_MODEL_ADD(bsp, Sway);
RACK_PLUGIN_MODEL_ADD(bsp, TunedDelayLine);


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

@@ -23,6 +23,7 @@ Suggested applications:
An adaption of Filatov Vadim's excellent Ob-Xd filter. Distributed under terms of the GNU General Public License V3.



# Scanner

A mixer that can seamlessly blend up to 16 input channels.
@@ -47,6 +48,17 @@ The switch enables the randomizer, and the button next to it is used to generate
NOTE: try modulating the position with the post output (feedback).



# RMS

A Root-Mean-Square based envelope follower, coupled with a slew limiter.

The rise and fall rates can be configured separately.

The module can be used to derive envelopes from audio signals, e.g. to implement compressor effects.



# Sway

A kind of slew-filtered noise generator, mainly designed for randomizing control voltages.
@@ -60,6 +72,7 @@ The "s+o" knobs are used to apply a final scaling/amplification (-5..5) and offs
NOTE: when the min/max time is set to very small values, the module can be used to generate audio-rate noise.



# Tuned Delay Line

This module was designed for Karplus-Strong synthesis.


+ 503
- 0
vst2_bin/plugins/bsp/res/RMS.svg View File

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

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="15.239717mm"
height="128.4993mm"
viewBox="0 0 15.239717 128.4993"
version="1.1"
id="svg261903"
sodipodi:docname="RMS.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<defs
id="defs261897">
<linearGradient
id="linear20"
gradientUnits="userSpaceOnUse"
x1="-0.095554203"
y1="0"
x2="1.32507"
y2="0"
gradientTransform="matrix(0,6.4087959,-6.4087959,0,64.256445,118.95198)">
<stop
offset="0"
style="stop-color:rgb(25.489807%,25.097656%,25.881958%);stop-opacity:1;"
id="stop217759" />
<stop
offset="0.0625"
style="stop-color:rgb(25.489807%,25.097656%,25.881958%);stop-opacity:1;"
id="stop217761" />
<stop
offset="0.078125"
style="stop-color:rgb(25.398254%,24.996948%,25.778198%);stop-opacity:1;"
id="stop217763" />
<stop
offset="0.09375"
style="stop-color:rgb(25.177002%,24.754333%,25.527954%);stop-opacity:1;"
id="stop217765" />
<stop
offset="0.109375"
style="stop-color:rgb(24.916077%,24.465942%,25.231934%);stop-opacity:1;"
id="stop217767" />
<stop
offset="0.125"
style="stop-color:rgb(24.653625%,24.179077%,24.935913%);stop-opacity:1;"
id="stop217769" />
<stop
offset="0.140625"
style="stop-color:rgb(24.3927%,23.892212%,24.639893%);stop-opacity:1;"
id="stop217771" />
<stop
offset="0.15625"
style="stop-color:rgb(24.131775%,23.605347%,24.343872%);stop-opacity:1;"
id="stop217773" />
<stop
offset="0.171875"
style="stop-color:rgb(23.87085%,23.316956%,24.047852%);stop-opacity:1;"
id="stop217775" />
<stop
offset="0.1875"
style="stop-color:rgb(23.609924%,23.03009%,23.751831%);stop-opacity:1;"
id="stop217777" />
<stop
offset="0.203125"
style="stop-color:rgb(23.348999%,22.743225%,23.455811%);stop-opacity:1;"
id="stop217779" />
<stop
offset="0.21875"
style="stop-color:rgb(23.088074%,22.45636%,23.15979%);stop-opacity:1;"
id="stop217781" />
<stop
offset="0.234375"
style="stop-color:rgb(22.825623%,22.167969%,22.86377%);stop-opacity:1;"
id="stop217783" />
<stop
offset="0.25"
style="stop-color:rgb(22.564697%,21.881104%,22.567749%);stop-opacity:1;"
id="stop217785" />
<stop
offset="0.265625"
style="stop-color:rgb(22.303772%,21.594238%,22.271729%);stop-opacity:1;"
id="stop217787" />
<stop
offset="0.28125"
style="stop-color:rgb(22.042847%,21.307373%,21.975708%);stop-opacity:1;"
id="stop217789" />
<stop
offset="0.296875"
style="stop-color:rgb(21.781921%,21.018982%,21.679688%);stop-opacity:1;"
id="stop217791" />
<stop
offset="0.3125"
style="stop-color:rgb(21.520996%,20.732117%,21.383667%);stop-opacity:1;"
id="stop217793" />
<stop
offset="0.328125"
style="stop-color:rgb(21.260071%,20.445251%,21.087646%);stop-opacity:1;"
id="stop217795" />
<stop
offset="0.34375"
style="stop-color:rgb(20.99762%,20.15686%,20.793152%);stop-opacity:1;"
id="stop217797" />
<stop
offset="0.359375"
style="stop-color:rgb(20.736694%,19.869995%,20.497131%);stop-opacity:1;"
id="stop217799" />
<stop
offset="0.375"
style="stop-color:rgb(20.475769%,19.58313%,20.201111%);stop-opacity:1;"
id="stop217801" />
<stop
offset="0.390625"
style="stop-color:rgb(20.214844%,19.296265%,19.90509%);stop-opacity:1;"
id="stop217803" />
<stop
offset="0.40625"
style="stop-color:rgb(19.953918%,19.007874%,19.60907%);stop-opacity:1;"
id="stop217805" />
<stop
offset="0.421875"
style="stop-color:rgb(19.692993%,18.721008%,19.313049%);stop-opacity:1;"
id="stop217807" />
<stop
offset="0.4375"
style="stop-color:rgb(19.432068%,18.434143%,19.017029%);stop-opacity:1;"
id="stop217809" />
<stop
offset="0.453125"
style="stop-color:rgb(19.169617%,18.147278%,18.721008%);stop-opacity:1;"
id="stop217811" />
<stop
offset="0.46875"
style="stop-color:rgb(18.908691%,17.858887%,18.424988%);stop-opacity:1;"
id="stop217813" />
<stop
offset="0.484375"
style="stop-color:rgb(18.647766%,17.572021%,18.128967%);stop-opacity:1;"
id="stop217815" />
<stop
offset="0.5"
style="stop-color:rgb(18.386841%,17.285156%,17.832947%);stop-opacity:1;"
id="stop217817" />
<stop
offset="0.515625"
style="stop-color:rgb(18.125916%,16.998291%,17.536926%);stop-opacity:1;"
id="stop217819" />
<stop
offset="0.53125"
style="stop-color:rgb(17.86499%,16.7099%,17.240906%);stop-opacity:1;"
id="stop217821" />
<stop
offset="0.546875"
style="stop-color:rgb(17.604065%,16.423035%,16.944885%);stop-opacity:1;"
id="stop217823" />
<stop
offset="0.5625"
style="stop-color:rgb(17.341614%,16.136169%,16.648865%);stop-opacity:1;"
id="stop217825" />
<stop
offset="0.578125"
style="stop-color:rgb(17.080688%,15.849304%,16.352844%);stop-opacity:1;"
id="stop217827" />
<stop
offset="0.59375"
style="stop-color:rgb(16.819763%,15.560913%,16.056824%);stop-opacity:1;"
id="stop217829" />
<stop
offset="0.609375"
style="stop-color:rgb(16.558838%,15.274048%,15.760803%);stop-opacity:1;"
id="stop217831" />
<stop
offset="0.625"
style="stop-color:rgb(16.297913%,14.987183%,15.464783%);stop-opacity:1;"
id="stop217833" />
<stop
offset="0.640625"
style="stop-color:rgb(16.036987%,14.700317%,15.168762%);stop-opacity:1;"
id="stop217835" />
<stop
offset="0.65625"
style="stop-color:rgb(15.776062%,14.411926%,14.872742%);stop-opacity:1;"
id="stop217837" />
<stop
offset="0.671875"
style="stop-color:rgb(15.513611%,14.125061%,14.576721%);stop-opacity:1;"
id="stop217839" />
<stop
offset="0.6875"
style="stop-color:rgb(15.252686%,13.838196%,14.280701%);stop-opacity:1;"
id="stop217841" />
<stop
offset="0.703125"
style="stop-color:rgb(14.99176%,13.551331%,13.98468%);stop-opacity:1;"
id="stop217843" />
<stop
offset="0.71875"
style="stop-color:rgb(14.730835%,13.262939%,13.68866%);stop-opacity:1;"
id="stop217845" />
<stop
offset="0.734375"
style="stop-color:rgb(14.46991%,12.976074%,13.392639%);stop-opacity:1;"
id="stop217847" />
<stop
offset="0.75"
style="stop-color:rgb(14.208984%,12.689209%,13.096619%);stop-opacity:1;"
id="stop217849" />
<stop
offset="0.765625"
style="stop-color:rgb(13.948059%,12.402344%,12.802124%);stop-opacity:1;"
id="stop217851" />
<stop
offset="0.78125"
style="stop-color:rgb(13.771057%,12.207031%,12.600708%);stop-opacity:1;"
id="stop217853" />
<stop
offset="0.8125"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217855" />
<stop
offset="0.875"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217857" />
<stop
offset="1"
style="stop-color:rgb(13.725281%,12.156677%,12.548828%);stop-opacity:1;"
id="stop217859" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="110.77991"
inkscape:cy="175.45654"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-nodes="false"
inkscape:snap-others="false"
inkscape:window-width="1600"
inkscape:window-height="882"
inkscape:window-x="299"
inkscape:window-y="76"
inkscape:window-maximized="0"
inkscape:snap-global="false" />
<metadata
id="metadata261900">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-56.636094,-70.97654)">
<path
inkscape:connector-curvature="0"
id="path227414"
d="M 56.636094,70.97654 H 71.689792 V 199.2898 H 56.636094 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
<path
inkscape:connector-curvature="0"
id="path227416"
d="M 71.875811,70.97654 H 56.636094 v 128.4993 H 71.875811 Z M 71.689756,199.28981 H 56.823489 V 71.163954 h 14.866267 z m 0,0"
style="fill:#ababab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277775" />
<rect
style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.20018744;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="rect866-0-0"
width="10.705551"
height="10.537507"
x="59.100956"
y="179.87476"
ry="1.2795542" />
<g
aria-label="RMS"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text890"
transform="matrix(0.43238424,0,0,0.43238424,54.945335,48.667005)">
<path
d="m 14.761769,71.377706 q 0.335897,0.113688 0.651123,0.485758 0.320394,0.372071 0.640788,1.023194 l 1.059367,2.108398 h -1.121379 l -0.98702,-1.979207 q -0.382405,-0.775147 -0.74414,-1.028361 -0.356568,-0.253215 -0.976685,-0.253215 h -1.136881 v 3.260783 h -1.043864 v -7.715291 h 2.356445 q 1.322917,0 1.97404,0.552938 0.651123,0.552938 0.651123,1.669149 0,0.728637 -0.341065,1.209228 -0.335896,0.480591 -0.981852,0.666626 z m -2.614827,-3.240112 v 2.738851 h 1.312581 q 0.754476,0 1.136882,-0.346232 0.387573,-0.3514 0.387573,-1.028361 0,-0.676962 -0.387573,-1.018026 -0.382406,-0.346232 -1.136882,-0.346232 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path892"
inkscape:connector-curvature="0" />
<path
d="m 18.461801,67.279765 h 1.555461 l 1.968872,5.250325 1.979207,-5.250325 h 1.555461 v 7.715291 h -1.018026 v -6.77478 l -1.989542,5.291667 H 21.464202 L 19.47466,68.220276 v 6.77478 h -1.012859 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path894"
inkscape:connector-curvature="0" />
<path
d="m 32.223236,67.53298 v 1.018025 q -0.594279,-0.28422 -1.121379,-0.423746 -0.5271,-0.139527 -1.018026,-0.139527 -0.852661,0 -1.317749,0.330729 -0.45992,0.330729 -0.45992,0.940511 0,0.511597 0.304891,0.775147 0.310059,0.258382 1.167887,0.418579 l 0.630453,0.129191 q 1.167887,0.222209 1.720825,0.785482 0.558105,0.558105 0.558105,1.498616 0,1.121379 -0.754475,1.700155 -0.749309,0.578776 -2.201416,0.578776 -0.547771,0 -1.167888,-0.124024 -0.614949,-0.124023 -1.276408,-0.366902 v -1.07487 q 0.635621,0.356567 1.245402,0.537435 0.609782,0.180867 1.198894,0.180867 0.894002,0 1.37976,-0.351399 0.485759,-0.3514 0.485759,-1.002523 0,-0.568441 -0.3514,-0.888835 -0.346232,-0.320394 -1.142049,-0.480591 l -0.63562,-0.124023 q -1.167887,-0.232544 -1.689819,-0.728638 -0.521932,-0.496093 -0.521932,-1.37976 0,-1.023194 0.718302,-1.612305 0.72347,-0.589111 1.989543,-0.589111 0.542602,0 1.105875,0.09819 0.563273,0.09819 1.152385,0.294556 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path896"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="LEN"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text901"
transform="matrix(0.33463097,0,0,0.33463097,57.604766,92.476346)">
<path
d="m 12.038518,65.074794 h 1.043864 v 6.836792 h 3.756876 v 0.878499 h -4.80074 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path911"
inkscape:connector-curvature="0" />
<path
d="m 17.929631,65.074794 h 4.878255 v 0.878499 h -3.834391 v 2.284098 h 3.674194 v 0.8785 h -3.674194 v 2.795695 h 3.927409 v 0.878499 h -4.971273 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path913"
inkscape:connector-curvature="0" />
<path
d="m 24.626897,65.074794 h 1.405599 l 3.420979,6.454386 v -6.454386 h 1.012859 v 7.715291 h -1.405599 l -3.42098,-6.454386 v 6.454386 h -1.012858 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path915"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="RISE"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text905"
transform="matrix(0.33463097,0,0,0.33463097,56.496548,105.38356)">
<path
d="m 16.632653,81.333494 q 0.335897,0.113688 0.651123,0.485758 0.320394,0.37207 0.640788,1.023193 l 1.059367,2.108399 h -1.121379 l -0.98702,-1.979207 q -0.382405,-0.775147 -0.74414,-1.028361 -0.356568,-0.253215 -0.976685,-0.253215 h -1.136881 v 3.260783 h -1.043864 v -7.715291 h 2.356445 q 1.322917,0 1.97404,0.552938 0.651123,0.552937 0.651123,1.669148 0,0.728638 -0.341065,1.209229 -0.335897,0.480591 -0.981852,0.666626 z m -2.614827,-3.240113 v 2.738851 h 1.312581 q 0.754476,0 1.136882,-0.346232 0.387573,-0.3514 0.387573,-1.028361 0,-0.676961 -0.387573,-1.018025 -0.382406,-0.346233 -1.136882,-0.346233 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path918"
inkscape:connector-curvature="0" />
<path
d="m 20.332685,77.235553 h 1.043864 v 7.715291 h -1.043864 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path920"
inkscape:connector-curvature="0" />
<path
d="m 28.078983,77.488767 v 1.018026 q -0.594279,-0.28422 -1.121379,-0.423747 -0.527099,-0.139526 -1.018025,-0.139526 -0.852662,0 -1.317749,0.330729 -0.459921,0.330729 -0.459921,0.940511 0,0.511597 0.304891,0.775146 0.310059,0.258383 1.167888,0.41858 l 0.630452,0.129191 q 1.167887,0.222208 1.720825,0.785481 0.558106,0.558106 0.558106,1.498617 0,1.121378 -0.754476,1.700154 -0.749308,0.578776 -2.201416,0.578776 -0.54777,0 -1.167887,-0.124023 -0.61495,-0.124023 -1.276408,-0.366903 V 83.53491 q 0.63562,0.356567 1.245402,0.537434 0.609782,0.180868 1.198893,0.180868 0.894002,0 1.379761,-0.3514 0.485758,-0.351399 0.485758,-1.002522 0,-0.568441 -0.3514,-0.888835 -0.346232,-0.320394 -1.142049,-0.480591 l -0.63562,-0.124023 q -1.167887,-0.232544 -1.689819,-0.728638 -0.521932,-0.496094 -0.521932,-1.379761 0,-1.023193 0.718302,-1.612304 0.72347,-0.589112 1.989543,-0.589112 0.542602,0 1.105875,0.09819 0.563274,0.09819 1.152385,0.294555 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path922"
inkscape:connector-curvature="0" />
<path
d="m 30.171878,77.235553 h 4.878255 v 0.878499 h -3.834391 v 2.284098 h 3.674194 v 0.8785 h -3.674194 v 2.795694 h 3.927408 v 0.8785 h -4.971272 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path924"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="FALL"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text909"
transform="matrix(0.33463097,0,0,0.33463097,56.04029,117.94522)">
<path
d="m 14.510763,90.599032 h 4.433838 v 0.8785 h -3.389974 v 2.273763 h 3.059245 v 0.878499 h -3.059245 v 3.684529 h -1.043864 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path927"
inkscape:connector-curvature="0" />
<path
d="m 22.215719,91.627393 -1.415934,3.839559 h 2.837036 z m -0.589112,-1.028361 h 1.183391 l 2.940389,7.715291 h -1.085205 l -0.7028,-1.979207 h -3.477824 l -0.702799,1.979207 h -1.100708 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path929"
inkscape:connector-curvature="0" />
<path
d="m 26.871765,90.599032 h 1.043864 v 6.836792 h 3.756877 v 0.878499 h -4.800741 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path931"
inkscape:connector-curvature="0" />
<path
d="m 32.762878,90.599032 h 1.043864 v 6.836792 h 3.756877 v 0.878499 h -4.800741 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path933"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="OUT"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#8b8b8b;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text938"
transform="matrix(0.34629667,0,0,0.34629667,73.542719,124.95925)">
<path
d="m -33.272492,116.02943 q -1.136881,0 -1.808675,0.84749 -0.666626,0.84749 -0.666626,2.30994 0,1.45727 0.666626,2.30477 0.671794,0.84749 1.808675,0.84749 1.136882,0 1.79834,-0.84749 0.666626,-0.8475 0.666626,-2.30477 0,-1.46245 -0.666626,-2.30994 -0.661458,-0.84749 -1.79834,-0.84749 z m 0,-0.8475 q 1.62264,0 2.594157,1.09038 0.971517,1.0852 0.971517,2.91455 0,1.82417 -0.971517,2.91455 -0.971517,1.0852 -2.594157,1.0852 -1.627807,0 -2.604492,-1.0852 -0.971517,-1.08521 -0.971517,-2.91455 0,-1.82935 0.971517,-2.91455 0.976685,-1.09038 2.604492,-1.09038 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path940"
inkscape:connector-curvature="0" />
<path
d="m -28.192699,115.32146 h 1.049032 v 4.68705 q 0,1.24024 0.449585,1.78801 0.449585,0.5426 1.457275,0.5426 1.002523,0 1.452108,-0.5426 0.449585,-0.54777 0.449585,-1.78801 v -4.68705 h 1.049031 v 4.81624 q 0,1.50895 -0.749308,2.27893 -0.744141,0.76998 -2.201416,0.76998 -1.462443,0 -2.211751,-0.76998 -0.744141,-0.76998 -0.744141,-2.27893 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path942"
inkscape:connector-curvature="0" />
<path
d="m -21.39208,115.32146 h 6.526733 v 0.8785 h -2.738851 v 6.83679 h -1.049031 v -6.83679 h -2.738851 z"
style="fill:#8b8b8b;fill-opacity:1;stroke-width:0.26458332"
id="path944"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="widgets"
style="display:none">
<rect
style="opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.19901438;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262182"
width="4.7473311"
height="10.000421"
x="5.2461929"
y="46.91531" />
<rect
y="17.69401"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect262989"
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262991"
width="8.2117491"
height="8.2103519"
x="3.513984"
y="32.18959" />
<rect
y="62.809601"
x="3.5153599"
height="8.2103519"
width="8.2117491"
id="rect262993"
style="opacity:1;vector-effect:none;fill:#00ff00;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262995"
width="8.2117491"
height="8.2103519"
x="3.5153599"
y="77.809547" />
<rect
y="87.811348"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect262997"
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect262999"
width="8.2117491"
height="8.2103519"
x="3.513984"
y="97.809021" />
<rect
y="107.80944"
x="3.513984"
height="8.2103519"
width="8.2117491"
id="rect263001"
style="opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.23716429;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
y="77.715843"
x="10.820329"
height="0.99907935"
width="0.99910229"
id="rect263003"
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect263005"
width="0.99910229"
height="0.99907935"
x="10.820329"
y="87.716263" />
<rect
y="97.716682"
x="10.820329"
height="0.99907935"
width="0.99910229"
id="rect263007"
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<rect
style="opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:0.02885729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect263009"
width="0.99910229"
height="0.99907935"
x="10.820329"
y="107.71573" />
</g>
</svg>

Loading…
Cancel
Save