commit 18ed465c400f4729a194c0b75f06eaf7f5145ed8
parent a00de15014cbd2b2bf99167cfcc04144b9e572a2
Author: Adam M <aemalone@gmail.com>
Date: Sat, 20 Feb 2021 11:11:25 -0600
horse pattern knob each poly display tooltip
Diffstat:
2 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/doc/moly-patrix.md b/doc/moly-patrix.md
@@ -1 +1,3 @@
-# Moly Patrix
-\ No newline at end of file
+# Moly Patrix
+
+Polyphonic matrix mixer.
+\ No newline at end of file
diff --git a/src/ComputerscareHorseADoodleDoo.cpp b/src/ComputerscareHorseADoodleDoo.cpp
@@ -215,12 +215,21 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
HorseSequencer seq[16];
struct HorsePatternParamQ: ParamQuantity {
- virtual std::string getString() {
+ virtual std::string getPatternString() {
return dynamic_cast<ComputerscareHorseADoodleDoo*>(module)->getPatternDisplay();
}
std::string getDisplayValueString() override {
float val = getValue();
- return std::to_string(val) + "\n" + getString();
+ return std::to_string(val) + "\n" + getPatternString();
+ }
+ };
+ struct HorsePatternSpreadParam: ParamQuantity {
+ virtual std::string getAllPolyChannelsPatternDisplayString() {
+ return dynamic_cast<ComputerscareHorseADoodleDoo*>(module)->getAllPatternValueDisplay();
+ }
+ std::string getDisplayValueString() override {
+ float val = getValue();
+ return std::to_string(100 * val) + "%\n" + getAllPolyChannelsPatternDisplayString();
}
};
@@ -232,12 +241,12 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
}
return out;
}
- virtual std::string getDiarrhea() {
+ virtual std::string allStepsDisplay() {
return dynamic_cast<ComputerscareHorseADoodleDoo*>(module)->getAllStepsDisplay();
}
std::string getDisplayValueString() override {
float val = getValue();
- return std::to_string(100 * val) + "%\n" + getDiarrhea();
+ return std::to_string(100 * val) + "%\n" + allStepsDisplay();
}
};
@@ -273,7 +282,7 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
configParam(DENSITY_TRIM, -1.f, 1.f, 0.f, "Density CV Trim");
- configParam(PATTERN_SPREAD, 0.f, 1.f, 0.5f, "Pattern Spread", "%", 0, 100);
+ configParam<HorsePatternSpreadParam>(PATTERN_SPREAD, 0.f, 1.f, 0.5f, "Pattern Spread", "", 0, 100);
configParam<HorseStepsSpreadParam>(STEPS_SPREAD, -1.f, 1.f, 0.f, "Steps Spread", "", 0, 100);
configParam<HorseDensitySpreadParam>(DENSITY_SPREAD, -1.f, 1.f, 0.f, "Density Spread", "", 0, 100);
@@ -301,6 +310,23 @@ struct ComputerscareHorseADoodleDoo : ComputerscarePolyModule {
}
return out;
}
+ std::string getAllPatternValueDisplay(std::string sep = "\n") {
+ std::string out = "";
+ for (int i = 0; i < polyChannels; i++) {
+
+ out += "ch " + string::f("%*d", 2, i + 1) + ": ";
+ if (seq[i].pendingChange) {
+ out = out + std::to_string(seq[i].pendingPattern);
+ out = out + " (" + std::to_string(seq[i].pattern) + ")";
+ }
+ else {
+ out = out + std::to_string(seq[i].pattern);
+ }
+ out += sep;
+ }
+ return out;
+ }
+
std::string getAllStepsDisplay(std::string sep = "\n") {
std::string out = "";
for (int i = 0; i < polyChannels; i++) {