Simplified CV modulation menu (needs testing)
This commit is contained in:
@ -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();
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user