Here is my code:
int ledPin1 = 8;
int ledPin2 = 9;
int ledPin3 = 10;
int ledPin4 = 11;
int buttonPinC = 33;
int buttonPinE = 34;
int buttonPinG = 35;
int buttonPinB = 36;
int modeSwitch = 37;
int potValue = 0;
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(buttonPinC, INPUT);
pinMode(buttonPinE, INPUT);
pinMode(buttonPinG, INPUT);
pinMode(buttonPinB, INPUT);
pinMode(modeSwitch, INPUT);
}
void loop() {
if (digitalRead(modeSwitch) == HIGH) {
arpeggioMode();
}
if (digitalRead(modeSwitch) == LOW) {
keyBoardMode();
}
potValue = analogRead(A19);
}
void keyBoardMode() {
checkButton1();
checkButton2();
checkButton3();
checkButton4();
}
void checkButton1() {
if (digitalRead(buttonPinC) == HIGH) {
usbMIDI.sendNoteOn(60, 127, 1);
digitalWrite(ledPin1, HIGH);
delay(500);
usbMIDI.sendNoteOff(60, 0, 1);
digitalWrite(ledPin1, LOW);
delay(500);
}
}
void arpeggioMode() {
if (digitalRead(buttonPinC) == HIGH) {
arpeggio(60);
}
if (digitalRead(buttonPinE) == HIGH) {
arpeggio(64);
}
if (digitalRead(buttonPinG) == HIGH) {
arpeggio(67);
}
if (digitalRead(buttonPinB) == HIGH) {
arpeggio(71);
}
}
void arpeggio(int note) {
usbMIDI.sendNoteOn(note, 127, 1);
digitalWrite(ledPin1, HIGH);
delay(potValue);
usbMIDI.sendNoteOff(note, 0, 1);
digitalWrite(ledPin1, LOW);
usbMIDI.sendNoteOn(note + 4, 127, 1);
digitalWrite(ledPin2, HIGH);
delay(potValue);
usbMIDI.sendNoteOff(note + 4, 0, 1);
digitalWrite(ledPin2, LOW);
usbMIDI.sendNoteOn(note + 7, 127, 1);
digitalWrite(ledPin3, HIGH);
delay(potValue);
usbMIDI.sendNoteOff(note + 7, 0, 1);
digitalWrite(ledPin3, LOW);
usbMIDI.sendNoteOn(note + 11, 127, 1);
digitalWrite(ledPin4, HIGH);
delay(potValue);
usbMIDI.sendNoteOff(note + 11, 0, 1);
digitalWrite(ledPin4, LOW);
delay(potValue);
}
void checkButton2() {
if (digitalRead(buttonPinE) == HIGH) {
usbMIDI.sendNoteOn(64, 127, 1);
digitalWrite(ledPin2, HIGH);
delay(500);
usbMIDI.sendNoteOff(64, 0, 1);
digitalWrite(ledPin2, LOW);
delay(500);
}
}
void checkButton3() {
if (digitalRead(buttonPinG) == HIGH) {
usbMIDI.sendNoteOn(67, 127, 1);
digitalWrite(ledPin3, HIGH);
delay(500);
usbMIDI.sendNoteOff(67, 0, 1);
digitalWrite(ledPin3, LOW);
delay(500);
}
}
void checkButton4() {
if (digitalRead(buttonPinB) == HIGH) {
usbMIDI.sendNoteOn(71, 127, 1);
digitalWrite(ledPin4, HIGH);
delay(500);
usbMIDI.sendNoteOff(71, 0, 1);
digitalWrite(ledPin4, LOW);
delay(500);
}
}