Browse Source

Add Push module.

tags/v2.6.0
Andrew Belt 1 year ago
parent
commit
6190f3df43
5 changed files with 378 additions and 0 deletions
  1. +8
    -0
      plugin.json
  2. +255
    -0
      res/Push.svg
  3. +113
    -0
      src/Push.cpp
  4. +1
    -0
      src/plugin.cpp
  5. +1
    -0
      src/plugin.hpp

+ 8
- 0
plugin.json View File

@@ -383,6 +383,14 @@
"Utility",
"Polyphonic"
]
},
{
"slug": "Push",
"name": "Push",
"description": "Button with gate/trigger outputs and hold switch",
"tags": [
"Utility"
]
}
]
}

+ 255
- 0
res/Push.svg View File

@@ -0,0 +1,255 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="45"
height="380"
viewBox="0 0 45 380"
version="1.1"
id="svg87"
sodipodi:docname="PUSH1.svg"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview89"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="2.1815789"
inkscape:cx="22.689988"
inkscape:cy="190.22919"
inkscape:window-width="1920"
inkscape:window-height="1009"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg87" />
<defs
id="defs7">
<linearGradient
id="uuid-6c1b9cdd-a5a0-499b-a8b9-17e16ed850e6"
x1="22.5"
y1="0"
x2="22.5"
y2="380"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#ebebeb"
id="stop2" />
<stop
offset="1"
stop-color="#e1e1e1"
id="stop4" />
</linearGradient>
</defs>
<g
id="uuid-06f79392-5264-42f0-b4f7-5cd7d1303111"
data-name="FND BG">
<rect
width="45"
height="380"
fill="url(#uuid-6c1b9cdd-a5a0-499b-a8b9-17e16ed850e6)"
id="rect9" />
</g>
<g
id="uuid-a1333c6c-1780-4038-8c6f-ae50c6c9c50c"
data-name="FND GRAPH">
<path
d="m23.32369,162.5081l1.65796-2.87167c.14313-.24791-.03578-.55779-.32204-.55779h-3.31592c-.28626,0-.46517.30989-.32204.55779l1.65796,2.87167c.14313.24791.50096.24791.64409,0Z"
fill="#1f1f1f"
id="path12" />
<rect
x="8.22422"
y="309.05634"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
fill="#1f1f1f"
id="rect14" />
<rect
x="8.22422"
y="261.07121"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
fill="#1f1f1f"
id="rect16" />
<g
id="g26">
<circle
cx="23.00165"
cy="355.83101"
r="1.18571"
fill="#1f1f1f"
id="circle18" />
<path
d="m14.35927,359.75298c-.34551,0-.66126-.1952-.8158-.50419l-2.96428-5.92856c-.22526-.45057-.04266-.99844.40794-1.2237.45008-.22535.99831-.04271,1.22366.4079l2.14848,4.29696,2.14848-4.29696c.22526-.45057.77314-.63325,1.22366-.4079.45061.22526.63321.77314.40794,1.2237l-2.96428,5.92856c-.15454.30899-.47029.50419-.8158.50419Z"
fill="#1f1f1f"
id="path20" />
<path
d="m30.64073,359.75298c-.34551,0-.66126-.1952-.8158-.50419l-2.96428-5.92856c-.22526-.45057-.04266-.99844.40794-1.2237.45016-.22535.9984-.04271,1.22366.4079l2.14848,4.29696,2.14848-4.29696c.22526-.45057.77305-.63325,1.22366-.4079.45061.22526.63321.77314.40794,1.2237l-2.96428,5.92856c-.15454.30899-.47029.50419-.8158.50419Z"
fill="#1f1f1f"
id="path22" />
<path
d="m22.94242,359.75298c-2.13744,0-3.87637-1.73893-3.87637-3.87637s1.73893-3.87637,3.87637-3.87637c.84653,0,1.65102.26819,2.32653.77554.40278.30253.48401.87428.18153,1.27705-.30248.40273-.87432.48401-1.2771.18148-.357-.26815-.78267-.4099-1.23096-.4099-1.13156,0-2.05219.92059-2.05219,2.05219s.92064,2.05219,2.05219,2.05219c.44829,0,.87396-.14176,1.23096-.4099.40269-.30271.97444-.22125,1.2771.18148.30248.40278.22125.97453-.18153,1.27705-.67551.50735-1.48.77554-2.32653.77554Z"
fill="#1f1f1f"
id="path24" />
</g>
</g>
<g
id="uuid-0ab3c774-5d4f-4ff8-9328-9fae77f1ea3b"
data-name="FND TXT">
<g
id="g37">
<path
d="m5.71407,20.49121c0-.5376.42529-.96289.96338-.96289h2.61475c2.08984,0,3.35352,1.23828,3.35352,3.02783v.0249c0,2.02686-1.57666,3.07812-3.54102,3.07812h-1.46387v1.73926c0,.53809-.42578.96338-.96338.96338-.53809,0-.96338-.42529-.96338-.96338v-6.90723Zm3.45312,3.45361c.96338,0,1.52637-.57568,1.52637-1.32617v-.0249c0-.86328-.60059-1.32617-1.56396-1.32617h-1.48877v2.67725h1.52637Z"
fill="#1f1f1f"
id="path29" />
<path
d="m14.02022,24.5332v-4.1167c0-.53809.42529-.96338.96338-.96338s.96338.42529.96338.96338v4.06641c0,1.42627.71338,2.16455,1.88916,2.16455,1.17627,0,1.88965-.71289,1.88965-2.10205v-4.12891c0-.53809.42529-.96338.96338-.96338s.96338.42529.96338.96338v4.0542c0,2.65234-1.48926,3.95361-3.84131,3.95361s-3.79102-1.31396-3.79102-3.89111Z"
fill="#1f1f1f"
id="path31" />
<path
d="m23.55977,27.36084c-.21289-.15039-.36279-.42529-.36279-.72607,0-.5.40039-.88818.90088-.88818.25,0,.42529.0874.55029.17529.66309.48779,1.38916.78809,2.23975.78809.78809,0,1.26367-.3125,1.26367-.82568v-.0249c0-.48828-.30029-.73828-1.76416-1.11377-1.76416-.45068-2.90283-.93848-2.90283-2.67725v-.02539c0-1.58887,1.27637-2.64014,3.06543-2.64014,1.06348,0,1.98926.27539,2.77783.77588.2124.125.42529.3877.42529.76318,0,.50049-.40039.88818-.90088.88818-.1875,0-.33789-.0498-.48779-.1377-.63818-.375-1.23877-.58789-1.83936-.58789-.73828,0-1.12598.33789-1.12598.76367v.02441c0,.57617.375.76367,1.88916,1.15137,1.77686.46289,2.77783,1.10107,2.77783,2.62793v.02441c0,1.73926-1.32666,2.71533-3.21582,2.71533-1.15088,0-2.31494-.3501-3.29053-1.05078Z"
fill="#1f1f1f"
id="path33" />
<path
d="m31.87422,20.4165c0-.53809.42578-.96338.96387-.96338s.96338.42529.96338.96338v2.57764h3.55322v-2.57764c0-.53809.42578-.96338.96338-.96338.53809,0,.96338.42529.96338.96338v6.98193c0,.53809-.42529.96338-.96338.96338-.5376,0-.96338-.42529-.96338-.96338v-2.62793h-3.55322v2.62793c0,.53809-.42529.96338-.96338.96338s-.96387-.42529-.96387-.96338v-6.98193Z"
fill="#1f1f1f"
id="path35" />
</g>
<g
id="g47">
<path
d="m13.15059,316.55127v-.01367c0-1.34814,1.05029-2.45264,2.48633-2.45264.71826,0,1.19238.16309,1.61963.46094.10156.07422.2168.2168.2168.41992,0,.28467-.23047.51514-.51514.51514-.14893,0-.24365-.0542-.31836-.1084-.28467-.20361-.58936-.3252-1.03662-.3252-.75879,0-1.36182.67041-1.36182,1.47705v.01318c0,.86719.59619,1.50439,1.43652,1.50439.37939,0,.71777-.09521.98242-.28467v-.67773h-.70459c-.25098,0-.4541-.19629-.4541-.44678,0-.25098.20312-.4541.4541-.4541h1.19238c.29102,0,.52148.23047.52148.52148v1.15186c0,.30518-.11523.51514-.36572.66406-.38623.23682-.94873.47412-1.66016.47412-1.47656,0-2.49316-1.03662-2.49316-2.43896Z"
fill="#f0f0f0"
id="path39" />
<path
d="m18.55879,318.23828l1.65332-3.73291c.11523-.25732.3252-.41357.60986-.41357h.06104c.28418,0,.4873.15625.60254.41357l1.65332,3.73291c.03369.07422.0542.14209.0542.20996,0,.27783-.2168.50146-.49463.50146-.24414,0-.40625-.14209-.50146-.35889l-.31836-.74561h-2.08643l-.33203.7793c-.08838.20312-.26416.3252-.48096.3252-.271,0-.48096-.2168-.48096-.48779,0-.07471.02686-.14941.06055-.22363Zm2.93359-1.31445l-.65723-1.56494-.65723,1.56494h1.31445Z"
fill="#f0f0f0"
id="path41" />
<path
d="m24.79122,315.12842h-1.00244c-.26416,0-.48096-.2168-.48096-.48096s.2168-.48096.48096-.48096h3.04834c.26465,0,.48145.2168.48145.48096s-.2168.48096-.48145.48096h-1.00244v3.29932c0,.2915-.23047.52197-.52197.52197-.29102,0-.52148-.23047-.52148-.52197v-3.29932Z"
fill="#f0f0f0"
id="path43" />
<path
d="m28.22676,318.38721v-3.69873c0-.2915.23047-.52197.52197-.52197h2.62842c.25781,0,.46777.20996.46777.46729,0,.25781-.20996.46094-.46777.46094h-2.11377v.96191h1.80908c.25732,0,.46729.20996.46729.46777,0,.25732-.20996.46045-.46729.46045h-1.80908v.99561h2.14795c.25732,0,.46729.21045.46729.46777s-.20996.46094-.46729.46094h-2.6626c-.2915,0-.52197-.23047-.52197-.52197Z"
fill="#f0f0f0"
id="path45" />
</g>
<g
id="g57">
<path
d="m15.44649,267.14307h-1.00244c-.26416,0-.48096-.2168-.48096-.48096s.2168-.48096.48096-.48096h3.04834c.26465,0,.48145.2168.48145.48096s-.2168.48096-.48145.48096h-1.00244v3.29932c0,.2915-.23047.52197-.52197.52197-.29102,0-.52148-.23047-.52148-.52197v-3.29932Z"
fill="#f0f0f0"
id="path49" />
<path
d="m18.88204,266.70312c0-.2915.23047-.52197.52197-.52197h1.646c.60303,0,1.0708.16943,1.38232.48096.26416.26416.40674.63672.40674,1.08398v.01367c0,.74512-.37305,1.20605-.94873,1.44287l.7251.88086c.10156.12842.16895.23682.16895.3999,0,.29102-.24365.48096-.49414.48096-.2373,0-.39307-.11523-.51514-.271l-1.01611-1.28711h-.8335v1.03613c0,.2915-.22998.52197-.52148.52197s-.52197-.23047-.52197-.52197v-3.73926Zm2.10059,1.78125c.50781,0,.79932-.27051.79932-.67041v-.01367c0-.44678-.31152-.67725-.81982-.67725h-1.03662v1.36133h1.05713Z"
fill="#f0f0f0"
id="path51" />
<path
d="m24.06172,266.66211c0-.29102.22998-.52148.52148-.52148s.52148.23047.52148.52148v3.78027c0,.2915-.22998.52197-.52148.52197s-.52148-.23047-.52148-.52197v-3.78027Z"
fill="#f0f0f0"
id="path53" />
<path
d="m26.26192,268.56592v-.01367c0-1.34814,1.05029-2.45264,2.48633-2.45264.71826,0,1.19238.16309,1.61963.46094.10156.07422.2168.2168.2168.41992,0,.28467-.23047.51514-.51514.51514-.14893,0-.24365-.0542-.31836-.1084-.28467-.20361-.58936-.3252-1.03662-.3252-.75879,0-1.36182.67041-1.36182,1.47705v.01318c0,.86719.59619,1.50439,1.43652,1.50439.37939,0,.71777-.09521.98242-.28467v-.67773h-.70459c-.25098,0-.4541-.19629-.4541-.44678,0-.25098.20312-.4541.4541-.4541h1.19238c.29102,0,.52148.23047.52148.52148v1.15186c0,.30518-.11523.51514-.36572.66406-.38623.23682-.94873.47412-1.66016.47412-1.47656,0-2.49316-1.03662-2.49316-2.43896Z"
fill="#f0f0f0"
id="path55" />
</g>
<g
id="g67">
<path
d="m13.5085,218.64209c0-.23682.18262-.41992.41992-.41992h1.44922c1.11133,0,1.80273.63037,1.80273,1.58545v.01367c0,1.06348-.85352,1.61914-1.89746,1.61914h-.94141v1.14453c0,.23047-.18262.41357-.41309.41357-.2373,0-.41992-.18311-.41992-.41357v-3.94287Zm1.80176,2.04639c.62988,0,1.02295-.35254,1.02295-.84717v-.01318c0-.55566-.3999-.84717-1.02295-.84717h-.96875v1.70752h.96875Z"
fill="#1f1f1f"
id="path59" />
<path
d="m18.14424,220.95215v-2.35059c0-.23047.18359-.41309.42041-.41309.22998,0,.41357.18262.41357.41309v2.31689c0,.88086.45361,1.34814,1.19873,1.34814.73877,0,1.19238-.44043,1.19238-1.31445v-2.35059c0-.23047.18311-.41309.42041-.41309.22998,0,.41309.18262.41309.41309v2.31055c0,1.41553-.7998,2.12695-2.03906,2.12695-1.2334,0-2.01953-.71143-2.01953-2.08691Z"
fill="#1f1f1f"
id="path61" />
<path
d="m23.44112,222.43604c-.09473-.06787-.16309-.18311-.16309-.31836,0-.2168.17676-.38623.39355-.38623.11475,0,.18945.03418.24316.07471.39355.31152.81348.48779,1.32812.48779s.83984-.24414.83984-.59619v-.01367c0-.33838-.18945-.52148-1.07031-.7251-1.00928-.24365-1.57812-.54199-1.57812-1.41602v-.01318c0-.81299.67725-1.37549,1.61914-1.37549.5957,0,1.07715.15625,1.50391.44043.09473.0542.18262.16943.18262.33203,0,.2168-.17578.38623-.39258.38623-.08105,0-.14941-.02051-.2168-.06104-.36621-.2373-.71826-.35938-1.09082-.35938-.48779,0-.77246.25098-.77246.5625v.01367c0,.36572.2168.52832,1.13184.74512,1.00244.24414,1.51758.60303,1.51758,1.38867v.01367c0,.8877-.69824,1.41602-1.69434,1.41602-.64355,0-1.25293-.20312-1.78125-.59619Z"
fill="#1f1f1f"
id="path63" />
<path
d="m28.12764,218.60156c0-.23047.18262-.41309.41992-.41309.23047,0,.41309.18262.41309.41309v1.5918h2.2627v-1.5918c0-.23047.18262-.41309.41309-.41309.2373,0,.41992.18262.41992.41309v3.9834c0,.23047-.18262.41357-.41992.41357-.23047,0-.41309-.18311-.41309-.41357v-1.61914h-2.2627v1.61914c0,.23047-.18262.41357-.41309.41357-.2373,0-.41992-.18311-.41992-.41357v-3.9834Z"
fill="#1f1f1f"
id="path65" />
</g>
<g
id="g77">
<path
d="m12.90791,170.59326c0-.23047.18262-.41357.41992-.41357.23047,0,.41309.18311.41309.41357v1.59229h2.2627v-1.59229c0-.23047.18262-.41357.41309-.41357.2373,0,.41992.18311.41992.41357v3.98389c0,.22998-.18262.41309-.41992.41309-.23047,0-.41309-.18311-.41309-.41309v-1.61914h-2.2627v1.61914c0,.22998-.18262.41309-.41309.41309-.2373,0-.41992-.18311-.41992-.41309v-3.98389Z"
fill="#1f1f1f"
id="path69" />
<path
d="m18.05098,172.59863v-.01367c0-1.33447,1.02979-2.45215,2.48682-2.45215,1.45605,0,2.47266,1.104,2.47266,2.43848v.01367c0,1.33496-1.03027,2.45264-2.48633,2.45264-1.45703,0-2.47314-1.104-2.47314-2.43896Zm4.08545,0v-.01367c0-.92139-.6709-1.68652-1.6123-1.68652-.94189,0-1.59912.75195-1.59912,1.67285v.01367c0,.92139.67041,1.68018,1.61279,1.68018.94141,0,1.59863-.74512,1.59863-1.6665Z"
fill="#1f1f1f"
id="path71" />
<path
d="m24.2253,170.59326c0-.23047.18262-.41357.41992-.41357.23047,0,.41309.18311.41309.41357v3.604h2.14746c.21045,0,.37988.16992.37988.37988s-.16943.37891-.37988.37891h-2.56055c-.2373,0-.41992-.18262-.41992-.41992v-3.94287Z"
fill="#1f1f1f"
id="path73" />
<path
d="m28.57881,170.63379c0-.2373.18262-.41992.41992-.41992h1.34766c1.49072,0,2.52051,1.02295,2.52051,2.35742v.01367c0,1.33496-1.02979,2.37109-2.52051,2.37109h-1.34766c-.2373,0-.41992-.18262-.41992-.41992v-3.90234Zm1.76758,3.56348c.99609,0,1.64648-.67041,1.64648-1.59863v-.01367c0-.92773-.65039-1.6123-1.64648-1.6123h-.93457v3.22461h.93457Z"
fill="#1f1f1f"
id="path75" />
</g>
</g>
<g
id="uuid-72344825-c3c0-428b-aaa0-87a72d3d71d8"
data-name="components"
inkscape:groupmode="layer"
style="display:none">
<circle
id="uuid-b5fa8bdf-f0da-4b43-ab90-5a3e9c729bd8"
data-name="Hold#LEDLightBezel"
cx="22.489861"
cy="141.95"
r="5"
fill="#ff0000" />
<circle
id="uuid-e3cc8440-faff-4a0a-a318-6035b1f97b81"
data-name="Hold#PJ301MPort"
cx="22.47665"
cy="189.99173"
r="5"
fill="#00ff00" />
<circle
id="uuid-356c772e-ab20-4c30-a9a9-7b4cce5e4257"
data-name="Push#PJ301MPort"
cx="22.476191"
cy="237.983"
r="5"
fill="#00ff00" />
<circle
id="uuid-1e062d13-26ac-4668-afe0-0ea72b7b4f01"
data-name="Push#LargeLEDLightBezel"
cx="22.5"
cy="72.999947"
r="5"
fill="#ff0000" />
<circle
id="uuid-39d21cb7-6e8b-4f6c-bdb8-cbe60b93c6e7"
data-name="Gate#PJ301MPort"
cx="22.5"
cy="334"
r="5"
fill="#0000ff" />
<circle
id="uuid-7cc7d9b0-6158-4980-96ae-2f35aaa1221e"
data-name="Trig#PJ301MPort"
cx="22.5"
cy="286.01489"
r="5"
fill="#0000ff" />
</g>
</svg>

+ 113
- 0
src/Push.cpp View File

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


struct Push : Module {
enum ParamId {
PUSH_PARAM,
HOLD_PARAM,
PARAMS_LEN
};
enum InputId {
HOLD_INPUT,
PUSH_INPUT,
INPUTS_LEN
};
enum OutputId {
TRIG_OUTPUT,
GATE_OUTPUT,
OUTPUTS_LEN
};
enum LightId {
PUSH_LIGHT,
HOLD_LIGHT,
LIGHTS_LEN
};

dsp::BooleanTrigger holdBoolean;
dsp::SchmittTrigger holdSchmitt;
dsp::BooleanTrigger pushBoolean;
dsp::SchmittTrigger pushSchmitt;
dsp::PulseGenerator trigPulse;
bool hold = false;

Push() {
config(PARAMS_LEN, INPUTS_LEN, OUTPUTS_LEN, LIGHTS_LEN);
configButton(PUSH_PARAM, "Push");
configButton(HOLD_PARAM, "Hold");
configInput(HOLD_INPUT, "Hold");
configInput(PUSH_INPUT, "Push");
configOutput(TRIG_OUTPUT, "Trigger");
configOutput(GATE_OUTPUT, "Gate");
}

void onReset(const ResetEvent& e) override {
Module::onReset(e);
hold = false;
}

void process(const ProcessArgs& args) override {
// Hold button
if (holdBoolean.process(params[HOLD_PARAM].getValue()))
hold ^= true;

// Hold input
if (holdSchmitt.process(inputs[HOLD_INPUT].getVoltage(), 0.1f, 1.f))
hold ^= true;

// Push button
bool push = params[PUSH_PARAM].getValue() > 0.f;
push ^= hold;

// Push input
pushSchmitt.process(inputs[PUSH_INPUT].getVoltage(), 0.1f, 1.f);

// Gate and trigger outputs
bool gate = push || pushSchmitt.isHigh();
if (pushBoolean.process(gate)) {
trigPulse.trigger(1e-3f);
}

outputs[TRIG_OUTPUT].setVoltage(trigPulse.process(args.sampleTime) ? 10.f : 0.f);
outputs[GATE_OUTPUT].setVoltage(gate ? 10.f : 0.f);

lights[HOLD_LIGHT].setBrightnessSmooth(hold, args.sampleTime);
lights[PUSH_LIGHT].setBrightnessSmooth(gate, args.sampleTime);
}

json_t* dataToJson() override {
json_t* rootJ = json_object();
json_object_set_new(rootJ, "hold", json_boolean(hold));
return rootJ;
}

void dataFromJson(json_t* rootJ) override {
json_t* holdJ = json_object_get(rootJ, "hold");
if (holdJ)
hold = json_boolean_value(holdJ);
}
};


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

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

addParam(createLightParamCentered<LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>>(mm2px(Vec(7.62, 24.723)), module, Push::PUSH_PARAM, Push::PUSH_LIGHT));
addParam(createLightParamCentered<LEDLightBezel<>>(mm2px(Vec(7.617, 48.074)), module, Push::HOLD_PARAM, Push::HOLD_LIGHT));

addInput(createInputCentered<PJ301MPort>(mm2px(Vec(7.612, 64.344)), module, Push::HOLD_INPUT));
addInput(createInputCentered<PJ301MPort>(mm2px(Vec(7.612, 80.597)), module, Push::PUSH_INPUT));

addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(7.62, 96.864)), module, Push::TRIG_OUTPUT));
addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(7.62, 113.115)), module, Push::GATE_OUTPUT));
}
};


Model* modelPush = createModel<Push, PushWidget>("Push");

+ 1
- 0
src/plugin.cpp View File

@@ -43,4 +43,5 @@ void init(Plugin* p) {
p->addModel(modelMult);
p->addModel(modelRescale);
p->addModel(modelRandomValues);
p->addModel(modelPush);
}

+ 1
- 0
src/plugin.hpp View File

@@ -43,6 +43,7 @@ extern Model* modelProcess;
extern Model* modelMult;
extern Model* modelRescale;
extern Model* modelRandomValues;
extern Model* modelPush;


struct DigitalDisplay : Widget {


Loading…
Cancel
Save