Tenemos dos botones para subir y bajar octava. Si los pulsamos, transportamos toda la secuencia una octava hacia arriba o hacia abajo. Tambien hemos añadido un bloqueo para que la octava no cambie si es mayor de 9 o menor de 1.
if (!muteActivado && octPlusPulsed && tiempoActualMillis - ultimoTiempoBotonOct > 500) {
ultimoTiempoBotonOct = tiempoActualMillis;
timeShowOctValue = tiempoActualMillis;
for (int i = 0; i < numMutes; i++) {
if(octavaValue[i] < 9){octavaValue[i]++;}
}
menuActual = 5;
updateLCD = true;
}
else if (!muteActivado && octRestPulsed && tiempoActualMillis - ultimoTiempoBotonOct > 500) {
ultimoTiempoBotonOct = tiempoActualMillis;
timeShowOctValue = tiempoActualMillis;
for (int i = 0; i < numMutes; i++) {
if(octavaValue[i] > 0){octavaValue[i]--;}
}
menuActual = 5;
updateLCD = true;
}
Al haber convertido los mutes en selectores, si mantenemos el botón mute de una nota y pulsamos el botón de octava, variaremos la octava de solo esa nota.
if (mute) {
//...
if (octPlusPulsed && tiempoActualMillis - ultimoTiempoBotonOct > 500 && octavaValue[i] < 9) {
ultimoTiempoBotonOct = tiempoActualMillis;
timeShowOctValue = tiempoActualMillis;
octavaValue[i]++;
menuActual = 4;
updateLCD = true;
pulsedIndividualOctave = true;
}
Además, se ha programado la pantalla de visualización de la octava.