     update = true;
   }
   if (update) {
-    Serial.print("MIDI offset ");
+    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() {
-  changeBank();
+  handleNormalMode(false);
 }
 
 boolean changeMode() {

//#define DEBUG_BUTTONS true
//#define SINGLE_LED_TEST true
//#define LCD_TEST true

byte counter;
const byte CLOCK = 248;

const byte numberOfBanks = 5;

// Modes
const byte UNCONFIGURED = 0;
const byte NORMAL_MODE = 1;
const byte INIT_MODE = 2;
const byte modeCount = 3;
byte mode = UNCONFIGURED;

byte initBank = 0;

