Während der letzten Monate bin ich nach und nach alle im C64-Wiki verzeichneten Spiele durchgegangen und habe mir angeschaut, ob sich aus den darin vorkommenden Melodien auf einfache Weise die zugehörigen Musiknoten rekonstruieren lassen.
Falls ja, so habe ich im betreffenden Spiele-Artikel unter "Sonstiges" einen neuen Unterabschnitt "Theme" eingefügt, wo die Musiknoten nun zu finden sind - sowohl direkt als JPG, als auch über zwei Links als PDF und als Textdatei in ABC-Musiknotation.
Die Zuordnung der entsprechenden Dokumente zur Kategorie "Noten" erleichtert zudem die gezielte Suche nach einzelnen Musikstücken.
Insgesamt dabei herausgekommen sind 433 Melodien aus 172 Spielen - manche davon kurz und schlicht, viele aber dreistimmig und umfangreich genug, um mehrere Notenblätter in der PDF-Darstellung zu füllen.
Damit aber nun nicht jeder, der sich für diese Melodien aus den C64-Spielen interessiert, sich beim Heraussuchen und Downloaden der einzelnen Dateien aus dem C64-Wiki die Finger wundklickt, habe ich alle Musikdateien im ABC-Musikformat
auch in einem angehängten ZIP-Archiv forum64.de/wcf/index.php?attachment/274785/ zusammengepackt.
Die Melodien in ABC-Notation lassen sich mit Hilfe von Tools wie "easyabc", "abcm2ps" und "abc2midi" auf dem Bildschirm anzeigen, nach PDF und MIDI wandeln oder abspielen; wer lieber mit "MuseScore" arbeitet, kann sie dort mit Hilfe des "ABC Import"-PlugIns einlesen.
Anschließend steht einer kreativen Verwendung der Musikstücke nichts mehr im Wege - viel Spaß damit!
Noch ein bisschen Statistik...
- Die meisten einzelnen Musikstücke finden sich in den Spielen "Summer Games" (zwei Melodien im Intro plus 18 Nationalhymnen), "Matchboxes" und "Lazy Jones" (jeweils 18 kurze Sequenzen)
- Die mit Abstand umfangreichste Reihe von Musikstücken bietet das Spiel "Ghettoblaster" (13 Melodien, 17 Notenblätter als PDF), gefolgt von "Slap Fight" (5 Melodien, 9 Seiten) und "Friday the 13th" (7 Melodien, 8 Seiten)
- Die längsten einzelnen Melodien finden sich in den Spielen "Loco", "Jet Set Willy" und "Frogger".
... und ein paar technische Details:
- Ausgangspunkt für das Rekonstruieren der Musiknoten ist ein von mir selbst geschriebener C64-Emulator, den man mit ein bisschen Mühe dazu bringen kann, alle Schreibzugriffe auf den emulierten Soundchip (SID) über die serielle Schnittstelle zu melden.
- Diese Schreibzugriffe - vor allem auf die Frequenzregister $D400/01, $D407/08 und $D40E/0F - werden dann in eine ASCII-Liste von POKEs (jeweils mit mikrosekunden-genauem Timestamp, Speicheradresse und geschriebenem Wert) umgewandelt.
- Ein AWK-Skript errechnet hieraus schließlich die zugehörigen Musiknoten und erzeugt eine entsprechende Datei in ABC-Musiknotation.
Ein bisschen manuelle Vor- und Nacharbeit ist dabei immer auch noch nötig:
- Welches Byte des Frequenzparameters wird jeweils zuerst geschrieben (High- oder Low-Byte), das heißt wann ist die Frequenz gültig?
- Welche CPU-Frequenz liegt den Frequenzparametern zugrunde - 985248 Hz (PAL), 1022727 Hz (NTSC), 1000000 Hz (Werte aus dem Datenblatt des SID 6581, Seite 10) oder noch etwas anderes?
Wie ungenau sind die Parameter, und wie stark muss auf den nächsten Halbton gerundet werden? So ändern einige Spiele (zum Beispiel "Wavy Navy") nur das High-Byte des Frequenzparameters und setzen das Low-Byte immer auf 0.
- Wie viele Mikrosekunden soll eine Viertelnote lang sein? Wie ungenau ist das Timing, und wie stark sollen Notenwerte gerundet werden?
Und: Welche Tonart, welche Taktart hat das Stück?
- ... und schließlich Aufteilen auf Notenzeilen, Einfügen von Taktstrichen, Erkennen von Wiederholungen, Gruppieren von Achteln und Sechzehnteln.