Simplified CV modulation menu (needs testing)

This commit is contained in:
2023-08-22 23:15:36 +03:00
parent e51337abf2
commit 4c9a4e966f
2 changed files with 59 additions and 63 deletions

View File

@ -87,6 +87,7 @@ void checkInputs() {
if (encPositionOld != encPosition) {
int change = encPositionOld - encPosition;
if (displayScreen == 0) {
byte channelCV;
if (!insideTab && !shiftBtnPushed) { //Change tab
displayTab = displayTab + change;
if (displayTab > 100) { //to address "negative" numbers
@ -145,8 +146,7 @@ void checkInputs() {
channels[displayTab - 1].seqPattern = 15;
}
saveState();
}
else if (insideTab && !shiftBtnPushed && !menuItemSelected) {
} else if (insideTab && !shiftBtnPushed && !menuItemSelected) {
menuItem = menuItem + change;
if (menuItem > 100) { //for "negative" values
menuItem = 0;
@ -214,61 +214,69 @@ void checkInputs() {
calculateCycles();
}
saveState();
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 0) { //CV1 for CLK
channels[displayTab - 1].CV1Target = channels[displayTab - 1].CV1Target + change;
if (channels[displayTab - 1].CV1Target > 100) {
channels[displayTab - 1].CV1Target = 0;
} else if (channels[displayTab - 1].CV1Target > 1) {
channels[displayTab - 1].CV1Target = 1;
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 0) { //CV for CLK
if (channels[displayTab - 1].CV1Target == 1 && channels[displayTab - 1].CV2Target == 0) {
channelCV = 1;
} else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 1) {
channelCV = 2;
} else {
channelCV = 0;
}
saveState();
}
else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 4 && channels[displayTab - 1].mode == 0) { //CV2 for CLK
channels[displayTab - 1].CV2Target = channels[displayTab - 1].CV2Target + change;
if (channels[displayTab - 1].CV2Target > 100) {
channelCV = channelCV + change;
if (channelCV == 0 || channelCV > 100) {
channelCV = 0;
channels[displayTab - 1].CV1Target = 0;
channels[displayTab - 1].CV2Target = 0;
} else if (channels[displayTab - 1].CV2Target > 1) {
} else if (channelCV == 1) {
channels[displayTab - 1].CV1Target = 1;
channels[displayTab - 1].CV2Target = 0;
} else if (channelCV >= 2) {
channelCV = 2;
channels[displayTab - 1].CV1Target = 0;
channels[displayTab - 1].CV2Target = 1;
}
saveState();
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 1) { //CV1 for RND
channels[displayTab - 1].CV1Target = channels[displayTab - 1].CV1Target + change;
if (channels[displayTab - 1].CV1Target > 100) {
channels[displayTab - 1].CV1Target = 0;
} else if (channels[displayTab - 1].CV1Target > 2) {
channels[displayTab - 1].CV1Target = 2;
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 1) { //CV for RND
if (channels[displayTab - 1].CV1Target == 2 && channels[displayTab - 1].CV2Target == 0) {
channelCV = 1;
} else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 2) {
channelCV = 2;
} else {
channelCV = 0;
}
saveState();
}
else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 4 && channels[displayTab - 1].mode == 1) { //CV2 for RND
channels[displayTab - 1].CV2Target = channels[displayTab - 1].CV2Target + change;
if (channels[displayTab - 1].CV2Target > 100) {
channelCV = channelCV + change;
if (channelCV == 0 || channelCV > 100) {
channelCV = 0;
channels[displayTab - 1].CV1Target = 0;
channels[displayTab - 1].CV2Target = 0;
} else if (channels[displayTab - 1].CV2Target > 2) {
} else if (channelCV == 1) {
channels[displayTab - 1].CV1Target = 2;
channels[displayTab - 1].CV2Target = 0;
} else if (channelCV >= 2) {
channelCV = 2;
channels[displayTab - 1].CV1Target = 0;
channels[displayTab - 1].CV2Target = 2;
}
saveState();
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 2) { //CV1 for SEQ
channels[displayTab - 1].CV1Target = channels[displayTab - 1].CV1Target + change;
if (channels[displayTab - 1].CV1Target > 100) {
channels[displayTab - 1].CV1Target = 0;
} else if (channels[displayTab - 1].CV1Target == 1) { //hacky way to limit choices only to 0 and 3, should be a better option
channels[displayTab - 1].CV1Target = 3;
} else if (channels[displayTab - 1].CV1Target == 2) {
channels[displayTab - 1].CV1Target = 0;
} else if (channels[displayTab - 1].CV1Target > 3) {
channels[displayTab - 1].CV1Target = 3;
if (channels[displayTab - 1].CV1Target == 3 && channels[displayTab - 1].CV2Target == 0) {
channelCV = 1;
} else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 3) {
channelCV = 2;
} else {
channelCV = 0;
}
saveState();
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 4 && channels[displayTab - 1].mode == 2) { //CV2 for SEQ
channels[displayTab - 1].CV2Target = channels[displayTab - 1].CV2Target + change;
if (channels[displayTab - 1].CV2Target > 100) {
channelCV = channelCV + change;
if (channelCV == 0 || channelCV > 100) {
channelCV = 0;
channels[displayTab - 1].CV1Target = 0;
channels[displayTab - 1].CV2Target = 0;
} else if (channels[displayTab - 1].CV2Target == 1) { //hacky way to limit choices only to 0 and 3, should be a better option
channels[displayTab - 1].CV2Target = 3;
} else if (channels[displayTab - 1].CV2Target == 2) {
} else if (channelCV == 1) {
channels[displayTab - 1].CV1Target = 3;
channels[displayTab - 1].CV2Target = 0;
} else if (channels[displayTab - 1].CV2Target > 3) {
} else if (channelCV >= 2) {
channelCV = 2;
channels[displayTab - 1].CV1Target = 0;
channels[displayTab - 1].CV2Target = 3;
}
saveState();

View File

@ -133,7 +133,7 @@ void updateScreen() {
//Channel Tabs
else {
//Menu items
lastMenuItem = 4;
lastMenuItem = 3;
width = 32;
leftOffset = 62;
for (byte i = 1; i <= lastMenuItem; i++) {
@ -146,10 +146,8 @@ void updateScreen() {
} else if (i == 2 && channels[displayTab - 1].mode == 2) {
valueStr = "EDIT PATTERN";
} else if (i == 3) {
valueStr = "CV1:";
} else if (i == 4) {
valueStr = "CV2:";
}
valueStr = "MOD:";
}
valueStr.toCharArray(valueChar, 16);
if (menuItem == i && insideTab) {
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueChar );
@ -173,22 +171,12 @@ void updateScreen() {
valueStr = "/" + String(subDivs[channels[displayTab - 1].subDiv]);
} else if (i == 2 && channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] < 0) {
valueStr = "x" + String(abs(subDivs[channels[displayTab - 1].subDiv]));
} else if (i == 3 && channels[displayTab - 1].CV1Target == 0) { //CV1
} else if (i == 3 && channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 0) { //MOD
valueStr = "OFF";
} else if (i == 3 && channels[displayTab - 1].CV1Target == 1) {
valueStr = "SUBDIV";
} else if (i == 3 && channels[displayTab - 1].CV1Target == 2) {
valueStr = "RAND";
} else if (i == 3 && channels[displayTab - 1].CV1Target == 3) {
valueStr = "PATT";
} else if (i == 4 && channels[displayTab - 1].CV2Target == 0) { //CV2
valueStr = "OFF";
} else if (i == 4 && channels[displayTab - 1].CV2Target == 1) {
valueStr = "SUBDIV";
} else if (i == 4 && channels[displayTab - 1].CV2Target == 2) {
valueStr = "RAND";
} else if (i == 4 && channels[displayTab - 1].CV2Target == 3) {
valueStr = "PATT";
} else if (i == 3 && channels[displayTab - 1].CV1Target != 0 && channels[displayTab - 1].CV2Target == 0) {
valueStr = "CV1";
} else if (i == 3 && channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target != 0) {
valueStr = "CV2";
}
valueStr.toCharArray(valueChar, 16);