Below is my code:
int ledPinArray[4] = { 8, 9, 10, 11 };
int totalLeds = 4;
int potValArray[4] = { 0, 0, 0, 0 };
int potAnalogRead[4] = { A15, A16, A17, A18 };
int totalPotVals = 4;
int mappedPotValArray[4] = { 0, 0, 0, 0 };
int powerSwitch = 33;
int octaveSwitch = 32;
int speedPotVal = 0;
int mappedSpeedPotVal = 0;
int backwardsSwitch = 39;
void setup() {
for (int i = 0; i < totalLeds; i++) {
pinMode(ledPinArray[i], OUTPUT);
}
pinMode(powerSwitch, INPUT);
pinMode(octaveSwitch, INPUT);
pinMode(backwardsSwitch, INPUT);
Serial.begin(9600);
}
void loop() {
speedPotVal = analogRead(A19);
Serial.println(speedPotVal);
for (int i = 0; i < totalPotVals; i++) {
potValArray[i] = analogRead(potAnalogRead[i]);
mappedPotValArray[i] = map(potValArray[i], 0, 1023, 60, 72);
}
mappedSpeedPotVal = map(speedPotVal, 0, 1023, 100, 1000); //will print number from 100~1000 as you turn the pot
if (digitalRead(powerSwitch) == HIGH) { //on and off switch
if (digitalRead(backwardsSwitch) == LOW) {
if (digitalRead(octaveSwitch) == HIGH) {
octaveUpMode();
}
if (digitalRead(octaveSwitch) == LOW) {
sequenceForward();
}
}
if (digitalRead(backwardsSwitch) == HIGH) {
if (digitalRead(octaveSwitch) == HIGH) {
octaveUpBackwards();
}
if (digitalRead(octaveSwitch) == LOW) {
sequenceBackwards();
}
}
}
}
void sequenceForward() {
for (int i = 0; i < totalPotVals; i++) {
usbMIDI.sendNoteOn(mappedPotValArray[i], 127, 1);
digitalWrite(ledPinArray[i], HIGH);
delay(speedPotVal);
digitalWrite(ledPinArray[i], LOW);
usbMIDI.sendNoteOff(mappedPotValArray[i], 0, 1);
}
}
void sequenceBackwards() {
for (int i = 3; i >= 0; i--) {
usbMIDI.sendNoteOn(mappedPotValArray[i], 127, 1);
digitalWrite(ledPinArray[i], HIGH);
delay(speedPotVal);
digitalWrite(ledPinArray[i], LOW);
usbMIDI.sendNoteOff(mappedPotValArray[i], 0, 1);
}
}
void octaveUpBackwards() {
for (int i = 3; i >= 0; i--) {
usbMIDI.sendNoteOn(mappedPotValArray[i] + 12, 127, 1);
digitalWrite(ledPinArray[i], HIGH);
delay(speedPotVal);
digitalWrite(ledPinArray[i], LOW);
usbMIDI.sendNoteOff(mappedPotValArray[i] + 12, 0, 1);
}
}
void octaveUpMode() {
for (int i = 0; i < totalPotVals; i++) {
usbMIDI.sendNoteOn(mappedPotValArray[i] + 12, 127, 1);
digitalWrite(ledPinArray[i], HIGH);
delay(speedPotVal);
digitalWrite(ledPinArray[i], LOW);
usbMIDI.sendNoteOff(mappedPotValArray[i] + 12, 0, 1);
}
}