Digital Electronics Lab 5

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

Leave a comment

Design a site like this with WordPress.com
Get started