Added sequence recorder
This commit is contained in:
@ -81,6 +81,7 @@ int playingModes[6]; //actual channel modes array updated from channels object
|
|||||||
|
|
||||||
unsigned int pulsePeriod;
|
unsigned int pulsePeriod;
|
||||||
bool isPlaying = false;
|
bool isPlaying = false;
|
||||||
|
bool isRecording = false;
|
||||||
|
|
||||||
unsigned int tickCount = 0;
|
unsigned int tickCount = 0;
|
||||||
unsigned int pulseCount = 0;
|
unsigned int pulseCount = 0;
|
||||||
|
|||||||
@ -9,9 +9,9 @@ void checkInputs() {
|
|||||||
encReleasedTime = millis();
|
encReleasedTime = millis();
|
||||||
|
|
||||||
if (encReleasedTime - encPressedTime < 500) { // press shorter than .5s is for entering the submenu
|
if (encReleasedTime - encPressedTime < 500) { // press shorter than .5s is for entering the submenu
|
||||||
if (!insideTab) {
|
if (!insideTab && displayScreen == 0) {
|
||||||
insideTab = 1;
|
insideTab = true;
|
||||||
} else if (insideTab && channels[displayTab - 1].mode == 2 && menuItem == 1) { //enter the pattern editor
|
} else if (insideTab && channels[displayTab - 1].mode == 2 && menuItem == 1 && displayScreen == 0) { //enter the pattern editor
|
||||||
if (channels[displayTab - 1].seqPattern == 0) {
|
if (channels[displayTab - 1].seqPattern == 0) {
|
||||||
patternToEdit = seqA1;
|
patternToEdit = seqA1;
|
||||||
} else if (channels[displayTab - 1].seqPattern == 1) {
|
} else if (channels[displayTab - 1].seqPattern == 1) {
|
||||||
@ -46,6 +46,9 @@ void checkInputs() {
|
|||||||
patternToEdit = seqB8;
|
patternToEdit = seqB8;
|
||||||
}
|
}
|
||||||
displayScreen = 1;
|
displayScreen = 1;
|
||||||
|
isRecording = 0;
|
||||||
|
} else if (displayScreen == 1) {
|
||||||
|
isRecording = !isRecording;
|
||||||
}
|
}
|
||||||
updateScreen();
|
updateScreen();
|
||||||
} else if (encReleasedTime - encPressedTime < 2000) { // longer press (<2s) is for navigating back. longer than 2s presses are ignored
|
} else if (encReleasedTime - encPressedTime < 2000) { // longer press (<2s) is for navigating back. longer than 2s presses are ignored
|
||||||
@ -54,6 +57,7 @@ void checkInputs() {
|
|||||||
} else if (insideTab == 1) {
|
} else if (insideTab == 1) {
|
||||||
insideTab = 0;
|
insideTab = 0;
|
||||||
menuItem = 0;
|
menuItem = 0;
|
||||||
|
isRecording = 0;
|
||||||
}
|
}
|
||||||
updateScreen();
|
updateScreen();
|
||||||
}
|
}
|
||||||
@ -207,7 +211,7 @@ void checkInputs() {
|
|||||||
}
|
}
|
||||||
saveState();
|
saveState();
|
||||||
}
|
}
|
||||||
} else if (displayScreen == 1) {
|
} else if (displayScreen == 1 && !isRecording) {
|
||||||
stepNumSelected = stepNumSelected + change;
|
stepNumSelected = stepNumSelected + change;
|
||||||
if (stepNumSelected > 100) {
|
if (stepNumSelected > 100) {
|
||||||
stepNumSelected = 15;
|
stepNumSelected = 15;
|
||||||
@ -236,9 +240,11 @@ void checkInputs() {
|
|||||||
//shift button
|
//shift button
|
||||||
if (!digitalRead(SHIFT_BTN_PIN) && !shiftBtnPushed) {
|
if (!digitalRead(SHIFT_BTN_PIN) && !shiftBtnPushed) {
|
||||||
shiftBtnPushed = true;
|
shiftBtnPushed = true;
|
||||||
if (displayScreen == 1) {
|
if (displayScreen == 1 && !isRecording) {
|
||||||
patternToEdit[stepNumSelected] = !patternToEdit[stepNumSelected];
|
patternToEdit[stepNumSelected] = !patternToEdit[stepNumSelected];
|
||||||
saveState();
|
saveState();
|
||||||
|
} else if (displayScreen == 1 && isRecording) {
|
||||||
|
patternToEdit[currentStep] = 1;
|
||||||
}
|
}
|
||||||
updateScreen();
|
updateScreen();
|
||||||
} else if (digitalRead(SHIFT_BTN_PIN) && shiftBtnPushed) {
|
} else if (digitalRead(SHIFT_BTN_PIN) && shiftBtnPushed) {
|
||||||
|
|||||||
@ -271,10 +271,9 @@ void updateScreen() {
|
|||||||
u8g2.drawUTF8(122, yPos, "r");
|
u8g2.drawUTF8(122, yPos, "r");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Edit Pattern
|
//Edit Pattern Screen
|
||||||
else if (displayScreen == 1) {
|
else if (displayScreen == 1) {
|
||||||
|
|
||||||
//patternToEdit = seqA4;
|
|
||||||
for (byte i = 0; i < 8; i++) {
|
for (byte i = 0; i < 8; i++) {
|
||||||
if (patternToEdit[i]) {
|
if (patternToEdit[i]) {
|
||||||
u8g2.drawUTF8(19 + i*12, 20, "q");
|
u8g2.drawUTF8(19 + i*12, 20, "q");
|
||||||
@ -289,11 +288,17 @@ void updateScreen() {
|
|||||||
u8g2.drawUTF8(19 + (i-8)*12, 40, "p");
|
u8g2.drawUTF8(19 + (i-8)*12, 40, "p");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!isRecording) {
|
||||||
if (stepNumSelected < 8 ) {
|
if (stepNumSelected < 8 ) {
|
||||||
u8g2.drawFrame(16 + stepNumSelected * 12, 12, 11, 11);
|
u8g2.drawFrame(16 + stepNumSelected * 12, 12, 11, 11);
|
||||||
} else {
|
} else {
|
||||||
u8g2.drawFrame(16 + (stepNumSelected-8) * 12, 32, 11, 11);
|
u8g2.drawFrame(16 + (stepNumSelected-8) * 12, 32, 11, 11);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isRecording) {
|
||||||
|
u8g2.drawUTF8(44, 60, "RECORDING");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} while ( u8g2.nextPage() );
|
} while ( u8g2.nextPage() );
|
||||||
|
|||||||
Reference in New Issue
Block a user