       case CONFIGURATION_FINISHED:
         handleConfigurationFinished();
         break;
-    }
-  }
+      case CURRENT_PART:
+        handleCurrentPart(decoded + 4);
+        break;
+      case NEXT_PART:
+        handleNextPart(decoded + 4);
+        break;
+    }
+  }
+}
+
+void handleCurrentPart(char* message) {
+  if (mode != SONG_MODE) {
+    return;
+  }
+  lcd.clear();
+  lcd.setCursor(0, 0);
+  lcd.print(message);
+}
+
+void clearLine(byte line) {
+  lcd.setCursor(0, line);
+  lcd.print(F("                "));
+}
+
+void handleNextPart(char* message) {
+  if (mode != SONG_MODE) {
+    return;
+  }
+
+  clearLine(1);
+  lcd.setCursor(0, 1);
+  lcd.print(message);
 }
 
 void handleConfigurationStart() {

  if (realtimebyte == STOP) {
    digitalWrite(bpmLed, LOW);
    playing = false;
  }
}



const byte SONG_CONFIGURATION = 0;
const byte CONFIGURATION_START = 1;
const byte CONFIGURATION_FINISHED = 2;
const byte CURRENT_PART = 3;
const byte NEXT_PART = 4;

const byte SONG_OFFSET = 10;

