   }
 
   switch (mode) {
-    case normalMode:
+    case NORMAL_MODE:
       handleNormalMode();
       break;
-    case initMode:
+    case INIT_MODE:
       handleInitMode();
       break;
   }

const byte numberOfBanks = 5;

// Modes
const byte normalMode = 0;
const byte initMode = 1;
const byte modeCount = 2;
byte mode = normalMode;

byte initBank = 0;


    update = true;
  }
  if (update) {
    Serial.print(F("MIDI offset "));
    Serial.println(initBank);
  }
}

void handleNormalMode(boolean forceUpdate) {
  changeBank();
  boolean update = false;
  for (byte i = 0; i < numberOfChannelButtons; i++) {
    if (channelButtons[i].isJustReleased()) {
      update = selectedSong != i;
      selectedSong = i;
    }
  }


  if (update || forceUpdate) {
    for (byte i = 0; i < numberOfChannelButtons; i++) {
      channelButtons[i].turnLedOff();
    }
    channelButtons[selectedSong].turnLedOn();
    char* song = songs[selectedSong + (bank * numberOfChannelButtons)];
    if (song) {
      lcd.clear();
      lcd.print(song);
    }
  }
}

void handleNormalMode() {
  handleNormalMode(false);
}

boolean changeMode() {
