MIDI input works but not for all MIDI signals

#include <avr/pgmspace.h>
#include "LUT.h"

//PIN DEFINITIONS 

#define DATAOUT 3 //MOSI, DIN Pin 15 on AD5668
#define SPICLK 4 //Serial Clock In, SCLK Pin 16
#define SLAVESELECT 5//SYNC Active Low Control Input, Pin 2
#define LDAC 6//LDAC, Pin 1, Pulse this pin low to update DAC registers, can be tied permanently low.
#define CLR 7
#define PWRLED 8
#define RXLED 9

//OUTLET DEFINITIONS FOR MIDI X0X
#define GATE 0
#define CV 1
#define ACC 2
#define SLD 3
#define FILT 4

//AD5668 Command definitions
#define WRITE 0
#define UPDATE 1
#define WRITE_UPDATE_ALL 2
#define WRITE_UPDATE_N 3
#define POWER 4
#define LOAD_CC_REG 5
#define LOAD_LDAC_REG 6
#define RESET 7
#define SETUP_INTERNAL_REGISTER 8

//MIDI VARIABLES
byte incomingByte;
int action = 0; //0 not implemented/do nothing, 1 note on, 2 note off, 3 cc, 4 sysex
int note = -1;  //use -1 to indicate the value has not yet been set, this should be changed
int velocity = -1;  //in future versions to save memory (i.e. use a char or a byte)
int extra1 = -1;
int extra2 = -1;

int RX = LOW;                // previous value of the LED
unsigned long interval = 100;           // interval to blink (milliseconds)

boolean noteOn = false;
boolean sysex = false;
unsigned int voltage1 = 13400;
unsigned int voltage2 = 26500;
unsigned int voltage3 = 39550;
unsigned int voltage4 = 52625;
long voltage5 = 65735;

void setup() {
  //set pin modes

  pinMode(DATAOUT, OUTPUT);
  pinMode(SPICLK, OUTPUT);
  pinMode(SLAVESELECT, OUTPUT);
  pinMode(LDAC, OUTPUT);
  pinMode(CLR, OUTPUT);
  pinMode(PWRLED, OUTPUT);
  pinMode(RXLED, OUTPUT);
  //disable DAC to start with
  digitalWrite(DATAOUT,LOW);
  digitalWrite(SPICLK, LOW);
  digitalWrite(SLAVESELECT, LOW);
  digitalWrite(LDAC, HIGH);
  digitalWrite(PWRLED, HIGH);
  digitalWrite(RXLED, HIGH);
  digitalWrite(CLR, LOW);
  delay(500);
  digitalWrite(CLR, HIGH);
  delay(500);
  delay(1000);
  write_dac(SETUP_INTERNAL_REGISTER, 0, 1); //set up internal register on DAC
  delay(1000);
  write_dac(POWER, 0, 0);
  delay(1000);
  write_dac(RESET, 0, 0);
  delay(1000);
  digitalWrite(RXLED, LOW);
  Serial.begin(31250); //change this when you want to graduate from usb midi to real midi
}


void write_dac(byte command, byte address, unsigned int data) {
  switch (command) {
  case WRITE_UPDATE_N:
    {
      byte b1 = B11110000|command; //padding at beginning of byte
      ////Serial.print("b1 ");
      ////Serial.println(b1, BIN);
      byte b2 = address << 4 | data >> 12; //4 address bits and 4 MSBs of data
      ////Serial.print("b2 ");
      ////Serial.println(b2, BIN);
      byte b3 = (data << 4) >> 8; // middle 8 bits of data
      ////Serial.print("b3 ");
      ////Serial.println(b3, BIN);
      byte b4 = (data << 12) >> 8 | B00001111;
      ////Serial.print("b4 ");
      ////Serial.println(b4, BIN);
      ////Serial.println();
      digitalWrite(SLAVESELECT, LOW);
      delayMicroseconds(1);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b1);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b2);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b3);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b4);
      delayMicroseconds(1);
      digitalWrite(LDAC, LOW);
      delayMicroseconds(1);
      digitalWrite(LDAC, HIGH);
      delayMicroseconds(1);
      digitalWrite(SLAVESELECT, HIGH);
      break;
    }
  case SETUP_INTERNAL_REGISTER:
    {
      byte b1 = B11111000; //padding at beginning of byte
      ////Serial.print("b1 ");
      ////Serial.println(b1, BIN);
      byte b2 = B00000000;
      ////Serial.print("b2 ");
      ////Serial.println(b2, BIN);
      byte b3 = B00000000;
      ////Serial.print("b2 ");
      ////Serial.println(b3, BIN);
      byte b4 = B00000000|data;
      ////Serial.print("b4 ");
      ////Serial.println(b4, BIN);
      ////Serial.println();
      digitalWrite(SLAVESELECT, LOW);
      delayMicroseconds(1);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b1);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b2);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b3);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b4);
      delayMicroseconds(1);
      digitalWrite(SLAVESELECT, HIGH);
      break;
    }
  case RESET:
    {
      byte b1 = B11110111; //padding at beginning of byte
      ////Serial.print("b1 ");
      ////Serial.println(b1, BIN);
      byte b2 = B00000000;
      ////Serial.print("b2 ");
      ////Serial.println(b2, BIN);
      byte b3 = B00000000;
      ////Serial.print("b2 ");
      ////Serial.println(b3, BIN);
      byte b4 = B00000000|data;
      ////Serial.print("b4 ");
      ////Serial.println(b4, BIN);
      ////Serial.println();
      digitalWrite(SLAVESELECT, LOW);
      delayMicroseconds(1);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b1);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b2);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b3);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b4);
      delayMicroseconds(1);
      digitalWrite(SLAVESELECT, HIGH);
      break;
    }
  case POWER:
    {
      byte b1 = B11110100; //padding at beginning of byte
      ////Serial.print("b1 ");
      ////Serial.println(b1, BIN);
      byte b2 = B00000000;
      ////Serial.print("b2 ");
      ////Serial.println(b2, BIN);
      byte b3 = B00000000;
      ////Serial.print("b2 ");
      ////Serial.println(b3, BIN);
      byte b4 = B11111111;
      ////Serial.print("b4 ");
      ////Serial.println(b4, BIN);
      ////Serial.println();
      digitalWrite(SLAVESELECT, LOW);
      delayMicroseconds(1);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b1);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b2);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b3);
      shiftOut(DATAOUT, SPICLK, MSBFIRST, b4);
      delayMicroseconds(1);
      digitalWrite(SLAVESELECT, HIGH);
      break;
    }
  }
}