commit a68fec192ead8211f9fbf75be9213ed55b2dc350
parent 8efe67ac7c62f12b9b7428fb4cd9c67acf6305c2
Author: Adam M <aemalone@gmail.com>
Date: Sun, 5 Apr 2020 23:53:40 -0500
Default text field value for ohpeas oh peas. Boly puttons use PolyModule
Diffstat:
3 files changed, 43 insertions(+), 18 deletions(-)
diff --git a/src/ComputerscareBolyPuttons.cpp b/src/ComputerscareBolyPuttons.cpp
@@ -4,8 +4,7 @@ struct ComputerscareBolyPuttons;
const int numToggles = 16;
-struct ComputerscareBolyPuttons : Module {
- int counter = 0;
+struct ComputerscareBolyPuttons : ComputerscarePolyModule {
int outputRangeEnum = 0;
bool momentary = false;
bool radioMode = false;
@@ -17,7 +16,8 @@ struct ComputerscareBolyPuttons : Module {
ComputerscareSVGPanel* panelRef;
enum ParamIds {
TOGGLE,
- NUM_PARAMS = TOGGLE + numToggles
+ POLY_CHANNELS=TOGGLE+numToggles,
+ NUM_PARAMS
};
enum InputIds {
@@ -43,6 +43,7 @@ struct ComputerscareBolyPuttons : Module {
//configParam(KNOB + i, 0.0f, 10.0f, 0.0f);
configParam(TOGGLE + i, 0.f, 1.f, 0.f, "Channel " + std::to_string(i + 1));
}
+ configParam(POLY_CHANNELS, 0.f, 16.f, 16.f, "Poly Channels");
outputRanges[0][0] = 0.f;
outputRanges[0][1] = 10.f;
@@ -110,19 +111,26 @@ struct ComputerscareBolyPuttons : Module {
}
}
}
+ void checkPoly() override {
+ int aChannels=inputs[A_INPUT].getChannels();
+ int bChannels=inputs[B_INPUT].getChannels();
+ int knobSetting = params[POLY_CHANNELS].getValue();
+ if(knobSetting ==0) {
+ polyChannels = (aChannels==0 && bChannels ==0) ? 16 : std::max(aChannels,bChannels);
+ }
+ else {
+ polyChannels = knobSetting;
+ }
+ outputs[POLY_OUTPUT].setChannels(polyChannels);
+ }
void process(const ProcessArgs &args) override {
+ ComputerscarePolyModule::checkCounter();
+
float min = outputRanges[outputRangeEnum][0];
float max = outputRanges[outputRangeEnum][1];
int numAChannels = inputs[A_INPUT].getChannels();
int numBChannels = inputs[B_INPUT].getChannels();
- counter++;
- if (counter > 5012) {
- //printf("%f \n",random::uniform());
- counter = 0;
- //rect4032
- //south facing high wall
- }
- outputs[POLY_OUTPUT].setChannels(16);
+
//if (outputs[SCALED_OUTPUT + i].isConnected() || outputs[QUANTIZED_OUTPUT + i].isConnected()) {
// numInputChannels = inputs[CHANNEL_INPUT + i].getChannels();
@@ -145,6 +153,7 @@ struct ComputerscareBolyPuttons : Module {
}
}
+ //toggle mode
else {
if (radioMode) {
checkForParamChanges();
@@ -166,6 +175,7 @@ struct ComputerscareBolyPuttons : Module {
};
+
struct ComputerscareBolyPuttonsWidget : ModuleWidget {
ComputerscareBolyPuttonsWidget(ComputerscareBolyPuttons *module) {
@@ -179,6 +189,10 @@ struct ComputerscareBolyPuttonsWidget : ModuleWidget {
addChild(panel);
}
+
+ channelWidget = new PolyOutputChannelsWidget(Vec(22,23),module,ComputerscareBolyPuttons::POLY_CHANNELS);
+ addChild(channelWidget);
+
float xx;
float yy;
for (int i = 0; i < numToggles; i++) {
@@ -213,6 +227,8 @@ struct ComputerscareBolyPuttonsWidget : ModuleWidget {
}
void appendContextMenu(Menu *menu) override;
+
+ PolyOutputChannelsWidget* channelWidget;
ComputerscareBolyPuttons *bolyPuttons;
SmallLetterDisplay* smallLetterDisplay;
};
diff --git a/src/ComputerscareHorseADoodleDoo.cpp b/src/ComputerscareHorseADoodleDoo.cpp
@@ -280,11 +280,13 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
}
}
void process(const ProcessArgs &args) override {
- counter++;
+ ComputerscarePolyModule::checkCounter();
+
+ /*counter++;
if (counter > 601) {
checkKnobChanges();
counter = 0;
- }
+ }*/
bool currentClock[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
@@ -302,6 +304,11 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
}
}
+ void checkPoly() override {
+ checkKnobChanges();
+ //polyChannels = params[POLY_CHANNELS].getValue();
+ //outputs[POLY_OUTPUT].setChannels(polyChannels);
+ }
};
struct NumStepsOverKnobDisplay : SmallLetterDisplay
@@ -460,7 +467,9 @@ struct ComputerscareHorseADoodleDooWidget : ModuleWidget {
addInputBlock("Length", 0, 150, module, 2, ComputerscareHorseADoodleDoo::STEPS_CV, 1);
addInputBlock("Density", 0, 200, module, 4, ComputerscareHorseADoodleDoo::DENSITY_CV, 0);
- addInputBlock("Polyphony", 0, 240, module, ComputerscareHorseADoodleDoo::POLY_KNOB, -1, 2);
+ channelWidget = new PolyOutputChannelsWidget(Vec(1,250),module,ComputerscareHorseADoodleDoo::POLY_KNOB);
+
+ addChild(channelWidget);
horseDisplay = new HorseDisplay();
horseDisplay->module = module;
@@ -530,6 +539,7 @@ struct ComputerscareHorseADoodleDooWidget : ModuleWidget {
addChild(smallLetterDisplay);
}
+ PolyOutputChannelsWidget* channelWidget;
HorseDisplay* horseDisplay;
NumStepsOverKnobDisplay* numStepsKnob;
InputBlockBackground* background;
diff --git a/src/ComputerscareOhPeas.cpp b/src/ComputerscareOhPeas.cpp
@@ -1,3 +1,4 @@
+
#include "plugin.hpp"
#include "Computerscare.hpp"
@@ -54,7 +55,7 @@ struct ComputerscareOhPeas : Module
int numDivisions = 12;
int globalTranspose = 0;
bool evenQuantizeMode = true;
- bool manualSet=false;
+ bool manualSet=true;
int checkCounter=9999;
int checkPeriod=1000;
@@ -230,6 +231,7 @@ struct PeasTF2 : ComputerscareTextField
{
module->currentFormula = text.c_str();
}
+
}
else {
text="2212221";
@@ -370,11 +372,8 @@ struct ComputerscareOhPeasWidget : ModuleWidget
ModuleWidget::fromJson(rootJ);
// legacy
-
json_t *textJ = json_object_get(rootJ, "sequences");
if (textJ) {
- DEBUG("we got legacy");
- //textFieldTemp->text = json_string_value(textJ);
peas->currentFormula=json_string_value(textJ);
peas->manualSet=true;
}