int ledPinArray[3] = {31, 30, 29}; //arrays and variables assigned
int notePotVals[3] = {0, 0, 0};
int mappedNotePotVals[3] = {0, 0, 0};
int toggleSwitch[2] = {15, 14};
int pot[3] = {A13, A15, A16};
int totalPots = 3;
int totalLeds = 3;
int onoff = 38;
int tempo = 0;
int tempoPin = A20;
void setup() {
for (int i = 0; i < totalLeds; i++) {
pinMode(ledPinArray[i], OUTPUT);
}
Serial.begin(9600);
pinMode(toggleSwitch[0], INPUT);
pinMode(toggleSwitch[1], INPUT);
pinMode(onoff, INPUT);
}
void loop() {
if (digitalRead(onoff) == HIGH) {
sequenceforward();
}
else if (digitalRead(onoff) == LOW) {
sequencebackward();
}
sequenceforward();
}
void sequenceforward() { //sequence forward
if (digitalRead(toggleSwitch[1]) == HIGH) {
tempo = analogRead(tempoPin);
for (int i = 0; i < totalPots; i++) {
notePotVals[i] = analogRead(pot[i]);
mappedNotePotVals[i] = map(notePotVals[i], 0, 1023, 60, 72);
if (digitalRead(toggleSwitch[0]) == HIGH) {
mappedNotePotVals[i] = mappedNotePotVals[i] + 12;
}
usbMIDI.sendNoteOn(mappedNotePotVals[i], 127, 1);
digitalWrite(ledPinArray[i], HIGH);
delay(tempo);
usbMIDI.sendNoteOff(mappedNotePotVals[i], 0, 1);
digitalWrite(ledPinArray[i], LOW);
}
}
}
void sequencebackward() {
if (digitalRead(toggleSwitch[1]) == HIGH) {
tempo = analogRead(tempoPin);
for (int i = totalPots - 1; i >= 0; i--) {
notePotVals[i] = analogRead(pot[i]);
mappedNotePotVals[i] = map(notePotVals[i], 0, 1023, 60, 72);
if (digitalRead(toggleSwitch[0]) == HIGH) {
mappedNotePotVals[i] = mappedNotePotVals[i] + 12;
}
usbMIDI.sendNoteOn(mappedNotePotVals[i], 127, 1);
digitalWrite(ledPinArray[i], HIGH);
delay(tempo);
usbMIDI.sendNoteOff(mappedNotePotVals[i], 0, 1);
digitalWrite(ledPinArray[i], LOW);
}
}
}