Lab 4

Video Link

Code:

int led1 = 8;
int led2 = 9;
int led3 = 10;
int led4 = 11;

int pot1 = A18;
int pot2 = A17;
int pot3 = A16;
int pot4 = A15;
int delayPot = A14;
int mappedDelay = 0;

int note1 = 0;
int note2 = 0;
int note3 = 0;
int note4 = 0;

int onSwitch = 32;
int octaveSwitch = 31;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  
  pinMode(onSwitch, INPUT);
  pinMode(octaveSwitch, INPUT);
}

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

void checkOnSwitch() {                                                                 //on switch controls the rest of the code
  if (digitalRead(onSwitch) == HIGH and digitalRead(octaveSwitch) == HIGH) {           //create functions for octave switch
    octaveHigh();
  } if (digitalRead(onSwitch) == HIGH and digitalRead(octaveSwitch) == LOW) {
    octaveLow();
  }
}

void octaveHigh() {                                                                    
  mappedDelay = map(analogRead(delayPot), 0, 1023, 100, 1000);                        //this controls the delay pot which controls the speed of the sequencer

  note1 = map(analogRead(pot1), 0, 1023, 60, 72);                                     //tell all four pots to control a specific note and then turn it off
  usbMIDI.sendNoteOn(note1 + 12, 127, 1);                                             //+12 for one octave higher
  digitalWrite(led1, HIGH);
  delay(mappedDelay);
  usbMIDI.sendNoteOff(note1  + 12, 0, 1);
  digitalWrite(led1, LOW);

  note2 = map(analogRead(pot2), 0, 1023, 60, 72);
  usbMIDI.sendNoteOn(note2  + 12, 127, 1);
  digitalWrite(led2, HIGH);
  delay(mappedDelay);
  usbMIDI.sendNoteOff(note2  + 12, 0, 1);
  digitalWrite(led2, LOW);

  note3 = map(analogRead(pot3), 0, 1023, 60, 72);
  usbMIDI.sendNoteOn(note3  + 12, 127, 1);
  digitalWrite(led3, HIGH);
  delay(mappedDelay);
  usbMIDI.sendNoteOff(note3 + 12, 0, 1);
  digitalWrite(led3, LOW);

  note4 = map(analogRead(pot4), 0, 1023, 60, 72);
  usbMIDI.sendNoteOn(note4 + 12, 127, 1);
  digitalWrite(led4, HIGH);
  delay(mappedDelay);
  usbMIDI.sendNoteOff(note4 + 12, 0, 1);
  digitalWrite(led4, LOW);
}

void octaveLow() {
  mappedDelay = map(analogRead(delayPot), 0, 1023, 100, 1000);                      //this function is the same as the octaveHigh function
  note1 = map(analogRead(pot1), 0, 1023, 60, 72);                                   //but does not include the +12 on each note
  usbMIDI.sendNoteOn(note1, 127, 1);
  digitalWrite(led1, HIGH);
  delay(mappedDelay);
  usbMIDI.sendNoteOff(note1, 0, 1);
  digitalWrite(led1, LOW);

  note2 = map(analogRead(pot2), 0, 1023, 60, 72);
  usbMIDI.sendNoteOn(note2, 127, 1);
  digitalWrite(led2, HIGH);
  delay(mappedDelay);
  usbMIDI.sendNoteOff(note2, 0, 1);
  digitalWrite(led2, LOW);

  note3 = map(analogRead(pot3), 0, 1023, 60, 72);
  usbMIDI.sendNoteOn(note3, 127, 1);
  digitalWrite(led3, HIGH);
  delay(mappedDelay);
  usbMIDI.sendNoteOff(note3, 0, 1);
  digitalWrite(led3, LOW);

  note4 = map(analogRead(pot4), 0, 1023, 60, 72);
  usbMIDI.sendNoteOn(note4, 127, 1);
  digitalWrite(led4, HIGH);
  delay(mappedDelay);
  usbMIDI.sendNoteOff(note4, 0, 1);
  digitalWrite(led4, LOW);
}

Design a site like this with WordPress.com
Get started