commit e21586d462dd0a4d6bd81ce5dcf4716a610c7a62
parent 4c4f9c69b7202e14aa401fe99e45b9f4f5461e5f
Author: Adam M <aemalone@gmail.com>
Date: Thu, 9 Apr 2020 19:37:11 -0500
include drawFunctions, mode knob for horse
Diffstat:
3 files changed, 51 insertions(+), 32 deletions(-)
diff --git a/src/Computerscare.hpp b/src/Computerscare.hpp
@@ -477,4 +477,5 @@ struct SmallLetterDisplay : Widget {
}
};
+#include "drawFunctions.hpp"
#include "ComputerscarePolyModule.hpp"
diff --git a/src/ComputerscareHorseADoodleDoo.cpp b/src/ComputerscareHorseADoodleDoo.cpp
@@ -138,6 +138,7 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
WEIRDNESS_KNOB,
WEIRDNESS_TRIM,
POLY_KNOB,
+ MODE_KNOB,
NUM_PARAMS
};
@@ -197,6 +198,8 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
configParam(POLY_KNOB, 0.f, 16.f, 0.f, "Polyphony");
+ configParam(MODE_KNOB,1.f,16.f,1.f,"Mode");
+
for (int i = 0; i < 16; i++) {
seq[i] = HorseSequencer(0.f, 8, 0.f, i);
@@ -240,14 +243,14 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
if (reset) {
seq[ch].armChange();
- seqVal[ch] = seq[ch].get();
+ /*seqVal[ch] = seq[ch].get();
if (seqVal[ch]) {
cvVal[ch] = seq[ch].getCV();
}
- atFirstStepPoly[ch] = true;
+ atFirstStepPoly[ch] = true;*/
}
- if (clocked && !reset) {
+ if (clocked /*&& !reset*/) {
seqVal[ch] = seq[ch].tickAndGet();
if (seqVal[ch]) {
cvVal[ch] = seq[ch].getCV();
@@ -265,6 +268,7 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
}*/
}
+
if (inputs[CLOCK_INPUT].isConnected()) {
outputs[TRIGGER_OUTPUT].setVoltage((clockInputHigh && seqVal[ch] == 1) ? 10.0f : 0.0f, ch);
//DEBUG("before output:%f",cvVal);
@@ -311,6 +315,9 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
}
};
+
+
+
struct NumStepsOverKnobDisplay : SmallLetterDisplay
{
ComputerscareHorseADoodleDoo *module;
@@ -466,6 +473,14 @@ struct ComputerscareHorseADoodleDooWidget : ModuleWidget {
addInputBlock("Pattern", 0, 100, module, 0, ComputerscareHorseADoodleDoo::PATTERN_CV, 0);
addInputBlock("Length", 0, 150, module, 2, ComputerscareHorseADoodleDoo::STEPS_CV, 1);
addInputBlock("Density", 0, 200, module, 4, ComputerscareHorseADoodleDoo::DENSITY_CV, 0);
+ addParam(createParam<MediumDotSnapKnob>(Vec(30,240), module, ComputerscareHorseADoodleDoo::MODE_KNOB));
+
+
+ //addInputBlock("Mode", 0, 250, module, ComputerscareHorseADoodleDoo::MODE_KNOB, 0, 1);
+
+
+
+
channelWidget = new PolyOutputChannelsWidget(Vec(1,250),module,ComputerscareHorseADoodleDoo::POLY_KNOB);
diff --git a/src/drawFunctions.hpp b/src/drawFunctions.hpp
@@ -1,44 +1,46 @@
#pragma once
-using namespace rack;
-
+namespace rack {
+namespace app {
struct DrawHelper {
- DrawArgs args;
- DrawHelper(DrawArgs &someArgs) {
- args = someArgs;
+ NVGcontext* vg;
+ DrawHelper(NVGcontext* ctx) {
+ vg = ctx;
}
- void drawShape(std::vector<Vec> points, NVGColor fillColor) {
- drawShape(points,fillColor,COLOR_COMPUTERSCARE_TRANSPARENT,0.f);
+ void drawShape(std::vector<Vec> points, NVGcolor fillColor) {
+ drawShape(points, fillColor, COLOR_COMPUTERSCARE_TRANSPARENT, 0.f);
}
- void drawShape(std::vector<Vec> points,NVGColor fillColor,NVGColor strokeColor) {
- drawShape(points,fillColor,strokeColor,1.f);
+ void drawShape(std::vector<Vec> points, NVGcolor fillColor, NVGcolor strokeColor) {
+ drawShape(points, fillColor, strokeColor, 1.f);
}
-
-
- void drawShape(std::vector<Vec> points,NVGColor strokeColor,float thickness) {
- drawShape(points,COLOR_COMPUTERSCARE_TRANSPARENT,strokeColor,thickness);
- }
- void drawShape(std::vector<Vec> points,NVGColor fillColor,NVGColor strokeColor,float thickness) {
+
+
+ void drawShape(std::vector<Vec> points, NVGcolor strokeColor, float thickness) {
+ drawShape(points, COLOR_COMPUTERSCARE_TRANSPARENT, strokeColor, thickness);
+ }
+ void drawShape(std::vector<Vec> points, NVGcolor fillColor, NVGcolor strokeColor, float thickness) {
unsigned int n = points.size();
- nvgSave(args.vg);
- nvgBeginPath(args.vg);
- nvgStrokeStyle(args.vg,strokeColor);
- nvgStrokeWidth(args.vg,thickness);
- nvgFillStyle(fillColor);
- nvgMoveTo(args.vg,points[0].x,points[0].y);
-
- for(int i = 1; i < n; i++) {
- nvgLineTo(args.vg,points[i].x,points[i].y);
+ nvgSave(vg);
+ nvgBeginPath(vg);
+ nvgStrokeColor(vg, strokeColor);
+ nvgStrokeWidth(vg, thickness);
+ nvgFillColor(vg,fillColor);
+ nvgMoveTo(vg, points[0].x, points[0].y);
+
+ for (unsigned int i = 1; i < n; i++) {
+ nvgLineTo(vg, points[i].x, points[i].y);
}
- nvgClosePath(args.vg);
- nvgFill(args.vg);
- if(thickness > 0) {
- nvgStroke(args.vg);
+ nvgClosePath(vg);
+ nvgFill(vg);
+ if (thickness > 0) {
+ nvgStroke(vg);
}
- nvgRestore(args.vg);
+ nvgRestore(vg);
}
};
+}
+}
+\ No newline at end of file