Digital Electronics Lab 3

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);
  }
}

Leave a comment

Design a site like this with WordPress.com
Get started