Moved modes to enum

This commit is contained in:
Oleksiy
2025-03-27 19:55:15 +02:00
parent cd29fedbfb
commit 4767c2942f
3 changed files with 52 additions and 50 deletions

View File

@ -23,8 +23,10 @@ uint8_t bpm = 130;
uint8_t bpmModulationChannel = 200; //0 - CV1, 1 - CV2, 255 - OFF uint8_t bpmModulationChannel = 200; //0 - CV1, 1 - CV2, 255 - OFF
uint8_t bpmModulationRange = 0; uint8_t bpmModulationRange = 0;
enum modes {Clock, Random, Sequencer, Swing, Gate};
struct channel { struct channel {
uint8_t mode : 3; //mv: 7. 0 - CLK, 1 - RND, 2 - SEQ, 3 - SWING, 4 - Gate enum modes mode : 3; //mv: 7. 0 - CLK, 1 - RND, 2 - SEQ, 3 - SWING, 4 - Gate
uint8_t subDiv : 5; //mv: 31 uint8_t subDiv : 5; //mv: 31
uint8_t random : 4; //mv: 15 uint8_t random : 4; //mv: 15
uint8_t seqPattern : 5; uint8_t seqPattern : 5;
@ -238,7 +240,7 @@ void clock() {
if (bpmModulationRange != 0) { if (bpmModulationRange != 0) {
calculateBPMTiming(); calculateBPMTiming();
for (uint8_t i; i < 7; i++) { for (uint8_t i; i < 7; i++) {
if (channels[i].mode == 4) { if (channels[i].mode == Gate) {
calculateGate(i); calculateGate(i);
} }
} }
@ -264,12 +266,12 @@ void clock() {
// pull low all outputs after set pulse length // pull low all outputs after set pulse length
for (uint8_t i = 0; i < 7; i++) { for (uint8_t i = 0; i < 7; i++) {
if (channels[i].mode != 4 && tickCount >= PULSE_LENGTH) { //everything but gate mode if (channels[i].mode != Gate && tickCount >= PULSE_LENGTH) { //everything but gate mode
digitalWrite(outsPins[i], LOW); digitalWrite(outsPins[i], LOW);
} else if (channels[i].mode == 4 && tickCount >= gateCountDown[i]) { //gate mode gateLengthTime[i] < pulsePeriod } else if (channels[i].mode == Gate && tickCount >= gateCountDown[i]) { //gate mode gateLengthTime[i] < pulsePeriod
digitalWrite(outsPins[i], LOW); digitalWrite(outsPins[i], LOW);
gateCountDown[i] = gateLengthTime[i]; gateCountDown[i] = gateLengthTime[i];
} else if (channels[i].mode == 4 && gateCountDown[i] > pulsePeriod && tickCount == 0) { } else if (channels[i].mode == Gate && gateCountDown[i] > pulsePeriod && tickCount == 0) {
gateCountDown[i] = gateCountDown[i] - pulsePeriod; gateCountDown[i] = gateCountDown[i] - pulsePeriod;
} }
} }
@ -360,7 +362,7 @@ void sendTriggers() { //rename to onPulse or something
} }
bool currentStepValue = bitRead(sequences[channels[i].seqPattern].sequence, currentStep[i]); bool currentStepValue = bitRead(sequences[channels[i].seqPattern].sequence, currentStep[i]);
if (channels[i].mode == 2 && currentStepValue && !channels[i].isMute) { if (channels[i].mode == Sequencer && currentStepValue && !channels[i].isMute) {
digitalWrite(outsPins[i], HIGH); digitalWrite(outsPins[i], HIGH);
} }
} }
@ -373,7 +375,7 @@ void sendTriggers() { //rename to onPulse or something
} else { } else {
sixteenthPulseCount = 0; sixteenthPulseCount = 0;
for (uint8_t i; i < 7; i++) { for (uint8_t i; i < 7; i++) {
if (channels[i].mode == 2 && currentStep[i] < sequences[channels[i].seqPattern].length) { if (channels[i].mode == Sequencer && currentStep[i] < sequences[channels[i].seqPattern].length) {
currentStep[i] ++; currentStep[i] ++;
} else { } else {
currentStep[i] = 0; currentStep[i] = 0;
@ -390,7 +392,7 @@ void sendTriggers() { //rename to onPulse or something
channelPulseCount[i] = 0; channelPulseCount[i] = 0;
needPulseReset[i] = false; needPulseReset[i] = false;
} }
if (channels[i].mode == 4) { if (channels[i].mode == Gate) {
calculateGate(i); calculateGate(i);
} }
} }
@ -418,15 +420,15 @@ void sendTriggers() { //rename to onPulse or something
} }
if (!channels[i].isMute) { if (!channels[i].isMute) {
if ((channels[i].mode == 3 && channelPulseCount[i] == 0 && stepIsOdd == 0) if ((channels[i].mode == Swing && channelPulseCount[i] == 0 && stepIsOdd == 0)
|| (channels[i].mode == 3 && channelPulseCount[i] == channels[i].swing && stepIsOdd == 1) //swing || (channels[i].mode == Swing && channelPulseCount[i] == channels[i].swing && stepIsOdd == 1) //swing
) { ) {
digitalWrite(outsPins[i], HIGH); digitalWrite(outsPins[i], HIGH);
} }
if ((channels[i].mode == 0 && channelPulseCount[i] == channels[i].offset) //CLK with offset if ((channels[i].mode == Clock && channelPulseCount[i] == channels[i].offset) //CLK with offset
|| (channels[i].mode == 1 && channelPulseCount[i] == 0 && (random(10) + 1) > randAmount) //RND || (channels[i].mode == Random && channelPulseCount[i] == 0 && (random(10) + 1) > randAmount) //RND
|| (channels[i].mode == 4 && channelPulseCount[i] == 0) //Gate || (channels[i].mode == Gate && channelPulseCount[i] == 0) //Gate
) { ) {
digitalWrite(outsPins[i], HIGH); digitalWrite(outsPins[i], HIGH);
} }
@ -450,7 +452,7 @@ void calculateCycles() {
} }
playingModes[i] = subDivs[channels[i].subDiv - mod]; //subtracting because the innitial array is backwards playingModes[i] = subDivs[channels[i].subDiv - mod]; //subtracting because the innitial array is backwards
if (channels[i].mode == 2 || channels[i].mode == 3) { //Sequencer and swing plays 1/16th if (channels[i].mode == Sequencer || channels[i].mode == Swing) { //Sequencer and swing plays 1/16th
channelPulsesPerCycle[i] = (PPQN / 4) - 1; channelPulsesPerCycle[i] = (PPQN / 4) - 1;
} else if (playingModes[i] > 0) { } else if (playingModes[i] > 0) {
channelPulsesPerCycle[i] = (playingModes[i] * PPQN) - 1; channelPulsesPerCycle[i] = (playingModes[i] * PPQN) - 1;

View File

@ -12,7 +12,7 @@ void checkInputs() {
} else if (encReleasedTime - encPressedTime <= 300) { // press shorter than .3s is for entering the submenu } else if (encReleasedTime - encPressedTime <= 300) { // press shorter than .3s is for entering the submenu
if (!insideTab && displayScreen == 0) { if (!insideTab && displayScreen == 0) {
insideTab = true; insideTab = true;
} else if (insideTab && channels[displayTab - 1].mode == 2 && menuItem == 2 && displayScreen == 0) { //enter the pattern editor } else if (insideTab && channels[displayTab - 1].mode == Sequencer && menuItem == 2 && displayScreen == 0) { //enter the pattern editor
patternToEdit = channels[displayTab - 1].seqPattern; patternToEdit = channels[displayTab - 1].seqPattern;
displayScreen = 1; displayScreen = 1;
isRecording = 0; isRecording = 0;
@ -103,7 +103,7 @@ void checkInputs() {
|| (insideTab && menuItem == 0 || (insideTab && menuItem == 0
&& (menuItemSelected || shiftBtnPushed))) && (menuItemSelected || shiftBtnPushed)))
&& displayTab != 0 && displayTab != 0
&& channels[displayTab - 1].mode == 0) { && channels[displayTab - 1].mode == Clock) {
channels[displayTab - 1].subDiv = channels[displayTab - 1].subDiv - change; channels[displayTab - 1].subDiv = channels[displayTab - 1].subDiv - change;
//channels[displayTab - 1].offset = 0; //channels[displayTab - 1].offset = 0;
if (channels[displayTab - 1].subDiv > 100) { if (channels[displayTab - 1].subDiv > 100) {
@ -128,7 +128,7 @@ void checkInputs() {
|| (insideTab && menuItem == 0 || (insideTab && menuItem == 0
&& (menuItemSelected || shiftBtnPushed))) && (menuItemSelected || shiftBtnPushed)))
&& displayTab != 0 && displayTab != 0
&& channels[displayTab - 1].mode == 1) { //Change Random && channels[displayTab - 1].mode == Random) { //Change Random
channels[displayTab - 1].random = channels[displayTab - 1].random + change; channels[displayTab - 1].random = channels[displayTab - 1].random + change;
if (channels[displayTab - 1].random > 100) { if (channels[displayTab - 1].random > 100) {
channels[displayTab - 1].random = 0; channels[displayTab - 1].random = 0;
@ -140,7 +140,7 @@ void checkInputs() {
|| (insideTab && menuItem == 0 || (insideTab && menuItem == 0
&& (menuItemSelected || shiftBtnPushed))) && (menuItemSelected || shiftBtnPushed)))
&& displayTab != 0 && displayTab != 0
&& channels[displayTab - 1].mode == 2) { //Change SEQ pattern && channels[displayTab - 1].mode == Sequencer) { //Change SEQ pattern
if (channels[displayTab - 1].seqPattern == 0 && change == -1) { if (channels[displayTab - 1].seqPattern == 0 && change == -1) {
channels[displayTab - 1].seqPattern = 0; channels[displayTab - 1].seqPattern = 0;
} else if (channels[displayTab - 1].seqPattern == 31 && change == 1) { } else if (channels[displayTab - 1].seqPattern == 31 && change == 1) {
@ -153,7 +153,7 @@ void checkInputs() {
|| (insideTab && menuItem == 0 || (insideTab && menuItem == 0
&& (menuItemSelected || shiftBtnPushed))) && (menuItemSelected || shiftBtnPushed)))
&& displayTab != 0 && displayTab != 0
&& channels[displayTab - 1].mode == 3) { //Change SWING && channels[displayTab - 1].mode == Swing) { //Change SWING
channels[displayTab - 1].swing = channels[displayTab - 1].swing + change; channels[displayTab - 1].swing = channels[displayTab - 1].swing + change;
if (channels[displayTab - 1].swing > 6) { if (channels[displayTab - 1].swing > 6) {
channels[displayTab - 1].swing = 0; channels[displayTab - 1].swing = 0;
@ -165,7 +165,7 @@ void checkInputs() {
|| (insideTab && menuItem == 0 || (insideTab && menuItem == 0
&& (menuItemSelected || shiftBtnPushed))) && (menuItemSelected || shiftBtnPushed)))
&& displayTab != 0 && displayTab != 0
&& channels[displayTab - 1].mode == 4) { //Change GATE && channels[displayTab - 1].mode == Gate) { //Change GATE
channels[displayTab - 1].gate = channels[displayTab - 1].gate + change; channels[displayTab - 1].gate = channels[displayTab - 1].gate + change;
if (channels[displayTab - 1].gate > 100 || channels[displayTab - 1].gate == 0) { if (channels[displayTab - 1].gate > 100 || channels[displayTab - 1].gate == 0) {
channels[displayTab - 1].gate = 1; channels[displayTab - 1].gate = 1;
@ -252,7 +252,7 @@ void checkInputs() {
} else if (insideTab } else if (insideTab
&& (menuItemSelected || shiftBtnPushed) && (menuItemSelected || shiftBtnPushed)
&& displayTab != 0 && menuItem == 2 && displayTab != 0 && menuItem == 2
&& channels[displayTab - 1].mode == 0) { //Offset && channels[displayTab - 1].mode == Clock) { //Offset
channels[displayTab - 1].offset = channels[displayTab - 1].offset + change; channels[displayTab - 1].offset = channels[displayTab - 1].offset + change;
if (channels[displayTab - 1].offset == 255) { // 0 - 1 for uint8 is 255 if (channels[displayTab - 1].offset == 255) { // 0 - 1 for uint8 is 255
channels[displayTab - 1].offset = 0; channels[displayTab - 1].offset = 0;
@ -264,7 +264,7 @@ void checkInputs() {
&& (menuItemSelected || shiftBtnPushed) && (menuItemSelected || shiftBtnPushed)
&& displayTab != 0 && displayTab != 0
&& menuItem == 2 && menuItem == 2
&& (channels[displayTab - 1].mode == 1 || channels[displayTab - 1].mode == 4)) { //SUBDIV for RANDOM and GATE && (channels[displayTab - 1].mode == Random || channels[displayTab - 1].mode == Gate)) { //SUBDIV for RANDOM and GATE
channels[displayTab - 1].subDiv = channels[displayTab - 1].subDiv - change; channels[displayTab - 1].subDiv = channels[displayTab - 1].subDiv - change;
if (channels[displayTab - 1].subDiv > 200) { if (channels[displayTab - 1].subDiv > 200) {
channels[displayTab - 1].subDiv = 0; channels[displayTab - 1].subDiv = 0;
@ -279,7 +279,7 @@ void checkInputs() {
&& (menuItemSelected || shiftBtnPushed) && (menuItemSelected || shiftBtnPushed)
&& displayTab != 0 && displayTab != 0
&& menuItem == 3 && menuItem == 3
&& channels[displayTab - 1].mode == 0) { //CV for CLK && channels[displayTab - 1].mode == Clock) { //CV for CLK
if (channels[displayTab - 1].CV1Target == 1 && channels[displayTab - 1].CV2Target == 0) { if (channels[displayTab - 1].CV1Target == 1 && channels[displayTab - 1].CV2Target == 0) {
channelCV = 1; channelCV = 1;
} else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 1) { } else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 1) {
@ -301,7 +301,7 @@ void checkInputs() {
channels[displayTab - 1].CV2Target = 1; channels[displayTab - 1].CV2Target = 1;
} }
saveState(); saveState();
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 1) { //CV for RND } else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == Random) { //CV for RND
if (channels[displayTab - 1].CV1Target == 2 && channels[displayTab - 1].CV2Target == 0) { if (channels[displayTab - 1].CV1Target == 2 && channels[displayTab - 1].CV2Target == 0) {
channelCV = 1; channelCV = 1;
} else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 2) { } else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 2) {
@ -323,7 +323,7 @@ void checkInputs() {
channels[displayTab - 1].CV2Target = 2; channels[displayTab - 1].CV2Target = 2;
} }
saveState(); saveState();
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 2) { //CV1 for SEQ } else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == Sequencer) { //CV1 for SEQ
if (channels[displayTab - 1].CV1Target == 3 && channels[displayTab - 1].CV2Target == 0) { if (channels[displayTab - 1].CV1Target == 3 && channels[displayTab - 1].CV2Target == 0) {
channelCV = 1; channelCV = 1;
} else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 3) { } else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 3) {

View File

@ -118,9 +118,9 @@ void updateScreen() {
//Channel Tabs //Channel Tabs
else { else {
//Menu items //Menu items
if (channels[displayTab - 1].mode == 3) { if (channels[displayTab - 1].mode == Swing) {
lastMenuItem = 1; lastMenuItem = 1;
} else if (channels[displayTab - 1].mode == 4) { } else if (channels[displayTab - 1].mode == Gate) {
lastMenuItem = 3; lastMenuItem = 3;
} else { } else {
lastMenuItem = 3; lastMenuItem = 3;
@ -130,13 +130,13 @@ void updateScreen() {
for (uint8_t i = 1; i <= lastMenuItem; i++) { for (uint8_t i = 1; i <= lastMenuItem; i++) {
if (i == 1) { if (i == 1) {
valueStr = F("MODE:"); valueStr = F("MODE:");
} else if (i == 2 && channels[displayTab - 1].mode == 0) { } else if (i == 2 && channels[displayTab - 1].mode == Clock) {
valueStr = F("OFFSET:"); valueStr = F("OFFSET:");
} else if (i == 2 && (channels[displayTab - 1].mode == 1 || channels[displayTab - 1].mode == 4)) { } else if (i == 2 && (channels[displayTab - 1].mode == Random || channels[displayTab - 1].mode == Gate)) {
valueStr = F("SUBDIV:"); valueStr = F("SUBDIV:");
} else if (i == 2 && channels[displayTab - 1].mode == 2) { } else if (i == 2 && channels[displayTab - 1].mode == Sequencer) {
valueStr = F("EDIT PATTERN"); valueStr = F("EDIT PATTERN");
} else if (i == 3 && channels[displayTab - 1].mode == 4) { } else if (i == 3 && channels[displayTab - 1].mode == Gate) {
valueStr = (String(pulsePeriod) + " " + String(channelPulsesPerCycle[displayTab - 1])); valueStr = (String(pulsePeriod) + " " + String(channelPulsesPerCycle[displayTab - 1]));
} else if (i == 3) { } else if (i == 3) {
valueStr = F("MOD:"); valueStr = F("MOD:");
@ -150,17 +150,17 @@ void updateScreen() {
//Values //Values
for (uint8_t i = 1; i <= lastMenuItem; i++) { for (uint8_t i = 1; i <= lastMenuItem; i++) {
if (i == 1 && channels[displayTab - 1].mode == 0) { //Channel mode if (i == 1 && channels[displayTab - 1].mode == Clock) { //Channel mode
valueStr = F("CLOCK"); valueStr = F("CLOCK");
} else if (i == 1 && channels[displayTab - 1].mode == 1) { } else if (i == 1 && channels[displayTab - 1].mode == Random) {
valueStr = F("RAND"); valueStr = F("RAND");
} else if (i == 1 && channels[displayTab - 1].mode == 2) { } else if (i == 1 && channels[displayTab - 1].mode == Sequencer) {
valueStr = F("SEQ"); valueStr = F("SEQ");
} else if (i == 1 && channels[displayTab - 1].mode == 3) { } else if (i == 1 && channels[displayTab - 1].mode == Swing) {
valueStr = F("SWING"); valueStr = F("SWING");
} else if (i == 1 && channels[displayTab - 1].mode == 4) { } else if (i == 1 && channels[displayTab - 1].mode == Gate) {
valueStr = F("GATE"); valueStr = F("GATE");
} else if (i == 2 && channels[displayTab - 1].mode == 0) { //SubDiv and offset } else if (i == 2 && channels[displayTab - 1].mode == Clock) { //SubDiv and offset
valueStr = String(channels[displayTab - 1].offset) + F("/"); valueStr = String(channels[displayTab - 1].offset) + F("/");
int PulsesPerStep; int PulsesPerStep;
if (subDivs[channels[displayTab - 1].subDiv] < 0) { if (subDivs[channels[displayTab - 1].subDiv] < 0) {
@ -169,10 +169,10 @@ void updateScreen() {
PulsesPerStep = subDivs[channels[displayTab - 1].subDiv] * PPQN; PulsesPerStep = subDivs[channels[displayTab - 1].subDiv] * PPQN;
} }
valueStr = valueStr + String(PulsesPerStep); //(playingModes[i] * PPQN) - 1 //String(channelPulsesPerCycle[displayTab-1]+1) valueStr = valueStr + String(PulsesPerStep); //(playingModes[i] * PPQN) - 1 //String(channelPulsesPerCycle[displayTab-1]+1)
} else if (i == 2 && (channels[displayTab - 1].mode == 1 || channels[displayTab - 1].mode == 4) && subDivs[channels[displayTab - 1].subDiv] > 0) { } else if (i == 2 && (channels[displayTab - 1].mode == Random || channels[displayTab - 1].mode == Gate) && subDivs[channels[displayTab - 1].subDiv] > 0) {
valueStr = F("/"); valueStr = F("/");
valueStr = valueStr + String(subDivs[channels[displayTab - 1].subDiv]); valueStr = valueStr + String(subDivs[channels[displayTab - 1].subDiv]);
} else if (i == 2 && (channels[displayTab - 1].mode == 1 || channels[displayTab - 1].mode == 4) && subDivs[channels[displayTab - 1].subDiv] < 0) { } else if (i == 2 && (channels[displayTab - 1].mode == Random || channels[displayTab - 1].mode == Gate) && subDivs[channels[displayTab - 1].subDiv] < 0) {
valueStr = F("x"); valueStr = F("x");
valueStr = valueStr + String(abs(subDivs[channels[displayTab - 1].subDiv])); valueStr = valueStr + String(abs(subDivs[channels[displayTab - 1].subDiv]));
} else if (i == 3 && channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 0) { //MOD } else if (i == 3 && channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 0) { //MOD
@ -183,7 +183,7 @@ void updateScreen() {
valueStr = F("CV2"); valueStr = F("CV2");
} }
if (i == 2 && channels[displayTab - 1].mode == 2) { //EDIT PATTERN thing if (i == 2 && channels[displayTab - 1].mode == Sequencer) { //EDIT PATTERN thing
if (menuItem == i && insideTab) { if (menuItem == i && insideTab) {
u8g2.drawBox(leftOffset + 54, ((i-1) * 11), 11, 11); u8g2.drawBox(leftOffset + 54, ((i-1) * 11), 11, 11);
} }
@ -201,15 +201,15 @@ void updateScreen() {
//Main Param //Main Param
leftOffset = 29; leftOffset = 29;
width = 55; width = 55;
if (channels[displayTab - 1].mode == 0) { if (channels[displayTab - 1].mode == Clock) {
valueStr = F("SUBDIVISION"); valueStr = F("SUBDIVISION");
} else if (channels[displayTab - 1].mode == 1) { } else if (channels[displayTab - 1].mode == Random) {
valueStr = F("SKIP CHANCE"); valueStr = F("SKIP CHANCE");
} else if (channels[displayTab - 1].mode == 2) { } else if (channels[displayTab - 1].mode == Sequencer) {
valueStr = F("PATTERN"); valueStr = F("PATTERN");
} else if (channels[displayTab - 1].mode == 3) { } else if (channels[displayTab - 1].mode == Swing) {
valueStr = F("SWING"); valueStr = F("SWING");
} else if (channels[displayTab - 1].mode == 4) { } else if (channels[displayTab - 1].mode == Gate) {
valueStr = gateLengthTime[displayTab - 1]; valueStr = gateLengthTime[displayTab - 1];
} }
@ -219,16 +219,16 @@ void updateScreen() {
u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 1, 2, valueStr.c_str() ); u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 1, 2, valueStr.c_str() );
} }
if (channels[displayTab - 1].mode == 0) { if (channels[displayTab - 1].mode == Clock) {
if (subDivs[channels[displayTab - 1].subDiv] > 0) { if (subDivs[channels[displayTab - 1].subDiv] > 0) {
valueStr = F("/"); valueStr = F("/");
} else { } else {
valueStr = F("x"); valueStr = F("x");
} }
valueStr = valueStr + String(abs(subDivs[channels[displayTab - 1].subDiv])); valueStr = valueStr + String(abs(subDivs[channels[displayTab - 1].subDiv]));
} else if (channels[displayTab - 1].mode == 1) { } else if (channels[displayTab - 1].mode == Random) {
valueStr = String(channels[displayTab - 1].random) + (channels[displayTab - 1].random == 0 ? "%" : "0%"); valueStr = String(channels[displayTab - 1].random) + (channels[displayTab - 1].random == 0 ? "%" : "0%");
} else if (channels[displayTab - 1].mode == 2) { } else if (channels[displayTab - 1].mode == Sequencer) {
if (channels[displayTab - 1].seqPattern < 8) { if (channels[displayTab - 1].seqPattern < 8) {
valueStr = F("A"); valueStr = F("A");
valueStr = valueStr + String(channels[displayTab - 1].seqPattern + 1); valueStr = valueStr + String(channels[displayTab - 1].seqPattern + 1);
@ -242,10 +242,10 @@ void updateScreen() {
valueStr = F("D"); valueStr = F("D");
valueStr = valueStr + String(channels[displayTab - 1].seqPattern - 23); valueStr = valueStr + String(channels[displayTab - 1].seqPattern - 23);
} }
} else if (channels[displayTab - 1].mode == 3) { } else if (channels[displayTab - 1].mode == Swing) {
uint8_t swingVals[6] = {50, 58, 66, 75, 83, 92}; uint8_t swingVals[6] = {50, 58, 66, 75, 83, 92};
valueStr = String(swingVals[channels[displayTab - 1].swing]) + "%"; valueStr = String(swingVals[channels[displayTab - 1].swing]) + "%";
} else if (channels[displayTab - 1].mode == 4) { } else if (channels[displayTab - 1].mode == Gate) {
valueStr = String(channels[displayTab - 1].gate) + "%"; valueStr = String(channels[displayTab - 1].gate) + "%";
} }
u8g2.setFont(stkL); u8g2.setFont(stkL);