BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

commit 366118388e1fdd5dcc55d889738e51d125969505
parent f16b4b23a7d5b3b05c62dd728846d89f08b97561
Author: Matt Demanett <matt@demanett.net>
Date:   Sat, 30 Nov 2019 01:21:07 -0500

Replace button+light toggles with button that lights up.

Diffstat:
Mres-src/AD-src.svg | 25++++++++-----------------
Mres-src/ADSR-src.svg | 13+++----------
Mres-src/EightFO-src.svg | 11++---------
Mres-src/FMOp-src.svg | 24+++++++++---------------
Mres-src/LFO-src.svg | 13+++----------
Mres-src/LLFO-src.svg | 10+++-------
Mres-src/SampleHold-src.svg | 40++++++++++++----------------------------
Mres-src/Stack-src.svg | 11+++--------
Mres-src/Switch-src.svg | 11+++--------
Mres-src/VCA-src.svg | 13+++++--------
Mres-src/VCM-src.svg | 14++++----------
Mres-src/VCO-src.svg | 16+++-------------
Mres-src/XCO-src.svg | 11++---------
Mres-src/XFade-src.svg | 13++++---------
Ares-src/button_9px_1_green-src.svg | 28++++++++++++++++++++++++++++
Mres/AD.svg | 0
Mres/ADSR.svg | 0
Mres/EightFO.svg | 0
Mres/FMOp.svg | 0
Mres/LFO.svg | 0
Mres/LLFO.svg | 0
Mres/SampleHold.svg | 0
Mres/Stack.svg | 0
Mres/Switch.svg | 0
Mres/VCA.svg | 0
Mres/VCM.svg | 0
Mres/VCO.svg | 0
Mres/XCO.svg | 0
Mres/XFade.svg | 0
Ares/button_9px_1_green.svg | 0
Msrc/AD.cpp | 14++++----------
Msrc/AD.hpp | 2--
Msrc/ADSR.cpp | 7++-----
Msrc/ADSR.hpp | 1-
Msrc/EightFO.cpp | 12++----------
Msrc/EightFO.hpp | 2--
Msrc/FMOp.cpp | 26++++++--------------------
Msrc/FMOp.hpp | 4----
Msrc/LFO.cpp | 12++----------
Msrc/LFO.hpp | 2--
Msrc/LLFO.cpp | 8++------
Msrc/LLFO.hpp | 1-
Msrc/SampleHold.cpp | 35++++++++---------------------------
Msrc/SampleHold.hpp | 6------
Msrc/Stack.cpp | 10+---------
Msrc/Stack.hpp | 2--
Msrc/Switch.cpp | 12++----------
Msrc/Switch.hpp | 2--
Msrc/VCA.cpp | 9++-------
Msrc/VCA.hpp | 1-
Msrc/VCM.cpp | 12++----------
Msrc/VCM.hpp | 2--
Msrc/VCO.cpp | 19++++---------------
Msrc/VCO.hpp | 3---
Msrc/XCO.cpp | 12++----------
Msrc/XCO.hpp | 2--
Msrc/XFade.cpp | 14+++-----------
Msrc/XFade.hpp | 2--
Msrc/widgets.cpp | 6++++++
Msrc/widgets.hpp | 4++++
60 files changed, 144 insertions(+), 353 deletions(-)

diff --git a/res-src/AD-src.svg b/res-src/AD-src.svg @@ -98,10 +98,6 @@ </g> </symbol> - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> - <symbol id="light-tiny" viewBox="0 0 1.1px 1.1px"> <rect width="3.2" height="3.2" fill="#0f0" /> </symbol> @@ -114,7 +110,8 @@ <!-- <polyline points="22.5,0 22.5,380" stroke-width="0.5" stroke="#0f0" /> --> <!-- <polyline points="5,0 5,380" stroke-width="0.5" stroke="#0f0" /> --> - <!-- <polyline points="40,0 40,380" stroke-width="0.5" stroke="#0f0" /> --> + <!-- <polyline points="25,0 25,380" stroke-width="0.5" stroke="#0f0" /> --> + <!-- <polyline points="38,0 38,380" stroke-width="0.5" stroke="#0f0" /> --> <!-- <rect width="45" height="10" fill="#0f0" transform="translate(0 68)" /> --> <!-- <rect width="45" height="10" fill="#0f0" transform="translate(0 127)" /> --> <!-- <rect width="45" height="10" fill="#0f0" transform="translate(0 177)" /> --> @@ -141,20 +138,14 @@ <use id="DECAY_LIGHT" xlink:href="#light-tiny" transform="translate(20.8 40)" /> </g> - <g transform="translate(2.5 132.5)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> - <use id="LOOP_PARAM" xlink:href="#button-small" transform="translate(31 -1.3)" /> - <use id="LOOP_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="0.5px" transform="translate(8 6.1)">LOOP</text> - <!-- <rect width="90" height="10" fill="#0f0" transform="translate(0 7)" /> --> + <g transform="translate(7.5 132.5)"> + <text font-size="5pt" letter-spacing="0.5px" transform="translate(0 6)">LOOP</text> + <use id="LOOP_PARAM" xlink:href="#button-small" transform="translate(21 -1)" /> </g> - <g transform="translate(2.5 147)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> - <use id="LINEAR_PARAM" xlink:href="#button-small" transform="translate(31 -1.3)" /> - <use id="LINEAR_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="2px" transform="translate(8 6.1)">LIN</text> - <!-- <rect width="90" height="10" fill="#0f0" transform="translate(0 7)" /> --> + <g transform="translate(13.5 147)"> + <text font-size="5pt" letter-spacing="1.5px" transform="translate(-1 6)">LIN</text> + <use id="LINEAR_PARAM" xlink:href="#button-small" transform="translate(15 -1)" /> </g> <g transform="translate(0 160.5)"> diff --git a/res-src/ADSR-src.svg b/res-src/ADSR-src.svg @@ -118,10 +118,6 @@ </g> </symbol> - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> - <symbol id="light-tiny" viewBox="0 0 1.1px 1.1px"> <rect width="3.2" height="3.2" fill="#0f0" /> </symbol> @@ -173,12 +169,9 @@ <use id="RELEASE_LIGHT" xlink:href="#light-tiny" transform="translate(20.8 40)" /> </g> - <g transform="translate(4 247)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> - <use id="LINEAR_PARAM" xlink:href="#button-small" transform="translate(28 -1.3)" /> - <use id="LINEAR_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="2px" transform="translate(9 6.1)">LIN</text> - <!-- <rect width="90" height="10" fill="#0f0" transform="translate(0 7)" /> --> + <g transform="translate(10.5 247)"> + <text font-size="5pt" letter-spacing="1px" transform="translate(0 6)">LIN</text> + <use id="LINEAR_PARAM" xlink:href="#button-small" transform="translate(15 -1)" /> </g> <g transform="translate(0 262)"> diff --git a/res-src/EightFO-src.svg b/res-src/EightFO-src.svg @@ -219,10 +219,6 @@ <circle r="4" stroke-width="1" stroke="#00f" fill="#f00" /> </g> </symbol> - - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> </defs> <rect width="100%" height="100%" fill="#ddd" /> @@ -253,12 +249,9 @@ <!-- <rect width="20" height="10" fill="#0f0" transform="translate(108 130)" /> --> <text font-size="6pt" letter-spacing="1px" transform="translate(34 133)">0V = C-3 = 2.04HZ</text> - <g transform="translate(86 335)"> - <!-- <rect width="230" height="15" fill="#0f0" transform="translate(-30 -17)" /> --> - <!-- <rect width="230" height="15" fill="#0f0" transform="translate(-30 8)" /> --> - <use id="SLOW_PARAM" xlink:href="#button-small" transform="translate(40 -1.3)" /> - <use id="SLOW_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> + <g transform="translate(78 335)"> <text font-size="6pt" letter-spacing="2px" transform="translate(9 6.1)">SLOW</text> + <use id="SLOW_PARAM" xlink:href="#button-small" transform="translate(40 -1.3)" /> </g> <!-- <rect width="230" height="10" fill="#0f0" transform="translate(0 137)" /> --> diff --git a/res-src/FMOp-src.svg b/res-src/FMOp-src.svg @@ -257,22 +257,18 @@ <g transform="translate(16 106)"> <text font-size="8pt" letter-spacing="1px" transform="translate(8 38) rotate(270)">DEPTH</text> <use id="DEPTH_PARAM" xlink:href="#knob-medium" transform="translate(20 0)" /> - <g transform="translate(14 35)"> - <!-- <rect width="38" height="6" fill="#f0f" transform="translate(0 0)" /> --> - <use id="ENV_TO_DEPTH_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="1px" transform="translate(9 6.2)">ENV</text> - <use id="ENV_TO_DEPTH_PARAM" xlink:href="#button-small" transform="translate(29 -1.3)" /> + <g transform="translate(18.5 35)"> + <text font-size="6pt" letter-spacing="1px" transform="translate(0 6.2)">ENV</text> + <use id="ENV_TO_DEPTH_PARAM" xlink:href="#button-small" transform="translate(20 -1.3)" /> </g> <use xlink:href="#knobguide-linear" transform="translate(10.5 -9.5)" /> </g> <g transform="translate(16 162)"> <text font-size="8pt" letter-spacing="2px" transform="translate(8 35) rotate(270)">FDBK</text> <use id="FEEDBACK_PARAM" xlink:href="#knob-medium" transform="translate(20 0)" /> - <g transform="translate(14 35)"> - <!-- <rect width="38" height="6" fill="#f0f" transform="translate(0 0)" /> --> - <use id="ENV_TO_FEEDBACK_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="1px" transform="translate(9 6.2)">ENV</text> - <use id="ENV_TO_FEEDBACK_PARAM" xlink:href="#button-small" transform="translate(29 -1.3)" /> + <g transform="translate(18.5 35)"> + <text font-size="6pt" letter-spacing="1px" transform="translate(0 6.2)">ENV</text> + <use id="ENV_TO_FEEDBACK_PARAM" xlink:href="#button-small" transform="translate(20 -1.3)" /> </g> <use xlink:href="#knobguide-linear" transform="translate(10.5 -9.5)" /> </g> @@ -280,11 +276,9 @@ <!-- <polyline points="0,0 150,0" fill="none" stroke="#0f0" transform="translate(0 13)" /> --> <text font-size="8pt" letter-spacing="2px" transform="translate(8 37.5) rotate(270)">LEVEL</text> <use id="LEVEL_PARAM" xlink:href="#knob-medium" transform="translate(20 0)" /> - <g transform="translate(14 35)"> - <!-- <rect width="38" height="6" fill="#f0f" transform="translate(0 0)" /> --> - <use id="ENV_TO_LEVEL_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="1px" transform="translate(9 6.2)">ENV</text> - <use id="ENV_TO_LEVEL_PARAM" xlink:href="#button-small" transform="translate(29 -1.3)" /> + <g transform="translate(18.5 35)"> + <text font-size="6pt" letter-spacing="1px" transform="translate(0 6.2)">ENV</text> + <use id="ENV_TO_LEVEL_PARAM" xlink:href="#button-small" transform="translate(20 -1.3)" /> </g> <use xlink:href="#knobguide-linear" transform="translate(10.5 -9.5)" /> </g> diff --git a/res-src/LFO-src.svg b/res-src/LFO-src.svg @@ -198,10 +198,6 @@ <circle r="4" stroke-width="1" stroke="#00f" fill="#f00" /> </g> </symbol> - - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> </defs> <rect width="100%" height="100%" fill="#ddd" /> @@ -232,12 +228,9 @@ <!-- <rect width="20" height="10" fill="#0f0" transform="translate(108 130)" /> --> <text font-size="6pt" letter-spacing="1px" transform="translate(34 133)">0V = C-3 = 2.04HZ</text> - <g transform="translate(111 240)"> - <!-- <rect width="230" height="15" fill="#0f0" transform="translate(-30 -17)" /> --> - <!-- <rect width="230" height="15" fill="#0f0" transform="translate(-30 8)" /> --> - <use id="SLOW_PARAM" xlink:href="#button-small" transform="translate(9 9)" /> - <use id="SLOW_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="1px" transform="translate(9 6.1)">SLOW</text> + <g transform="translate(110.5 238.5)"> + <text font-size="6pt" letter-spacing="1px" transform="translate(0 6.1)">SLOW</text> + <use id="SLOW_PARAM" xlink:href="#button-small" transform="translate(26.5 -1)" /> </g> <g transform="translate(10 150)"> diff --git a/res-src/LLFO-src.svg b/res-src/LLFO-src.svg @@ -138,13 +138,9 @@ <use xlink:href="#knobguide-frequency-llfo" transform="translate(0 -7.5)" /> </g> - <g transform="translate(2 72)"> - <!-- <rect width="45" height="8" fill="#f0f" transform="translate(0 -9)" /> --> - <!-- <rect width="230" height="15" fill="#0f0" transform="translate(-30 -17)" /> --> - <!-- <rect width="230" height="15" fill="#0f0" transform="translate(-30 8)" /> --> - <use id="SLOW_PARAM" xlink:href="#button-small" transform="translate(32 -1)" /> - <use id="SLOW_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="0.5px" transform="translate(8 6.1)">SLOW</text> + <g transform="translate(0 72)"> + <text font-size="6pt" letter-spacing="1px" transform="translate(4 6.1)">SLOW</text> + <use id="SLOW_PARAM" xlink:href="#button-small" transform="translate(31 -1)" /> </g> <g transform="translate(0.5 88)"> diff --git a/res-src/SampleHold-src.svg b/res-src/SampleHold-src.svg @@ -48,10 +48,6 @@ <circle r="4" stroke-width="1" stroke="#00f" fill="#f00" /> </g> </symbol> - - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> </defs> <rect width="100%" height="100%" fill="#ddd" /> @@ -88,20 +84,14 @@ <text font-size="5pt" letter-spacing="2px" transform="translate(12.5 35)">IN</text> </g> - <g transform="translate(7 41)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> - <use id="TRACK1_PARAM" xlink:href="#button-small" transform="translate(22 -1.3)" /> - <use id="TRACK1_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="5pt" letter-spacing="0.5px" transform="translate(7.3 5.5)">TRK</text> - <!-- <rect width="90" height="5" fill="#0f0" transform="translate(0 -6)" /> --> + <g transform="translate(9.5 41)"> + <text font-size="5pt" letter-spacing="1px" transform="translate(0 5.5)">TRK</text> + <use id="TRACK1_PARAM" xlink:href="#button-small" transform="translate(17 -1.3)" /> </g> - <g transform="translate(7 52)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> - <use id="INVERT1_PARAM" xlink:href="#button-small" transform="translate(22 -1.3)" /> - <use id="INVERT1_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="5pt" letter-spacing="1.2px" transform="translate(7.3 5.5)">INV</text> - <!-- <rect width="90" height="5" fill="#0f0" transform="translate(0 -6)" /> --> + <g transform="translate(9.5 52)"> + <text font-size="5pt" letter-spacing="1.2px" transform="translate(1 5.5)">INV</text> + <use id="INVERT1_PARAM" xlink:href="#button-small" transform="translate(17 -1.3)" /> </g> <g transform="translate(5.5 64)"> @@ -134,20 +124,14 @@ <text font-size="5pt" letter-spacing="2px" transform="translate(12.5 35)">IN</text> </g> - <g transform="translate(7 41)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> - <use id="TRACK2_PARAM" xlink:href="#button-small" transform="translate(22 -1.3)" /> - <use id="TRACK2_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="5pt" letter-spacing="0.5px" transform="translate(7.3 5.5)">TRK</text> - <!-- <rect width="90" height="5" fill="#0f0" transform="translate(0 -6)" /> --> + <g transform="translate(9.5 41)"> + <text font-size="5pt" letter-spacing="1px" transform="translate(0 5.5)">TRK</text> + <use id="TRACK2_PARAM" xlink:href="#button-small" transform="translate(17 -1.3)" /> </g> - <g transform="translate(7 52)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> - <use id="INVERT2_PARAM" xlink:href="#button-small" transform="translate(22 -1.3)" /> - <use id="INVERT2_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="5pt" letter-spacing="1.2px" transform="translate(7.3 5.5)">INV</text> - <!-- <rect width="90" height="5" fill="#0f0" transform="translate(0 -6)" /> --> + <g transform="translate(9.5 52)"> + <text font-size="5pt" letter-spacing="1.2px" transform="translate(1 5.5)">INV</text> + <use id="INVERT2_PARAM" xlink:href="#button-small" transform="translate(17 -1.3)" /> </g> <g transform="translate(5.5 64)"> diff --git a/res-src/Stack-src.svg b/res-src/Stack-src.svg @@ -133,10 +133,6 @@ </g> </symbol> - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> - <symbol id="input" viewBox="0 0 24px 24px"> <g transform="translate(12 12)"> <circle cx="0" cy="0" r="5" stroke-width="1" stroke="#0f0" fill="#0f0" /> @@ -193,10 +189,9 @@ <rect width="34" height="50" rx="5" fill="#fafafa" /> <use id="CV_INPUT" xlink:href="#input" transform="translate(5 3)" /> <text font-size="5pt" letter-spacing="2px" transform="translate(11 35)">CV</text> - <g transform="translate(3 39)"> - <use id="QUANTIZE_LIGHT" xlink:href="#light-small" transform="translate(0 0.5)" /> - <text font-size="5pt" letter-spacing="1px" transform="translate(8 6)">QZ</text> - <use id="QUANTIZE_PARAM" xlink:href="#button" transform="translate(20 -1)" /> + <g transform="translate(1.5 39)"> + <text font-size="5pt" letter-spacing="0.75px" transform="translate(0 6)">QNTZ</text> + <use id="QUANTIZE_PARAM" xlink:href="#button" transform="translate(22 -1)" /> </g> </g> diff --git a/res-src/Switch-src.svg b/res-src/Switch-src.svg @@ -35,10 +35,6 @@ </g> </symbol> - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> - <symbol id="input" viewBox="0 0 24px 24px"> <g transform="translate(12 12)"> <circle cx="0" cy="0" r="5" stroke-width="1" stroke="#0f0" fill="#0f0" /> @@ -80,10 +76,9 @@ <text font-size="5pt" letter-spacing="2px" transform="translate(5.5 58)">GATE</text> </g> - <g transform="translate(4 66)"> - <use id="LATCH_LIGHT" xlink:href="#light-small" transform="translate(0 0.5)" /> - <text font-size="5pt" letter-spacing="1px" transform="translate(8 6)">LTCH</text> - <use id="LATCH_PARAM" xlink:href="#button-small" transform="translate(29 -1)" /> + <g transform="translate(4.5 67)"> + <text font-size="5pt" letter-spacing="1px" transform="translate(0 6)">LATCH</text> + <use id="LATCH_PARAM" xlink:href="#button-small" transform="translate(27 -1)" /> </g> <g transform="translate(0 79)"> diff --git a/res-src/VCA-src.svg b/res-src/VCA-src.svg @@ -53,10 +53,6 @@ </g> </symbol> - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> - <symbol id="input" viewBox="0 0 24px 24px"> <g transform="translate(12 12)"> <circle cx="0" cy="0" r="5" stroke-width="1" stroke="#0f0" fill="#0f0" /> @@ -136,9 +132,10 @@ </g> </g> - <g transform="translate(6.5 334)"> - <use id="LINEAR_LIGHT" xlink:href="#light-small" transform="translate(0 0.5)" /> - <text font-size="5pt" letter-spacing="1px" transform="translate(8 6)">LIN</text> - <use id="LINEAR_PARAM" xlink:href="#button" transform="translate(23 -1)" /> + <g transform="translate(10.5 334)"> + <text font-size="5pt" letter-spacing="1px" transform="translate(0 6)">LIN</text> + <use id="LINEAR_PARAM" xlink:href="#button" transform="translate(15 -1)" /> </g> + <!-- <polyline points="0,0 0,380" stroke-width="0.5" stroke="#0f0" transform="translate(36.5 0)" /> --> + <!-- <polyline points="0,0 0,380" stroke-width="0.5" stroke="#0f0" transform="translate(8.5 0)" /> --> </svg> diff --git a/res-src/VCM-src.svg b/res-src/VCM-src.svg @@ -66,10 +66,6 @@ <circle r="4" stroke-width="1" stroke="#00f" fill="#f00" /> </g> </symbol> - - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> </defs> <rect width="100%" height="100%" fill="#ddd" /> @@ -80,9 +76,9 @@ <!-- <rect width="50" height="20" fill="#0f0" transform="translate(0 0)" /> --> <!-- <rect width="50" height="20" fill="#0f0" transform="translate(100 0)" /> --> <!-- <polyline points="0,0 0,380" stroke="#0f0" stroke-width="1" fill="none" transform="translate(8.5 0)" /> --> - <!-- <polyline points="0,0 0,380" stroke="#0f0" stroke-width="1" fill="none" transform="translate(41.5 0)" /> --> + <!-- <polyline points="0,0 0,380" stroke="#0f0" stroke-width="1" fill="none" transform="translate(46.5 0)" /> --> <!-- <polyline points="0,0 0,380" stroke="#0f0" stroke-width="1" fill="none" transform="translate(75 0)" /> --> - <!-- <polyline points="0,0 0,380" stroke="#0f0" stroke-width="1" fill="none" transform="translate(108.5 0)" /> --> + <!-- <polyline points="0,0 0,380" stroke="#0f0" stroke-width="1" fill="none" transform="translate(103.5 0)" /> --> <!-- <polyline points="0,0 0,380" stroke="#0f0" stroke-width="1" fill="none" transform="translate(141.5 0)" /> --> <text class="title" x="52" y="19" font-size="12pt" letter-spacing="4px">VCM</text> @@ -181,11 +177,9 @@ </g> </g> - <g transform="translate(46 54)"> - <!-- <rect width="58" height="10" fill="#f0f" transform="translate(0 0)" /> --> - <use id="LINEAR_PARAM" xlink:href="#button-small" transform="translate(49 -1.3)" /> - <use id="LINEAR_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> + <g transform="translate(42 54)"> <text font-size="6pt" letter-spacing="2px" transform="translate(9 6.1)">LINEAR</text> + <use id="LINEAR_PARAM" xlink:href="#button-small" transform="translate(49 -1.3)" /> </g> </g> diff --git a/res-src/VCO-src.svg b/res-src/VCO-src.svg @@ -214,10 +214,6 @@ </g> </symbol> - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> - <symbol id="switch" viewBox="0 0 14px 24px"> <rect width="14px" height="24px" stroke-width="1" stroke="#000" fill="#ddd" /> <rect width="14px" height="12px" stroke-width="0" fill="#000" /> @@ -261,21 +257,15 @@ </g> <use xlink:href="#knobguide-centertick" transform="translate(36 141)" /> - <g transform="translate(82 150)"> + <g transform="translate(73 150)"> <g transform="translate(0 1)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> + <text font-size="6pt" letter-spacing="2px" transform="translate(10 6.1)">SLOW</text> <use id="SLOW_PARAM" xlink:href="#button-small" transform="translate(41 -1.3)" /> - <use id="SLOW_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="2px" transform="translate(9 6.1)">SLOW</text> - <!-- <rect width="90" height="10" fill="#0f0" transform="translate(0 7)" /> --> </g> <g transform="translate(0 14)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> + <text font-size="6pt" letter-spacing="0.5px" transform="translate(8 6.1)">LINEAR</text> <use id="LINEAR_PARAM" xlink:href="#button-small" transform="translate(41 -1.3)" /> - <use id="LINEAR_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> - <text font-size="6pt" letter-spacing="0.5px" transform="translate(9 6.1)">LINEAR</text> - <!-- <rect width="90" height="10" fill="#0f0" transform="translate(0 7)" /> --> </g> </g> diff --git a/res-src/XCO-src.svg b/res-src/XCO-src.svg @@ -200,10 +200,6 @@ </g> </symbol> - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> - <symbol id="switch" viewBox="0 0 14px 24px"> <rect width="14px" height="24px" stroke-width="1" stroke="#000" fill="#ddd" /> <rect width="14px" height="12px" stroke-width="0" fill="#000" /> @@ -246,12 +242,9 @@ </g> <use xlink:href="#knobguide-centertick" transform="translate(35 141)" /> - <g transform="translate(81 158.5)"> - <!-- <polyline points="0,3.2 70,3.2" stroke="#0f0" stroke-width="1" fill="none" /> --> - <use id="SLOW_PARAM" xlink:href="#button-small" transform="translate(40 -1.3)" /> - <use id="SLOW_LIGHT" xlink:href="#light-small" transform="translate(0 0)" /> + <g transform="translate(72 158.5)"> <text font-size="6pt" letter-spacing="2px" transform="translate(9 6.1)">SLOW</text> - <!-- <rect width="90" height="10" fill="#0f0" transform="translate(0 7)" /> --> + <use id="SLOW_PARAM" xlink:href="#button-small" transform="translate(40 -1.3)" /> </g> <g transform="translate(31 194)"> diff --git a/res-src/XFade-src.svg b/res-src/XFade-src.svg @@ -90,10 +90,6 @@ </g> </symbol> - <symbol id="light-small" viewBox="0 0 6.4px 6.4px"> - <rect width="6.4" height="6.4" fill="#0f0" /> - </symbol> - <symbol id="input" viewBox="0 0 24px 24px"> <g transform="translate(12 12)"> <circle cx="0" cy="0" r="5" stroke-width="1" stroke="#0f0" fill="#0f0" /> @@ -135,16 +131,15 @@ </g> </g> - <g transform="translate(0 131)"> + <g transform="translate(0 135)"> <text font-size="6pt" letter-spacing="1px" transform="translate(7.5 0)">SHAPE</text> <use id="CURVE_PARAM" xlink:href="#knob-smallest" transform="translate(14.5 17.5)" /> <use xlink:href="#knobguide-curve" transform="translate(0 3)" /> </g> - <g transform="translate(6.7 178)"> - <use id="LINEAR_LIGHT" xlink:href="#light-small" transform="translate(0 0.5)" /> - <text font-size="5pt" letter-spacing="1px" transform="translate(8 6)">LIN</text> - <use id="LINEAR_PARAM" xlink:href="#button" transform="translate(22.5 -1)" /> + <g transform="translate(10.5 178)"> + <text font-size="5pt" letter-spacing="1px" transform="translate(0 6)">LIN</text> + <use id="LINEAR_PARAM" xlink:href="#button" transform="translate(15 -1)" /> </g> <g transform="translate(0 210)"> diff --git a/res-src/button_9px_1_green-src.svg b/res-src/button_9px_1_green-src.svg @@ -0,0 +1,28 @@ +<svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + width="9" + height="9" + viewBox="0 0 9 9" +> + <g transform="translate(4.5 4.5)"> + <circle r="4.4" fill="#888" /> + <circle r="4.4" fill="#333" /> + + <circle r="4.2" fill="#5f5" /> + <circle r="4.2" fill="#666" fill-opacity="0.5" /> + + <circle r="4.0" fill="#5f5" /> + <circle r="4.0" fill="#777" fill-opacity="0.5" /> + + <circle r="3.8" fill="#5f5" /> + <circle r="3.8" fill="#888" fill-opacity="0.5" /> + + <circle r="3.6" fill="#5f5" /> + <circle r="3.6" fill="#999" fill-opacity="0.5" /> + + <circle r="3.3" fill="#5f5" /> + <circle r="3.3" fill="#aaa" fill-opacity="0.5" /> + </g> +</svg> diff --git a/res/AD.svg b/res/AD.svg Binary files differ. diff --git a/res/ADSR.svg b/res/ADSR.svg Binary files differ. diff --git a/res/EightFO.svg b/res/EightFO.svg Binary files differ. diff --git a/res/FMOp.svg b/res/FMOp.svg Binary files differ. diff --git a/res/LFO.svg b/res/LFO.svg Binary files differ. diff --git a/res/LLFO.svg b/res/LLFO.svg Binary files differ. diff --git a/res/SampleHold.svg b/res/SampleHold.svg Binary files differ. diff --git a/res/Stack.svg b/res/Stack.svg Binary files differ. diff --git a/res/Switch.svg b/res/Switch.svg Binary files differ. diff --git a/res/VCA.svg b/res/VCA.svg Binary files differ. diff --git a/res/VCM.svg b/res/VCM.svg Binary files differ. diff --git a/res/VCO.svg b/res/VCO.svg Binary files differ. diff --git a/res/XCO.svg b/res/XCO.svg Binary files differ. diff --git a/res/XFade.svg b/res/XFade.svg Binary files differ. diff --git a/res/button_9px_1_green.svg b/res/button_9px_1_green.svg Binary files differ. diff --git a/src/AD.cpp b/src/AD.cpp @@ -80,8 +80,6 @@ void AD::modulateChannel(int c) { } void AD::always(const ProcessArgs& args) { - lights[LOOP_LIGHT].value = _loopMode = params[LOOP_PARAM].getValue() > 0.5f; - lights[LINEAR_LIGHT].value = _linearMode = params[LINEAR_PARAM].getValue() > 0.5f; _attackLightSum = _decayLightSum = 0; } @@ -132,8 +130,8 @@ struct ADWidget : ModuleWidget { // generated by svg_widgets.rb auto attackParamPosition = Vec(8.0, 33.0); auto decayParamPosition = Vec(8.0, 90.0); - auto loopParamPosition = Vec(33.5, 131.2); - auto linearParamPosition = Vec(33.5, 145.7); + auto loopParamPosition = Vec(28.5, 131.5); + auto linearParamPosition = Vec(28.5, 146.0); auto triggerInputPosition = Vec(10.5, 163.5); auto attackInputPosition = Vec(10.5, 198.5); @@ -144,14 +142,12 @@ struct ADWidget : ModuleWidget { auto attackLightPosition = Vec(20.8, 65.0); auto decayLightPosition = Vec(20.8, 122.0); - auto loopLightPosition = Vec(2.5, 132.5); - auto linearLightPosition = Vec(2.5, 147.0); // end generated by svg_widgets.rb addParam(createParam<Knob29>(attackParamPosition, module, AD::ATTACK_PARAM)); addParam(createParam<Knob29>(decayParamPosition, module, AD::DECAY_PARAM)); - addParam(createParam<StatefulButton9>(loopParamPosition, module, AD::LOOP_PARAM)); - addParam(createParam<StatefulButton9>(linearParamPosition, module, AD::LINEAR_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(loopParamPosition, module, AD::LOOP_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(linearParamPosition, module, AD::LINEAR_PARAM)); addInput(createInput<Port24>(triggerInputPosition, module, AD::TRIGGER_INPUT)); addInput(createInput<Port24>(attackInputPosition, module, AD::ATTACK_INPUT)); @@ -162,8 +158,6 @@ struct ADWidget : ModuleWidget { addChild(createLight<TinyLight<GreenLight>>(attackLightPosition, module, AD::ATTACK_LIGHT)); addChild(createLight<TinyLight<GreenLight>>(decayLightPosition, module, AD::DECAY_LIGHT)); - addChild(createLight<SmallLight<GreenLight>>(loopLightPosition, module, AD::LOOP_LIGHT)); - addChild(createLight<SmallLight<GreenLight>>(linearLightPosition, module, AD::LINEAR_LIGHT)); } void appendContextMenu(Menu* menu) override { diff --git a/src/AD.hpp b/src/AD.hpp @@ -35,8 +35,6 @@ struct AD : BGModule { enum LightsIds { ATTACK_LIGHT, DECAY_LIGHT, - LOOP_LIGHT, - LINEAR_LIGHT, NUM_LIGHTS }; diff --git a/src/ADSR.cpp b/src/ADSR.cpp @@ -67,7 +67,6 @@ void ADSR::modulateChannel(int c) { } void ADSR::always(const ProcessArgs& args) { - lights[LINEAR_LIGHT].value = _linearMode = params[LINEAR_PARAM].getValue() > 0.5f; _attackLightSum = _decayLightSum = _sustainLightSum = _releaseLightSum = 0; } @@ -114,7 +113,7 @@ struct ADSRWidget : ModuleWidget { auto decayParamPosition = Vec(8.0, 90.0); auto sustainParamPosition = Vec(8.0, 147.0); auto releaseParamPosition = Vec(8.0, 204.0); - auto linearParamPosition = Vec(32.0, 245.7); + auto linearParamPosition = Vec(25.5, 246.0); auto gateInputPosition = Vec(10.5, 265.0); @@ -124,14 +123,13 @@ struct ADSRWidget : ModuleWidget { auto decayLightPosition = Vec(20.8, 122.0); auto sustainLightPosition = Vec(20.8, 179.0); auto releaseLightPosition = Vec(20.8, 236.0); - auto linearLightPosition = Vec(4.0, 247.0); // end generated by svg_widgets.rb addParam(createParam<Knob29>(attackParamPosition, module, ADSR::ATTACK_PARAM)); addParam(createParam<Knob29>(decayParamPosition, module, ADSR::DECAY_PARAM)); addParam(createParam<Knob29>(sustainParamPosition, module, ADSR::SUSTAIN_PARAM)); addParam(createParam<Knob29>(releaseParamPosition, module, ADSR::RELEASE_PARAM)); - addParam(createParam<StatefulButton9>(linearParamPosition, module, ADSR::LINEAR_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(linearParamPosition, module, ADSR::LINEAR_PARAM)); addInput(createInput<Port24>(gateInputPosition, module, ADSR::GATE_INPUT)); @@ -141,7 +139,6 @@ struct ADSRWidget : ModuleWidget { addChild(createLight<TinyLight<GreenLight>>(decayLightPosition, module, ADSR::DECAY_LIGHT)); addChild(createLight<TinyLight<GreenLight>>(sustainLightPosition, module, ADSR::SUSTAIN_LIGHT)); addChild(createLight<TinyLight<GreenLight>>(releaseLightPosition, module, ADSR::RELEASE_LIGHT)); - addChild(createLight<SmallLight<GreenLight>>(linearLightPosition, module, ADSR::LINEAR_LIGHT)); } void appendContextMenu(Menu* menu) override { diff --git a/src/ADSR.hpp b/src/ADSR.hpp @@ -32,7 +32,6 @@ struct ADSR : BGModule { DECAY_LIGHT, SUSTAIN_LIGHT, RELEASE_LIGHT, - LINEAR_LIGHT, NUM_LIGHTS }; diff --git a/src/EightFO.cpp b/src/EightFO.cpp @@ -113,10 +113,6 @@ void EightFO::modulateChannel(int c) { e.phase0Offset = phaseOffset(c, params[PHASE0_PARAM], inputs[PHASE0_INPUT], basePhase0Offset); } -void EightFO::always(const ProcessArgs& args) { - lights[SLOW_LIGHT].value = _slowMode = params[SLOW_PARAM].getValue() > 0.5f; -} - void EightFO::processChannel(const ProcessArgs& args, int c) { Engine& e = *_engines[c]; @@ -216,7 +212,7 @@ struct EightFOWidget : ModuleWidget { // generated by svg_widgets.rb auto frequencyParamPosition = Vec(40.0, 45.0); - auto slowParamPosition = Vec(126.0, 333.7); + auto slowParamPosition = Vec(118.0, 333.7); auto waveParamPosition = Vec(20.0, 168.0); auto samplePwmParamPosition = Vec(100.0, 163.0); auto offsetParamPosition = Vec(40.0, 226.0); @@ -252,8 +248,6 @@ struct EightFOWidget : ModuleWidget { auto phase2OutputPosition = Vec(218.0, 236.0); auto phase1OutputPosition = Vec(218.0, 276.0); auto phase0OutputPosition = Vec(218.0, 316.0); - - auto slowLightPosition = Vec(86.0, 335.0); // end generated by svg_widgets.rb addParam(createParam<Knob68>(frequencyParamPosition, module, EightFO::FREQUENCY_PARAM)); @@ -266,7 +260,7 @@ struct EightFOWidget : ModuleWidget { k->speed = 3.0; addParam(w); } - addParam(createParam<StatefulButton9>(slowParamPosition, module, EightFO::SLOW_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(slowParamPosition, module, EightFO::SLOW_PARAM)); addParam(createParam<Knob26>(samplePwmParamPosition, module, EightFO::SAMPLE_PWM_PARAM)); addParam(createParam<Knob26>(offsetParamPosition, module, EightFO::OFFSET_PARAM)); addParam(createParam<Knob26>(scaleParamPosition, module, EightFO::SCALE_PARAM)); @@ -302,8 +296,6 @@ struct EightFOWidget : ModuleWidget { addOutput(createOutput<Port24>(phase2OutputPosition, module, EightFO::PHASE2_OUTPUT)); addOutput(createOutput<Port24>(phase1OutputPosition, module, EightFO::PHASE1_OUTPUT)); addOutput(createOutput<Port24>(phase0OutputPosition, module, EightFO::PHASE0_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(slowLightPosition, module, EightFO::SLOW_LIGHT)); } void addPhaseParam(const Vec& position, Module* module, EightFO::ParamsIds paramId, float rotation) { diff --git a/src/EightFO.hpp b/src/EightFO.hpp @@ -58,7 +58,6 @@ struct EightFO : LFOBase { }; enum LightsIds { - SLOW_LIGHT, NUM_LIGHTS }; @@ -144,7 +143,6 @@ struct EightFO : LFOBase { void removeChannel(int c) override; void modulate() override; void modulateChannel(int c) override; - void always(const ProcessArgs& args) override; void processChannel(const ProcessArgs& args, int c) override; Phasor::phase_delta_t phaseOffset(int c, Param& p, Input& i, Phasor::phase_delta_t baseOffset); void updateOutput(int c, bool useSample, Output& output, Phasor::phase_delta_t& offset, float& sample, bool& active); diff --git a/src/FMOp.cpp b/src/FMOp.cpp @@ -163,12 +163,6 @@ void FMOp::modulateChannel(int c) { } } -void FMOp::always(const ProcessArgs& args) { - lights[ENV_TO_LEVEL_LIGHT].value = params[ENV_TO_LEVEL_PARAM].getValue() > 0.5f; - lights[ENV_TO_FEEDBACK_LIGHT].value = params[ENV_TO_FEEDBACK_PARAM].getValue() > 0.5f; - lights[ENV_TO_DEPTH_LIGHT].value = params[ENV_TO_DEPTH_PARAM].getValue() > 0.5f; -} - void FMOp::processChannel(const ProcessArgs& args, int c) { Engine& e = *_engines[c]; @@ -277,11 +271,11 @@ struct FMOpWidget : ModuleWidget { auto sustainParamPosition = Vec(107.0, 184.0); auto releaseParamPosition = Vec(107.0, 229.0); auto depthParamPosition = Vec(36.0, 106.0); - auto envToDepthParamPosition = Vec(59.0, 139.7); + auto envToDepthParamPosition = Vec(54.5, 139.7); auto feedbackParamPosition = Vec(36.0, 162.0); - auto envToFeedbackParamPosition = Vec(59.0, 195.7); + auto envToFeedbackParamPosition = Vec(54.5, 195.7); auto levelParamPosition = Vec(36.0, 218.0); - auto envToLevelParamPosition = Vec(59.0, 251.7); + auto envToLevelParamPosition = Vec(54.5, 251.7); auto depthInputPosition = Vec(15.0, 274.0); auto feedbackInputPosition = Vec(47.0, 274.0); @@ -292,10 +286,6 @@ struct FMOpWidget : ModuleWidget { auto gateInputPosition = Vec(79.0, 318.0); auto audioOutputPosition = Vec(111.0, 318.0); - - auto envToDepthLightPosition = Vec(30.0, 141.0); - auto envToFeedbackLightPosition = Vec(30.0, 197.0); - auto envToLevelLightPosition = Vec(30.0, 253.0); // end generated by svg_widgets.rb addParam(createParam<Knob38>(ratioParamPosition, module, FMOp::RATIO_PARAM)); @@ -307,9 +297,9 @@ struct FMOpWidget : ModuleWidget { addParam(createParam<Knob26>(depthParamPosition, module, FMOp::DEPTH_PARAM)); addParam(createParam<Knob26>(feedbackParamPosition, module, FMOp::FEEDBACK_PARAM)); addParam(createParam<Knob26>(levelParamPosition, module, FMOp::LEVEL_PARAM)); - addParam(createParam<StatefulButton9>(envToLevelParamPosition, module, FMOp::ENV_TO_LEVEL_PARAM)); - addParam(createParam<StatefulButton9>(envToFeedbackParamPosition, module, FMOp::ENV_TO_FEEDBACK_PARAM)); - addParam(createParam<StatefulButton9>(envToDepthParamPosition, module, FMOp::ENV_TO_DEPTH_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(envToLevelParamPosition, module, FMOp::ENV_TO_LEVEL_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(envToFeedbackParamPosition, module, FMOp::ENV_TO_FEEDBACK_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(envToDepthParamPosition, module, FMOp::ENV_TO_DEPTH_PARAM)); addInput(createInput<Port24>(sustainInputPosition, module, FMOp::SUSTAIN_INPUT)); addInput(createInput<Port24>(depthInputPosition, module, FMOp::DEPTH_INPUT)); @@ -320,10 +310,6 @@ struct FMOpWidget : ModuleWidget { addInput(createInput<Port24>(fmInputPosition, module, FMOp::FM_INPUT)); addOutput(createOutput<Port24>(audioOutputPosition, module, FMOp::AUDIO_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(envToLevelLightPosition, module, FMOp::ENV_TO_LEVEL_LIGHT)); - addChild(createLight<SmallLight<GreenLight>>(envToFeedbackLightPosition, module, FMOp::ENV_TO_FEEDBACK_LIGHT)); - addChild(createLight<SmallLight<GreenLight>>(envToDepthLightPosition, module, FMOp::ENV_TO_DEPTH_LIGHT)); } void appendContextMenu(Menu* menu) override { diff --git a/src/FMOp.hpp b/src/FMOp.hpp @@ -46,9 +46,6 @@ struct FMOp : BGModule { }; enum LightsIds { - ENV_TO_LEVEL_LIGHT, - ENV_TO_FEEDBACK_LIGHT, - ENV_TO_DEPTH_LIGHT, NUM_LIGHTS }; @@ -123,7 +120,6 @@ struct FMOp : BGModule { void removeChannel(int c) override; void modulate() override; void modulateChannel(int c) override; - void always(const ProcessArgs& args) override; void processChannel(const ProcessArgs& args, int c) override; }; diff --git a/src/LFO.cpp b/src/LFO.cpp @@ -84,10 +84,6 @@ void LFO::modulateChannel(int c) { } } -void LFO::always(const ProcessArgs& args) { - lights[SLOW_LIGHT].value = _slowMode = params[SLOW_PARAM].getValue() > 0.5f; -} - void LFO::processChannel(const ProcessArgs& args, int c) { Engine& e = *_engines[c]; @@ -155,7 +151,7 @@ struct LFOWidget : ModuleWidget { // generated by svg_widgets.rb auto frequencyParamPosition = Vec(41.0, 45.0); - auto slowParamPosition = Vec(120.0, 249.0); + auto slowParamPosition = Vec(137.0, 237.5); auto sampleParamPosition = Vec(37.0, 150.0); auto pwParamPosition = Vec(102.0, 150.0); auto offsetParamPosition = Vec(42.0, 196.0); @@ -173,12 +169,10 @@ struct LFOWidget : ModuleWidget { auto squareOutputPosition = Vec(111.0, 274.0); auto triangleOutputPosition = Vec(79.0, 318.0); auto sineOutputPosition = Vec(111.0, 318.0); - - auto slowLightPosition = Vec(111.0, 240.0); // end generated by svg_widgets.rb addParam(createParam<Knob68>(frequencyParamPosition, module, LFO::FREQUENCY_PARAM)); - addParam(createParam<StatefulButton9>(slowParamPosition, module, LFO::SLOW_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(slowParamPosition, module, LFO::SLOW_PARAM)); addParam(createParam<Knob26>(sampleParamPosition, module, LFO::SAMPLE_PARAM)); addParam(createParam<Knob26>(pwParamPosition, module, LFO::PW_PARAM)); addParam(createParam<Knob16>(offsetParamPosition, module, LFO::OFFSET_PARAM)); @@ -196,8 +190,6 @@ struct LFOWidget : ModuleWidget { addOutput(createOutput<Port24>(squareOutputPosition, module, LFO::SQUARE_OUTPUT)); addOutput(createOutput<Port24>(triangleOutputPosition, module, LFO::TRIANGLE_OUTPUT)); addOutput(createOutput<Port24>(sineOutputPosition, module, LFO::SINE_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(slowLightPosition, module, LFO::SLOW_LIGHT)); } }; diff --git a/src/LFO.hpp b/src/LFO.hpp @@ -40,7 +40,6 @@ struct LFO : LFOBase { }; enum LightsIds { - SLOW_LIGHT, NUM_LIGHTS }; @@ -92,7 +91,6 @@ struct LFO : LFOBase { void addChannel(int c) override; void removeChannel(int c) override; void modulateChannel(int c) override; - void always(const ProcessArgs& args) override; void processChannel(const ProcessArgs& args, int c) override; void updateOutput(int c, Phasor& wave, bool useSample, bool invert, Output& output, float& sample, bool& active); }; diff --git a/src/LLFO.cpp b/src/LLFO.cpp @@ -69,8 +69,6 @@ void LLFO::modulateChannel(int c) { } void LLFO::always(const ProcessArgs& args) { - lights[SLOW_LIGHT].value = _slowMode = params[SLOW_PARAM].getValue() > 0.5f; - Wave wave = (Wave)params[WAVE_PARAM].getValue(); lights[SINE_LIGHT].value = wave == SINE_WAVE; lights[TRIANGLE_LIGHT].value = wave == TRIANGLE_WAVE; @@ -113,7 +111,7 @@ struct LLFOWidget : ModuleWidget { // generated by svg_widgets.rb auto frequencyParamPosition = Vec(9.5, 27.0); - auto slowParamPosition = Vec(34.0, 71.0); + auto slowParamPosition = Vec(31.0, 71.0); auto waveParamPosition = Vec(18.0, 126.0); auto offsetParamPosition = Vec(14.5, 158.5); auto scaleParamPosition = Vec(14.5, 199.5); @@ -123,7 +121,6 @@ struct LLFOWidget : ModuleWidget { auto outOutputPosition = Vec(10.5, 304.0); - auto slowLightPosition = Vec(2.0, 72.0); auto sineLightPosition = Vec(2.0, 89.0); auto rampUpLightPosition = Vec(2.0, 102.0); auto squareLightPosition = Vec(2.0, 115.0); @@ -133,7 +130,7 @@ struct LLFOWidget : ModuleWidget { // end generated by svg_widgets.rb addParam(createParam<Knob26>(frequencyParamPosition, module, LLFO::FREQUENCY_PARAM)); - addParam(createParam<StatefulButton9>(slowParamPosition, module, LLFO::SLOW_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(slowParamPosition, module, LLFO::SLOW_PARAM)); addParam(createParam<StatefulButton9>(waveParamPosition, module, LLFO::WAVE_PARAM)); addParam(createParam<Knob16>(offsetParamPosition, module, LLFO::OFFSET_PARAM)); addParam(createParam<Knob16>(scaleParamPosition, module, LLFO::SCALE_PARAM)); @@ -143,7 +140,6 @@ struct LLFOWidget : ModuleWidget { addOutput(createOutput<Port24>(outOutputPosition, module, LLFO::OUT_OUTPUT)); - addChild(createLight<SmallLight<GreenLight>>(slowLightPosition, module, LLFO::SLOW_LIGHT)); addChild(createLight<SmallLight<GreenLight>>(sineLightPosition, module, LLFO::SINE_LIGHT)); addChild(createLight<SmallLight<GreenLight>>(rampUpLightPosition, module, LLFO::RAMP_UP_LIGHT)); addChild(createLight<SmallLight<GreenLight>>(squareLightPosition, module, LLFO::SQUARE_LIGHT)); diff --git a/src/LLFO.hpp b/src/LLFO.hpp @@ -31,7 +31,6 @@ struct LLFO : LFOBase { }; enum LightsIds { - SLOW_LIGHT, SINE_LIGHT, RAMP_UP_LIGHT, SQUARE_LIGHT, diff --git a/src/SampleHold.cpp b/src/SampleHold.cpp @@ -43,9 +43,7 @@ void SampleHold::processChannel(const ProcessArgs& args, int c) { assert(c == 0); processChannel( - lights[TRACK1_LIGHT], params[TRACK1_PARAM], - lights[INVERT1_LIGHT], params[INVERT1_PARAM], _trigger1, params[TRIGGER1_PARAM], @@ -56,9 +54,7 @@ void SampleHold::processChannel(const ProcessArgs& args, int c) { outputs[OUT1_OUTPUT] ); processChannel( - lights[TRACK2_LIGHT], params[TRACK2_PARAM], - lights[INVERT2_LIGHT], params[INVERT2_PARAM], _trigger2, params[TRIGGER2_PARAM], @@ -71,9 +67,7 @@ void SampleHold::processChannel(const ProcessArgs& args, int c) { } void SampleHold::processChannel( - Light& trackLight, Param& trackParam, - Light& invertLight, Param& invertParam, Trigger* trigger, Param& triggerParam, @@ -83,9 +77,6 @@ void SampleHold::processChannel( float* value, Output& out ) { - trackLight.value = trackParam.getValue(); - invertLight.value = invertParam.getValue(); - int n = std::max(1, std::max(triggerInput.getChannels(), in.getChannels())); out.setChannels(n); for (int i = 0; i < n; ++i) { @@ -150,11 +141,11 @@ struct SampleHoldWidget : ModuleWidget { // generated by svg_widgets.rb auto trigger1ParamPosition = Vec(13.5, 27.0); - auto track1ParamPosition = Vec(29.0, 122.7); - auto invert1ParamPosition = Vec(29.0, 133.7); + auto track1ParamPosition = Vec(26.5, 122.7); + auto invert1ParamPosition = Vec(26.5, 133.7); auto trigger2ParamPosition = Vec(13.5, 190.0); - auto track2ParamPosition = Vec(29.0, 285.7); - auto invert2ParamPosition = Vec(29.0, 296.7); + auto track2ParamPosition = Vec(26.5, 285.7); + auto invert2ParamPosition = Vec(26.5, 296.7); auto trigger1InputPosition = Vec(10.5, 49.0); auto in1InputPosition = Vec(10.5, 86.0); @@ -163,19 +154,14 @@ struct SampleHoldWidget : ModuleWidget { auto out1OutputPosition = Vec(10.5, 147.0); auto out2OutputPosition = Vec(10.5, 310.0); - - auto track1LightPosition = Vec(7.0, 124.0); - auto invert1LightPosition = Vec(7.0, 135.0); - auto track2LightPosition = Vec(7.0, 287.0); - auto invert2LightPosition = Vec(7.0, 298.0); // end generated by svg_widgets.rb addParam(createParam<Button18>(trigger1ParamPosition, module, SampleHold::TRIGGER1_PARAM)); addParam(createParam<Button18>(trigger2ParamPosition, module, SampleHold::TRIGGER2_PARAM)); - addParam(createParam<StatefulButton9>(track1ParamPosition, module, SampleHold::TRACK1_PARAM)); - addParam(createParam<StatefulButton9>(track2ParamPosition, module, SampleHold::TRACK2_PARAM)); - addParam(createParam<StatefulButton9>(invert1ParamPosition, module, SampleHold::INVERT1_PARAM)); - addParam(createParam<StatefulButton9>(invert2ParamPosition, module, SampleHold::INVERT2_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(track1ParamPosition, module, SampleHold::TRACK1_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(track2ParamPosition, module, SampleHold::TRACK2_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(invert1ParamPosition, module, SampleHold::INVERT1_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(invert2ParamPosition, module, SampleHold::INVERT2_PARAM)); addInput(createInput<Port24>(trigger1InputPosition, module, SampleHold::TRIGGER1_INPUT)); addInput(createInput<Port24>(in1InputPosition, module, SampleHold::IN1_INPUT)); @@ -184,11 +170,6 @@ struct SampleHoldWidget : ModuleWidget { addOutput(createOutput<Port24>(out1OutputPosition, module, SampleHold::OUT1_OUTPUT)); addOutput(createOutput<Port24>(out2OutputPosition, module, SampleHold::OUT2_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(track1LightPosition, module, SampleHold::TRACK1_LIGHT)); - addChild(createLight<SmallLight<GreenLight>>(track2LightPosition, module, SampleHold::TRACK2_LIGHT)); - addChild(createLight<SmallLight<GreenLight>>(invert1LightPosition, module, SampleHold::INVERT1_LIGHT)); - addChild(createLight<SmallLight<GreenLight>>(invert2LightPosition, module, SampleHold::INVERT2_LIGHT)); } struct RangeOptionMenuItem : OptionMenuItem { diff --git a/src/SampleHold.hpp b/src/SampleHold.hpp @@ -35,10 +35,6 @@ struct SampleHold : BGModule { }; enum LightsIds { - TRACK1_LIGHT, - TRACK2_LIGHT, - INVERT1_LIGHT, - INVERT2_LIGHT, NUM_LIGHTS }; @@ -78,9 +74,7 @@ struct SampleHold : BGModule { void dataFromJson(json_t* root) override; void processChannel(const ProcessArgs& args, int c) override; void processChannel( - Light& trackLight, Param& trackParam, - Light& invertLight, Param& invertParam, Trigger* trigger, Param& triggerParam, diff --git a/src/Stack.cpp b/src/Stack.cpp @@ -9,10 +9,6 @@ int Stack::channels() { return std::max(1, inputs[IN_INPUT].getChannels()); } -void Stack::always(const ProcessArgs& args) { - lights[QUANTIZE_LIGHT].value = params[QUANTIZE_PARAM].getValue() > 0.5f; -} - void Stack::modulateChannel(int c) { _semitones[c] = roundf(params[OCTAVE_PARAM].getValue()) * 12.0f; _semitones[c] += roundf(params[SEMIS_PARAM].getValue()); @@ -75,8 +71,6 @@ struct StackWidget : ModuleWidget { auto thruOutputPosition = Vec(10.5, 253.0); auto outOutputPosition = Vec(10.5, 289.0); - - auto quantizeLightPosition = Vec(8.5, 193.5); // end generated by svg_widgets.rb { @@ -93,15 +87,13 @@ struct StackWidget : ModuleWidget { addParam(w); } addParam(createParam<Knob16>(fineParamPosition, module, Stack::FINE_PARAM)); - addParam(createParam<StatefulButton9>(quantizeParamPosition, module, Stack::QUANTIZE_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(quantizeParamPosition, module, Stack::QUANTIZE_PARAM)); addInput(createInput<Port24>(cvInputPosition, module, Stack::CV_INPUT)); addInput(createInput<Port24>(inInputPosition, module, Stack::IN_INPUT)); addOutput(createOutput<Port24>(thruOutputPosition, module, Stack::THRU_OUTPUT)); addOutput(createOutput<Port24>(outOutputPosition, module, Stack::OUT_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(quantizeLightPosition, module, Stack::QUANTIZE_LIGHT)); } }; diff --git a/src/Stack.hpp b/src/Stack.hpp @@ -31,7 +31,6 @@ struct Stack : BGModule { }; enum LightsIds { - QUANTIZE_LIGHT, NUM_LIGHTS }; @@ -61,7 +60,6 @@ struct Stack : BGModule { bool active() override; int channels() override; void modulateChannel(int c) override; - void always(const ProcessArgs& args) override; void processChannel(const ProcessArgs& args, int c) override; }; diff --git a/src/Switch.cpp b/src/Switch.cpp @@ -29,10 +29,6 @@ void bogaudio::Switch::modulate() { _latch = params[LATCH_PARAM].getValue() > 0.5f; } -void bogaudio::Switch::always(const ProcessArgs& args) { - lights[LATCH_LIGHT].value = _latch; -} - void bogaudio::Switch::processChannel(const ProcessArgs& args, int c) { bool triggered = _trigger[c].process(params[GATE_PARAM].getValue() + inputs[GATE_INPUT].getVoltage(c)); if (_latch) { @@ -97,7 +93,7 @@ struct SwitchWidget : ModuleWidget { // generated by svg_widgets.rb auto gateParamPosition = Vec(13.5, 22.0); - auto latchParamPosition = Vec(32.9, 82.9); + auto latchParamPosition = Vec(31.4, 83.9); auto gateInputPosition = Vec(10.5, 44.0); auto high1InputPosition = Vec(10.5, 100.0); @@ -107,12 +103,10 @@ struct SwitchWidget : ModuleWidget { auto out1OutputPosition = Vec(10.5, 174.0); auto out2OutputPosition = Vec(10.5, 291.0); - - auto latchLightPosition = Vec(4.0, 84.5); // end generated by svg_widgets.rb addParam(createParam<Button18>(gateParamPosition, module, bogaudio::Switch::GATE_PARAM)); - addParam(createParam<StatefulButton9>(latchParamPosition, module, bogaudio::Switch::LATCH_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(latchParamPosition, module, bogaudio::Switch::LATCH_PARAM)); addInput(createInput<Port24>(gateInputPosition, module, bogaudio::Switch::GATE_INPUT)); addInput(createInput<Port24>(high1InputPosition, module, bogaudio::Switch::HIGH1_INPUT)); @@ -122,8 +116,6 @@ struct SwitchWidget : ModuleWidget { addOutput(createOutput<Port24>(out1OutputPosition, module, bogaudio::Switch::OUT1_OUTPUT)); addOutput(createOutput<Port24>(out2OutputPosition, module, bogaudio::Switch::OUT2_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(latchLightPosition, module, bogaudio::Switch::LATCH_LIGHT)); } }; diff --git a/src/Switch.hpp b/src/Switch.hpp @@ -29,7 +29,6 @@ struct Switch : BGModule { }; enum LightsIds { - LATCH_LIGHT, NUM_LIGHTS }; @@ -49,7 +48,6 @@ struct Switch : BGModule { int channels() override; void channelsChanged(int before, int after) override; void modulate() override; - void always(const ProcessArgs& args) override; void processChannel(const ProcessArgs& args, int _c) override; }; diff --git a/src/VCA.cpp b/src/VCA.cpp @@ -17,7 +17,6 @@ void VCA::processChannel(const ProcessArgs& args, int c) { assert(c == 0); bool linear = isLinear(); - lights[LINEAR_LIGHT].value = linear; channelStep(inputs[IN1_INPUT], outputs[OUT1_OUTPUT], params[LEVEL1_PARAM], inputs[CV1_INPUT], _amplifier1, _levelSL1, linear); channelStep(inputs[IN2_INPUT], outputs[OUT2_OUTPUT], params[LEVEL2_PARAM], inputs[CV2_INPUT], _amplifier2, _levelSL2, linear); } @@ -67,7 +66,7 @@ struct VCAWidget : ModuleWidget { // generated by svg_widgets.rb auto level1ParamPosition = Vec(9.5, 22.5); auto level2ParamPosition = Vec(9.5, 181.5); - auto linearParamPosition = Vec(29.4, 332.9); + auto linearParamPosition = Vec(25.4, 332.9); auto cv1InputPosition = Vec(10.5, 60.0); auto in1InputPosition = Vec(10.5, 95.0); @@ -76,13 +75,11 @@ struct VCAWidget : ModuleWidget { auto out1OutputPosition = Vec(10.5, 133.0); auto out2OutputPosition = Vec(10.5, 292.0); - - auto linearLightPosition = Vec(6.5, 334.5); // end generated by svg_widgets.rb addParam(createParam<Knob26>(level1ParamPosition, module, VCA::LEVEL1_PARAM)); addParam(createParam<Knob26>(level2ParamPosition, module, VCA::LEVEL2_PARAM)); - addParam(createParam<StatefulButton9>(linearParamPosition, module, VCA::LINEAR_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(linearParamPosition, module, VCA::LINEAR_PARAM)); addInput(createInput<Port24>(cv1InputPosition, module, VCA::CV1_INPUT)); addInput(createInput<Port24>(in1InputPosition, module, VCA::IN1_INPUT)); @@ -91,8 +88,6 @@ struct VCAWidget : ModuleWidget { addOutput(createOutput<Port24>(out1OutputPosition, module, VCA::OUT1_OUTPUT)); addOutput(createOutput<Port24>(out2OutputPosition, module, VCA::OUT2_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(linearLightPosition, module, VCA::LINEAR_LIGHT)); } }; diff --git a/src/VCA.hpp b/src/VCA.hpp @@ -32,7 +32,6 @@ struct VCA : BGModule { }; enum LightsIds { - LINEAR_LIGHT, NUM_LIGHTS }; diff --git a/src/VCM.cpp b/src/VCM.cpp @@ -16,10 +16,6 @@ int VCM::channels() { ); } -void VCM::always(const ProcessArgs& args) { - lights[LINEAR_LIGHT].value = isLinear(); -} - void VCM::processChannel(const ProcessArgs& args, int c) { bool linear = isLinear(); float out = channelStep(c, inputs[IN1_INPUT], params[LEVEL1_PARAM], inputs[CV1_INPUT], _amplifier1[c], linear); @@ -80,7 +76,7 @@ struct VCMWidget : DisableOutputLimitModuleWidget { auto level3ParamPosition = Vec(89.5, 163.5); auto level4ParamPosition = Vec(89.5, 228.5); auto mixParamPosition = Vec(22.5, 293.5); - auto linearParamPosition = Vec(95.0, 342.7); + auto linearParamPosition = Vec(91.0, 342.7); auto in1InputPosition = Vec(14.0, 37.0); auto cv1InputPosition = Vec(45.0, 37.0); @@ -93,8 +89,6 @@ struct VCMWidget : DisableOutputLimitModuleWidget { auto mixCvInputPosition = Vec(81.0, 294.0); auto mixOutputPosition = Vec(112.0, 294.0); - - auto linearLightPosition = Vec(46.0, 344.0); // end generated by svg_widgets.rb addParam(createParam<Knob38>(level1ParamPosition, module, VCM::LEVEL1_PARAM)); @@ -102,7 +96,7 @@ struct VCMWidget : DisableOutputLimitModuleWidget { addParam(createParam<Knob38>(level3ParamPosition, module, VCM::LEVEL3_PARAM)); addParam(createParam<Knob38>(level4ParamPosition, module, VCM::LEVEL4_PARAM)); addParam(createParam<Knob38>(mixParamPosition, module, VCM::MIX_PARAM)); - addParam(createParam<StatefulButton9>(linearParamPosition, module, VCM::LINEAR_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(linearParamPosition, module, VCM::LINEAR_PARAM)); addInput(createInput<Port24>(in1InputPosition, module, VCM::IN1_INPUT)); addInput(createInput<Port24>(cv1InputPosition, module, VCM::CV1_INPUT)); @@ -115,8 +109,6 @@ struct VCMWidget : DisableOutputLimitModuleWidget { addInput(createInput<Port24>(mixCvInputPosition, module, VCM::MIX_CV_INPUT)); addOutput(createOutput<Port24>(mixOutputPosition, module, VCM::MIX_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(linearLightPosition, module, VCM::LINEAR_LIGHT)); } }; diff --git a/src/VCM.hpp b/src/VCM.hpp @@ -40,7 +40,6 @@ struct VCM : DisableOutputLimitModule { }; enum LightsIds { - LINEAR_LIGHT, NUM_LIGHTS }; @@ -67,7 +66,6 @@ struct VCM : DisableOutputLimitModule { inline bool isLinear() { return params[LINEAR_PARAM].getValue() > 0.5f; } bool active() override; int channels() override; - void always(const ProcessArgs& args) override; void processChannel(const ProcessArgs& args, int c) override; float channelStep(int c, Input& input, Param& knob, Input& cv, Amplifier& amplifier, bool linear); }; diff --git a/src/VCO.cpp b/src/VCO.cpp @@ -139,11 +139,6 @@ void VCO::modulateChannel(int c) { e.square.setPulseWidth(e.squarePulseWidthSL.next(pw)); } -void VCO::always(const ProcessArgs& args) { - lights[SLOW_LIGHT].value = _slowMode = params[SLOW_PARAM].getValue() > 0.5f; - lights[LINEAR_LIGHT].value = _linearMode = params[LINEAR_PARAM].getValue() > 0.5f; -} - void VCO::processChannel(const ProcessArgs& args, int c) { Engine& e = *_engines[c]; @@ -254,8 +249,8 @@ struct VCOWidget : ModuleWidget { // generated by svg_widgets.rb auto frequencyParamPosition = Vec(41.0, 45.0); auto fineParamPosition = Vec(48.0, 153.0); - auto slowParamPosition = Vec(123.0, 149.7); - auto linearParamPosition = Vec(123.0, 162.7); + auto slowParamPosition = Vec(114.0, 149.7); + auto linearParamPosition = Vec(114.0, 162.7); auto pwParamPosition = Vec(62.0, 188.0); auto fmParamPosition = Vec(62.0, 230.0); auto fmTypeParamPosition = Vec(100.5, 231.5); @@ -269,18 +264,15 @@ struct VCOWidget : ModuleWidget { auto sawOutputPosition = Vec(111.0, 274.0); auto triangleOutputPosition = Vec(79.0, 318.0); auto sineOutputPosition = Vec(111.0, 318.0); - - auto slowLightPosition = Vec(82.0, 151.0); - auto linearLightPosition = Vec(82.0, 164.0); // end generated by svg_widgets.rb addParam(createParam<Knob68>(frequencyParamPosition, module, VCO::FREQUENCY_PARAM)); addParam(createParam<Knob16>(fineParamPosition, module, VCO::FINE_PARAM)); - addParam(createParam<StatefulButton9>(slowParamPosition, module, VCO::SLOW_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(slowParamPosition, module, VCO::SLOW_PARAM)); addParam(createParam<Knob26>(pwParamPosition, module, VCO::PW_PARAM)); addParam(createParam<Knob26>(fmParamPosition, module, VCO::FM_PARAM)); addParam(createParam<SliderSwitch2State14>(fmTypeParamPosition, module, VCO::FM_TYPE_PARAM)); - addParam(createParam<StatefulButton9>(linearParamPosition, module, VCO::LINEAR_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(linearParamPosition, module, VCO::LINEAR_PARAM)); addInput(createInput<Port24>(pitchInputPosition, module, VCO::PITCH_INPUT)); addInput(createInput<Port24>(syncInputPosition, module, VCO::SYNC_INPUT)); @@ -291,9 +283,6 @@ struct VCOWidget : ModuleWidget { addOutput(createOutput<Port24>(sawOutputPosition, module, VCO::SAW_OUTPUT)); addOutput(createOutput<Port24>(triangleOutputPosition, module, VCO::TRIANGLE_OUTPUT)); addOutput(createOutput<Port24>(sineOutputPosition, module, VCO::SINE_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(slowLightPosition, module, VCO::SLOW_LIGHT)); - addChild(createLight<SmallLight<GreenLight>>(linearLightPosition, module, VCO::LINEAR_LIGHT)); } }; diff --git a/src/VCO.hpp b/src/VCO.hpp @@ -40,8 +40,6 @@ struct VCO : BGModule { }; enum LightsIds { - SLOW_LIGHT, - LINEAR_LIGHT, NUM_LIGHTS }; @@ -109,7 +107,6 @@ struct VCO : BGModule { void removeChannel(int c) override; void modulate() override; void modulateChannel(int c) override; - void always(const ProcessArgs& args) override; void processChannel(const ProcessArgs& args, int c) override; }; diff --git a/src/XCO.cpp b/src/XCO.cpp @@ -145,10 +145,6 @@ void XCO::modulateChannel(int c) { e.sineMix = level(c, params[SINE_MIX_PARAM], inputs[SINE_MIX_INPUT]); } -void XCO::always(const ProcessArgs& args) { - lights[SLOW_LIGHT].value = _slowMode = params[SLOW_PARAM].getValue() > 0.5f; -} - void XCO::processChannel(const ProcessArgs& args, int c) { Engine& e = *_engines[c]; @@ -321,7 +317,7 @@ struct XCOWidget : ModuleWidget { // generated by svg_widgets.rb auto frequencyParamPosition = Vec(40.0, 45.0); auto fineParamPosition = Vec(47.0, 153.0); - auto slowParamPosition = Vec(121.0, 157.2); + auto slowParamPosition = Vec(112.0, 157.2); auto fmParamPosition = Vec(55.0, 194.0); auto fmTypeParamPosition = Vec(101.5, 256.5); auto squarePwParamPosition = Vec(147.0, 60.0); @@ -359,13 +355,11 @@ struct XCOWidget : ModuleWidget { auto triangleOutputPosition = Vec(223.0, 318.0); auto sineOutputPosition = Vec(263.0, 318.0); auto mixOutputPosition = Vec(103.0, 318.0); - - auto slowLightPosition = Vec(81.0, 158.5); // end generated by svg_widgets.rb addParam(createParam<Knob68>(frequencyParamPosition, module, XCO::FREQUENCY_PARAM)); addParam(createParam<Knob16>(fineParamPosition, module, XCO::FINE_PARAM)); - addParam(createParam<StatefulButton9>(slowParamPosition, module, XCO::SLOW_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(slowParamPosition, module, XCO::SLOW_PARAM)); addParam(createParam<Knob38>(fmParamPosition, module, XCO::FM_DEPTH_PARAM)); addParam(createParam<SliderSwitch2State14>(fmTypeParamPosition, module, XCO::FM_TYPE_PARAM)); addParam(createParam<Knob16>(squarePwParamPosition, module, XCO::SQUARE_PW_PARAM)); @@ -403,8 +397,6 @@ struct XCOWidget : ModuleWidget { addOutput(createOutput<Port24>(triangleOutputPosition, module, XCO::TRIANGLE_OUTPUT)); addOutput(createOutput<Port24>(sineOutputPosition, module, XCO::SINE_OUTPUT)); addOutput(createOutput<Port24>(mixOutputPosition, module, XCO::MIX_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(slowLightPosition, module, XCO::SLOW_LIGHT)); } }; diff --git a/src/XCO.hpp b/src/XCO.hpp @@ -63,7 +63,6 @@ struct XCO : BGModule { }; enum LightsIds { - SLOW_LIGHT, NUM_LIGHTS }; @@ -163,7 +162,6 @@ struct XCO : BGModule { void removeChannel(int c) override; void modulate() override; void modulateChannel(int c) override; - void always(const ProcessArgs& args) override; void processChannel(const ProcessArgs& args, int c) override; Phasor::phase_delta_t phaseOffset(int c, Param& param, Input& input); float level(int c, Param& param, Input& input); diff --git a/src/XFade.cpp b/src/XFade.cpp @@ -15,10 +15,6 @@ int XFade::channels() { return std::max(inputs[A_INPUT].getChannels(), inputs[B_INPUT].getChannels()); } -void XFade::always(const ProcessArgs& args) { - lights[LINEAR_LIGHT].value = params[LINEAR_PARAM].getValue() > 0.5f; -} - void XFade::processChannel(const ProcessArgs& args, int c) { bool linear = params[LINEAR_PARAM].getValue() > 0.5f; @@ -66,16 +62,14 @@ struct XFadeWidget : ModuleWidget { // generated by svg_widgets.rb auto mixParamPosition = Vec(8.0, 36.0); - auto curveParamPosition = Vec(14.5, 148.5); - auto linearParamPosition = Vec(29.4, 175.9); + auto curveParamPosition = Vec(14.5, 152.5); + auto linearParamPosition = Vec(25.4, 176.9); auto mixInputPosition = Vec(10.5, 77.0); auto aInputPosition = Vec(10.5, 213.0); auto bInputPosition = Vec(10.5, 248.0); auto outOutputPosition = Vec(10.5, 286.0); - - auto linearLightPosition = Vec(6.5, 177.5); // end generated by svg_widgets.rb addParam(createParam<Knob29>(mixParamPosition, module, XFade::MIX_PARAM)); @@ -86,15 +80,13 @@ struct XFadeWidget : ModuleWidget { k->maxAngle = 0.5 * M_PI; addParam(w); } - addParam(createParam<StatefulButton9>(linearParamPosition, module, XFade::LINEAR_PARAM)); + addParam(createParam<IndicatorButtonGreen9>(linearParamPosition, module, XFade::LINEAR_PARAM)); addInput(createInput<Port24>(mixInputPosition, module, XFade::MIX_INPUT)); addInput(createInput<Port24>(aInputPosition, module, XFade::A_INPUT)); addInput(createInput<Port24>(bInputPosition, module, XFade::B_INPUT)); addOutput(createOutput<Port24>(outOutputPosition, module, XFade::OUT_OUTPUT)); - - addChild(createLight<SmallLight<GreenLight>>(linearLightPosition, module, XFade::LINEAR_LIGHT)); } }; diff --git a/src/XFade.hpp b/src/XFade.hpp @@ -30,7 +30,6 @@ struct XFade : BGModule { }; enum LightsIds { - LINEAR_LIGHT, NUM_LIGHTS }; @@ -55,7 +54,6 @@ struct XFade : BGModule { void sampleRateChange() override; bool active() override; int channels() override; - void always(const ProcessArgs& args) override; void processChannel(const ProcessArgs& args, int c) override; }; diff --git a/src/widgets.cpp b/src/widgets.cpp @@ -137,6 +137,12 @@ ToggleButton18::ToggleButton18() { } +IndicatorButtonGreen9::IndicatorButtonGreen9() { + addFrame(APP->window->loadSvg(asset::plugin(pluginInstance, "res/button_9px_0.svg"))); + addFrame(APP->window->loadSvg(asset::plugin(pluginInstance, "res/button_9px_1_green.svg"))); +} + + NVGcolor bogaudio::decibelsToColor(float db) { if (db < -80.0f) { return nvgRGBA(0x00, 0x00, 0x00, 0x00); diff --git a/src/widgets.hpp b/src/widgets.hpp @@ -88,6 +88,10 @@ struct ToggleButton18 : ToggleButton { ToggleButton18(); }; +struct IndicatorButtonGreen9 : SvgSwitch { + IndicatorButtonGreen9(); +}; + NVGcolor decibelsToColor(float db); struct VUSlider : SliderKnob {