Simplified CV modulation menu (needs testing)
This commit is contained in:
@ -87,6 +87,7 @@ void checkInputs() {
|
|||||||
if (encPositionOld != encPosition) {
|
if (encPositionOld != encPosition) {
|
||||||
int change = encPositionOld - encPosition;
|
int change = encPositionOld - encPosition;
|
||||||
if (displayScreen == 0) {
|
if (displayScreen == 0) {
|
||||||
|
byte channelCV;
|
||||||
if (!insideTab && !shiftBtnPushed) { //Change tab
|
if (!insideTab && !shiftBtnPushed) { //Change tab
|
||||||
displayTab = displayTab + change;
|
displayTab = displayTab + change;
|
||||||
if (displayTab > 100) { //to address "negative" numbers
|
if (displayTab > 100) { //to address "negative" numbers
|
||||||
@ -145,8 +146,7 @@ void checkInputs() {
|
|||||||
channels[displayTab - 1].seqPattern = 15;
|
channels[displayTab - 1].seqPattern = 15;
|
||||||
}
|
}
|
||||||
saveState();
|
saveState();
|
||||||
}
|
} else if (insideTab && !shiftBtnPushed && !menuItemSelected) {
|
||||||
else if (insideTab && !shiftBtnPushed && !menuItemSelected) {
|
|
||||||
menuItem = menuItem + change;
|
menuItem = menuItem + change;
|
||||||
if (menuItem > 100) { //for "negative" values
|
if (menuItem > 100) { //for "negative" values
|
||||||
menuItem = 0;
|
menuItem = 0;
|
||||||
@ -214,61 +214,69 @@ void checkInputs() {
|
|||||||
calculateCycles();
|
calculateCycles();
|
||||||
}
|
}
|
||||||
saveState();
|
saveState();
|
||||||
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 0) { //CV1 for CLK
|
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 0) { //CV for CLK
|
||||||
channels[displayTab - 1].CV1Target = channels[displayTab - 1].CV1Target + change;
|
if (channels[displayTab - 1].CV1Target == 1 && channels[displayTab - 1].CV2Target == 0) {
|
||||||
if (channels[displayTab - 1].CV1Target > 100) {
|
channelCV = 1;
|
||||||
channels[displayTab - 1].CV1Target = 0;
|
} else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 1) {
|
||||||
} else if (channels[displayTab - 1].CV1Target > 1) {
|
channelCV = 2;
|
||||||
channels[displayTab - 1].CV1Target = 1;
|
} else {
|
||||||
|
channelCV = 0;
|
||||||
}
|
}
|
||||||
saveState();
|
channelCV = channelCV + change;
|
||||||
}
|
if (channelCV == 0 || channelCV > 100) {
|
||||||
else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 4 && channels[displayTab - 1].mode == 0) { //CV2 for CLK
|
channelCV = 0;
|
||||||
channels[displayTab - 1].CV2Target = channels[displayTab - 1].CV2Target + change;
|
channels[displayTab - 1].CV1Target = 0;
|
||||||
if (channels[displayTab - 1].CV2Target > 100) {
|
|
||||||
channels[displayTab - 1].CV2Target = 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;
|
channels[displayTab - 1].CV2Target = 1;
|
||||||
}
|
}
|
||||||
saveState();
|
saveState();
|
||||||
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 1) { //CV1 for RND
|
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 1) { //CV for RND
|
||||||
channels[displayTab - 1].CV1Target = channels[displayTab - 1].CV1Target + change;
|
if (channels[displayTab - 1].CV1Target == 2 && channels[displayTab - 1].CV2Target == 0) {
|
||||||
if (channels[displayTab - 1].CV1Target > 100) {
|
channelCV = 1;
|
||||||
channels[displayTab - 1].CV1Target = 0;
|
} else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 2) {
|
||||||
} else if (channels[displayTab - 1].CV1Target > 2) {
|
channelCV = 2;
|
||||||
channels[displayTab - 1].CV1Target = 2;
|
} else {
|
||||||
|
channelCV = 0;
|
||||||
}
|
}
|
||||||
saveState();
|
channelCV = channelCV + change;
|
||||||
}
|
if (channelCV == 0 || channelCV > 100) {
|
||||||
else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 4 && channels[displayTab - 1].mode == 1) { //CV2 for RND
|
channelCV = 0;
|
||||||
channels[displayTab - 1].CV2Target = channels[displayTab - 1].CV2Target + change;
|
channels[displayTab - 1].CV1Target = 0;
|
||||||
if (channels[displayTab - 1].CV2Target > 100) {
|
|
||||||
channels[displayTab - 1].CV2Target = 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;
|
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 == 2) { //CV1 for SEQ
|
||||||
channels[displayTab - 1].CV1Target = channels[displayTab - 1].CV1Target + change;
|
if (channels[displayTab - 1].CV1Target == 3 && channels[displayTab - 1].CV2Target == 0) {
|
||||||
if (channels[displayTab - 1].CV1Target > 100) {
|
channelCV = 1;
|
||||||
channels[displayTab - 1].CV1Target = 0;
|
} else if (channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 3) {
|
||||||
} else if (channels[displayTab - 1].CV1Target == 1) { //hacky way to limit choices only to 0 and 3, should be a better option
|
channelCV = 2;
|
||||||
channels[displayTab - 1].CV1Target = 3;
|
} else {
|
||||||
} else if (channels[displayTab - 1].CV1Target == 2) {
|
channelCV = 0;
|
||||||
channels[displayTab - 1].CV1Target = 0;
|
|
||||||
} else if (channels[displayTab - 1].CV1Target > 3) {
|
|
||||||
channels[displayTab - 1].CV1Target = 3;
|
|
||||||
}
|
}
|
||||||
saveState();
|
channelCV = channelCV + change;
|
||||||
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 4 && channels[displayTab - 1].mode == 2) { //CV2 for SEQ
|
if (channelCV == 0 || channelCV > 100) {
|
||||||
channels[displayTab - 1].CV2Target = channels[displayTab - 1].CV2Target + change;
|
channelCV = 0;
|
||||||
if (channels[displayTab - 1].CV2Target > 100) {
|
channels[displayTab - 1].CV1Target = 0;
|
||||||
channels[displayTab - 1].CV2Target = 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
|
} else if (channelCV == 1) {
|
||||||
channels[displayTab - 1].CV2Target = 3;
|
channels[displayTab - 1].CV1Target = 3;
|
||||||
} else if (channels[displayTab - 1].CV2Target == 2) {
|
|
||||||
channels[displayTab - 1].CV2Target = 0;
|
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;
|
channels[displayTab - 1].CV2Target = 3;
|
||||||
}
|
}
|
||||||
saveState();
|
saveState();
|
||||||
|
|||||||
@ -133,7 +133,7 @@ void updateScreen() {
|
|||||||
//Channel Tabs
|
//Channel Tabs
|
||||||
else {
|
else {
|
||||||
//Menu items
|
//Menu items
|
||||||
lastMenuItem = 4;
|
lastMenuItem = 3;
|
||||||
width = 32;
|
width = 32;
|
||||||
leftOffset = 62;
|
leftOffset = 62;
|
||||||
for (byte i = 1; i <= lastMenuItem; i++) {
|
for (byte i = 1; i <= lastMenuItem; i++) {
|
||||||
@ -146,10 +146,8 @@ void updateScreen() {
|
|||||||
} else if (i == 2 && channels[displayTab - 1].mode == 2) {
|
} else if (i == 2 && channels[displayTab - 1].mode == 2) {
|
||||||
valueStr = "EDIT PATTERN";
|
valueStr = "EDIT PATTERN";
|
||||||
} else if (i == 3) {
|
} else if (i == 3) {
|
||||||
valueStr = "CV1:";
|
valueStr = "MOD:";
|
||||||
} else if (i == 4) {
|
}
|
||||||
valueStr = "CV2:";
|
|
||||||
}
|
|
||||||
valueStr.toCharArray(valueChar, 16);
|
valueStr.toCharArray(valueChar, 16);
|
||||||
if (menuItem == i && insideTab) {
|
if (menuItem == i && insideTab) {
|
||||||
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueChar );
|
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]);
|
valueStr = "/" + String(subDivs[channels[displayTab - 1].subDiv]);
|
||||||
} else if (i == 2 && channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] < 0) {
|
} else if (i == 2 && channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] < 0) {
|
||||||
valueStr = "x" + String(abs(subDivs[channels[displayTab - 1].subDiv]));
|
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";
|
valueStr = "OFF";
|
||||||
} else if (i == 3 && channels[displayTab - 1].CV1Target == 1) {
|
} else if (i == 3 && channels[displayTab - 1].CV1Target != 0 && channels[displayTab - 1].CV2Target == 0) {
|
||||||
valueStr = "SUBDIV";
|
valueStr = "CV1";
|
||||||
} else if (i == 3 && channels[displayTab - 1].CV1Target == 2) {
|
} else if (i == 3 && channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target != 0) {
|
||||||
valueStr = "RAND";
|
valueStr = "CV2";
|
||||||
} 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";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
valueStr.toCharArray(valueChar, 16);
|
valueStr.toCharArray(valueChar, 16);
|
||||||
|
|||||||
Reference in New Issue
Block a user