Lab 5

Video Link

Code:

int ledPins[4] = {8, 9, 10, 11};
int numLedPins = 4;

int potPins[4] = {A18, A17, A16, A15};
int numPotPins = 4;
int notes[4] = {0, 0, 0, 0};
int mappedNotes[4] = {0, 0, 0, 0};

int delayPot = A14;
int mappedDelay = 0;

int onSwitch = 32;
int backwardSwitch = 31;
int octaveSwitch = 30;


void setup() {
  pinMode(onSwitch, INPUT);
  pinMode(backwardSwitch, INPUT);
  pinMode(octaveSwitch, INPUT);
  for (int i = 0; i < numLedPins; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  checkOnSwitch();                                                                     //create function that checks on switch
}

void checkOnSwitch() {
  mappedDelay = map(analogRead(delayPot), 0, 1023, 100, 1000);                                                                 
  if (digitalRead(onSwitch) == HIGH) {
    if (digitalRead(backwardSwitch) == HIGH) {
      playForward();
 }  else {
      playBackward();
    }
  }
}
void playForward() {
  for (int i = 0; i < numLedPins; i++) {
    notes[i] = analogRead(potPins[i]);
  }
  for (int  i = 0; i < numPotPins; i++) {
    mappedNotes[i] = map(notes[i], 0, 1023, 60, 72);
  }
  if (digitalRead(octaveSwitch) == HIGH) {
    for (int i = 0; i < numPotPins; i++) {
      mappedNotes[i] = map(notes[i], 0, 1023, 72, 84);
    }
  }

  for (int i = 0; i < numPotPins; i++) {
    usbMIDI.sendNoteOn(mappedNotes[i], 127, 1);
    digitalWrite(ledPins[i], HIGH);
    delay(mappedDelay);
    usbMIDI.sendNoteOff(mappedNotes[i], 0, 1);
    digitalWrite(ledPins[i], LOW);
  }
}

void playBackward() {
  for (int i = 0; i < numLedPins; i++) {
    notes[i] = analogRead(potPins[i]);
  }
  for (int i = 0; i < numPotPins; i++) {
    mappedNotes[i] = map(notes[i], 0, 1023, 60, 72);
  }
  if (digitalRead(octaveSwitch) == HIGH) {
    for (int i = 0; i < numPotPins; i++) {
      mappedNotes[i] = map(notes[i], 0, 1023, 72, 84);
    }
  }

  for (int i = 4; i >= 0; i--) {
    usbMIDI.sendNoteOn(mappedNotes[i], 127, 1);
    digitalWrite(ledPins[i], HIGH);
    delay(mappedDelay);
    usbMIDI.sendNoteOff(mappedNotes[i], 0, 1);
    digitalWrite(ledPins[i], LOW);
    }
}

Design a site like this with WordPress.com
Get started