HVSC-Daten als Ausgangspunkt der Analyse
Dieses Kapitel widmet sich dem Herzstück der methodischen Herausforderung dieser Arbeit: dem Datenmaterial der High Voltage SID Collection (HVSC) und seiner Transformation in ein für die computergestützte Analyse zugängliches Format. Zunächst wird der Zugang zum Datenmaterial, sowie der Prozess zur Einschränkung auf exemplarische Teilkorpora beschrieben.
Im zweiten Teil rückt die Datenkonvertierung in den Fokus. Da SID-Dateien, wie bereits dargelegt, aus ausführbarem Maschinencode und nicht aus symbolischen Musikdaten bestehen, ist eine effektive und qualitätsgesicherte Konvertierung in das MIDI-Format von entscheidender Bedeutung. Die Auswahl der Werkzeuge und Prozesse für die SID-zu-MIDI-Transformation wird in diesem Teil detailliert begründet mit dem Ziel die Grundlage für die nachfolgende Feature-Extraktion und stilometrische Analyse zu schaffen.
Beschaffung des Datenmaterials
Die Beschaffung des relevanten Datenmaterials stellt die Grundlage für die nachfolgende computergestützte Analyse dar und erfolgte systematisch aus den etablierten Quellen.
HVSC Version #80
Die primäre Datenquelle bildet die High Voltage SID Collection (HVSC). Für die Analyse wurde spezifisch die Version #80 herangezogen, welche zum Zeitpunkt der Beschaffung die aktuellste publizierte Version darstellte und von der offiziellen Website der HVSC heruntergeladen wurde. Diese umfangreiche Sammlung enthält insgesamt 58.150 SID-Dateien. Die Struktur der Sammlung ist wie in den Grundlagen dargelegt überwiegend nach dem Namen der Musikers oder dessen Aliassen organisiert, wobei die Dateien in entsprechenden Unterverzeichnissen abgelegt sind. Eine kleinere Anzahl von Stücken findet sich in den Verzeichnissen für Demos und Spiele. Die rohen HVSC-Daten, konkret der gesamte “C64Music”-Ordner, wurden zur Vorbereitung der weiteren Verarbeitung auf eine virtuelle Maschine (VM) kopiert.
DeepSID-Datenbank
Wie in den Grundlagen erwähnt enthält die HVSC neben den eigentlichen Musikdateien auch zusätzliche Metadaten, wobei die STIL (SID Tune Information List) als wichtige flache Datenbank hervorzuheben ist. Da die Formatierung in reinem Textformat mit einem hohen Maß an Vorverarbeitung einhergeht, wurde jedoch zur Verwendung dieser Metadaten, sowie für statistische Zwecke und Annotationen stattdessen die DeepSID-Datenbank als sekundäre Datenquelle gewählt. Die DeepSID-Datenbank nutzt die Informationen aus der STIL in aufbereiteter Form und stellt diese als Teil einer MySQL-Datenbank zur Verfügung. Diese kann als Teil des offiziellen GitHub-Repository von DeepSID heruntergeladen werden. Die Nutzung der DeepSID-Datenbank ermöglicht so einen deutlich einfacheren Zugang zu den Metadaten für die Definition und Filterung relevanter Subkorpora, was einen wichtigen Schritt im initialen Workflow der Datenerfassung und Korpusauswahl darstellte.
Korpusdefinition und -auswahl
Aufgrund der immensen Größe der HVSC erscheint eine systematische Analyse des gesamten Korpus im Rahmen dieser Masterarbeit nicht möglich. Eine klare Eingrenzung ist daher unerlässlich und bildet somit einen wichtigen Teil der Forschungsarbeit selbst. Für diese Arbeit wird die Analyse daher auf sorgfältig ausgewählte Teildatensätze bzw. Stichproben beschränkt. Die Auswahlkriterien für diese Teildatensätze orientieren sich an den Forschungsfragen.
Zwei Teilkorpora: Komponisten und Wettbewerb
Vorgesehen sind primär die Erstellung und Analyse folgender Teilkorpora: ein Komponisten-Korpus und ein Competition-Korpus. Der Ansatz zur Erstellung des Komponisten-Korpus sieht die Auswahl einer spezifischen Menge von Komponisten und damit einhergehender, gesamter Subordner der HVSC vor. Es werden also die gesamten Inhalte der entsprechenden HVSC-Ordner betrachtet und konvertiert. Diese Daten können dadurch später noch flexibel weiter eingegrenzt werden.
Der Komponisten-Korpus: Auswahl nach Profi-Status
Die Auswahl der Komponisten für den Komponisten-Korpus dieser Arbeit beruht auf den Kriterien PRO für den Profi-Status und notable als Referenz für den anerkanntem, musikhistorischen Einfluss der Komponisten gemäß der vorliegenden Annotationen in der DeepSID-Datenbank. Um eine entsprechende Ordnerliste fŭr die weitere Nutzung zu erhalten, wurden die Komponisten wie folgend in der DeepSID Datenbank gefiltert:
SELECT SUBSTRING(fullname, LOCATE('Collection/', fullname)+11) AS folder
FROM (
SELECT
composers.id AS id,
composers.fullname AS fullname
composers.name AS name
composers.notable AS notable
FROM composers
WHERE (composers.focus = 'PRO')
)
AS notableComposeQuery;
Die Abfrage hat die folgend dargestellte Liste wiedergegeben, die für die Erstellung des Komponisten-Korpus herangezogen wurde. Dabei entspricht die Liste den Erwartungen aufgrund der vorher erfolgten Recherchearbeiten.
MUSICIANS/H/Hubbard_Rob
MUSICIANS/G/Galway_Martin
MUSICIANS/W/Whittaker_David
MUSICIANS/F/Follin_Tim
MUSICIANS/D/Daglish_Ben
MUSICIANS/H/Huelsbeck_Chris
MUSICIANS/G/Gray_Fred
MUSICIANS/G/Gray_Matt
MUSICIANS/B/Brennan_Neil
MUSICIANS/K/Kawasaki_Ryo
MUSICIANS/K/Kleimeyer_Paul
MUSICIANS/L/Lowe_Al
MUSICIANS/W/Williams_Don
Der Competition-Korpus: The SID Compo III
Im Gegensatz zum Komponisten-Korpus soll die Erstellung des zweiten Teilkorpus auf einem spezifischen Kriterium, wie hier beispielsweise einer oder mehrerer bestimmter Competitions beruhen. Die Entscheidung zur Erstellung eines zweiten Korpus beruht darauf, das die Erstellung eines Korpus basierend auf spezifischen Dateien im Vergleich zur Ordnerverarbeitung ein modifiziertes Vorgehen erfordert und gleichzeitig den zweiten, vorstellbaren Anwendungsfall darstellt, in dem für einen solchen Korpus eine Liste spezifisch definierter SID Dateien erforderlich ist, die konvertiert werden sollen. Damit stellt die Erstellung des Competition-Korpus eine ideale und notwendige Ergänzung dar.
Die Wahl für einen Competition-Korpus beruht darauf, dass der Vorteil solcher Wettbewerbe darin liegt, dass sie oft relativ einheitliche Rahmenbedingungen für die Komponisten schaffen und zu einem definierten Zeitpunkt für alle stattfinden. Dies kann Vergleiche zwischen den Kompositionen verschiedener Komponisten potenziell aussagekräftiger machen, da Einflussfaktoren wie z.B. unterschiedliche technische Möglichkeiten eliminiert werden. Auswahlkriterien für die Auswahl einer exemplarischen Competition waren eine Eingrenzung auf Competitions vor 2005 und mit mindestens 30 SID Einträgen. Die zeitliche Eingrenzung erfolgte, um den Fokus auf die früheren Jahre zu belassen. Aus der gefilterten Liste mit 10 potenziellen Competitions wurde im weiteren Schritt zunächst “The SID Compo III” als einzige standortunabhängige Online-Competition aus dem Jahr 2003 für eine Betrachtung ausgewählt.
Transformation der SID-Dateien
Wie bereits an diversen Stellen dieser Arbeit erörtert, stellt die Transformation der nativen SID-Dateien in Maschinencode letztendlich die zentrale Herausforderung dieser Arbeit dar. Für eine computergestützte Analyse mittels etablierter Methoden und Bibliotheken ist jedoch die Überführung des musikalischen Inhalts in ein maschinenlesbares Format unerlässlich. Die angewandte Methodik wird im folgenden näher beschrieben.
Evaluation von SID-Konvertierungstools
Um der Herausforderung hinsichtlich der Transformation der SID-Dateien gerecht zu werden, war eine systematische Evaluation existierender Werkzeuge zur Konvertierung von SID-Dateien in analytisch nutzbare Formate unerlässlich. Ziel dieser Evaluation war es, ein Tool zu identifizieren, das eine möglichst präzise und detaillierte Überführung des musikalischen Inhalts in ein maschinenlesbares Format ermöglicht, idealerweise MIDI, aufgrund dessen Verbreitung und Kompatibilität mit etablierten Analysebibliotheken wie music21.
Die Untersuchung konzentrierte sich auf Tools, die eine Konvertierung von SID-Dateien in Formate wie MIDI, MusicXML oder ähnliche symbolische Repräsentationen erlauben. Dabei wurden verschiedene Aspekte bewertet, darunter die Genauigkeit der musikalischen Repräsentation (z.B. korrekte Tonhöhen, Rhythmen, Instrumentierung), die Detailtiefe der Ausgabe (z.B. separate Spuren für einzelne Stimmen, Berücksichtigung von Perkussion), die zugrunde liegende Technologie und Pipeline (z.B. Nutzung von Register-Dumps, Zwischenformate), die Programmiersprache und die Integrationsmöglichkeiten mit anderen Analysewerkzeugen, sowie der Wartungsstatus des Projekts.
Basierend auf dieser Evaluation wurde desidulate als das primäre Tool für die SID-zu-MIDI-Konvertierung ausgewählt. Die Stärken von desidulate, wie seine Python-Basis, die Nutzung von Pandas DataFrames als flexible Zwischenformate, die Integration mit music21 für die Musikanalyse und die Generierung detaillierter MIDI-Dateien mit separaten Spuren für jede Stimme und zusätzliche Spuren für Perkussion, sowie der aktive Wartungsstatus, sprachen maßgeblich für seine Auswahl als Grundlage für die weitere Methodik. Obwohl zum Zeitpunkt der Implementierung eine Limitation hinsichtlich der Abhängigkeit von VICE Register-Dumps bestand, die einen angepassten Ansatz erforderte, lieferte die Evaluation ausreichende Gründe, desidulate als das vielversprechendste Werkzeug für die Zwecke dieser Arbeit zu identifizieren.
Eigener JSIDPlay2 x desidulate Ansatz
Wie im letzten Ansatz bereits angedeutet, wies desidulate zum Zeitpunkt der Implementierung eine kritische Limitation auf: die Abhängigkeit von VICE Register-Dumps. Deren Handhabung bezüglich der Auswahl von Sub-Songs und der präzisen Definition der Songlänge in Zyklen statt in Sekunden erwies sich als umständlich. Um diese Einschränkung zu überwinden und eine effizientere Batch-Verarbeitung der gesamten HVSC zu ermöglichen, wurde ein angepasster Ansatz entwickelt, der im Folgenden detailliert beschrieben wird. Dieser angepasste Ansatz gliedert sich im Wesentlichen in zwei Hauptschritte: Datenextraktion und Vorverarbeitung mittels JSIDPlay2 und Integration der vorverarbeiteten Daten in die desidulate-Pipeline.
Schritt 1: Datenextraktion und Vorverarbeitung mit JSIDPlay2
Anstatt VICE Register-Dumps direkt zu verwenden, wird JSIDPlay2 als primäres Tool für die Extraktion der Register-Writes aus den SID-Dateien eingesetzt. JSIDPlay2 wurde aufgrund seiner Fähigkeit ausgewählt, die gesamte HVSC-Sammlung im Batch-Modus zu verarbeiten und dabei eine integrierte Erkennung für Songlängen und Submelodien zu bieten.
Der ursprüngliche Plan, die Register-Writes in CSV-Dateien zu konvertieren, wurde aufgrund des enormen Speicherplatzbedarfs verworfen. Stattdessen wurde JSIDPlay2 so angepasst, dass die Ausgabe in einem effizienteren, spaltenorientierten Format wie Parquet erfolgt. Parquet ermöglicht eine deutlich höhere Komprimierungsrate und ist somit besser für große Datenmengen geeignet (z.B. Reduktion des Speicherbedarfs um ca. 40% im Vergleich zu CSV für Textdateien).
JSIDPlay2 erkennt automatisch die verschiedenen Sub-Songs innerhalb einer SID-Datei und deren jeweilige Länge. Für jeden Sub-Song wird eine eigene Parquet-Datei generiert und am selben Speicherort wie die ursprüngliche SID-Datei in der HVSC-Struktur abgelegt. Dies bewahrt die ursprüngliche Ordnerstruktur der HVSC und erleichtert die spätere Zuordnung.
Schritt 2: Integration in die desidulate-Pipeline
Nachdem die Register-Writes in einem optimierten Format (Parquet) und mit präzisen Metadaten zu Sub-Songs und Songlängen vorliegen, werden diese Daten in die Verarbeitungspipeline von desidulate integriert.
Da desidulate ursprünglich auf VICE Register-Dumps zugeschnitten ist, war eine Anpassung erforderlich, um die Parquet-Dateien als Input für die Funktion reg2state (oder eine analoge Funktion) in desidulate zu ermöglichen. Diese Funktion ist dafür zuständig, die Register-Dumps in ein Pandas DataFrame umzuwandeln, das als Zwischenformat in desidulate dient.
Ein Skript sid2midi wurde entwickelt, um reg2ssf (Konvertierung der Register-Daten in SID Sound Fragments) und ssf2midi (Konvertierung der SSFs in MIDI-Dateien) für alle oder einen Teil der durch JSIDPlay2 generierten Parquet-Dateien im Batch-Modus auszuführen. Dies automatisiert den gesamten Konvertierungsprozess von der SID-Datei bis zur finalen MIDI-Repräsentation.
Dieser angepasste Ansatz ermöglicht eine effiziente und präzise Konvertierung der umfangreichen HVSC in ein für die computergestützte Analyse nutzbares MIDI-Format, indem die Stärken von JSIDPlay2 im Bereich der Batch-Verarbeitung und Metadaten-Extraktion mit den detaillierten Konvertierungsfunktionen von desidulate kombiniert werden.