all_to_smf ist ein Python-Skript zur Konvertierung von („Voyetra Sequencer Pro“) .all-Dateien in das .mid Standard MIDI File Format (SMF).
Der Parser ist inzwischen eine Python-Version des entsprechenden C#-Codes von Andre Lewis’ AllToMidi.
Die Sound Blaster Soundkarte von 1989 hatte einen Gameport. Separat zu erwerben war das „Sound Blaster MIDI Kit“, was einen MIDI-Kabel-Adapter für den Gameport enthielt, sowie eine Diskette mit dem „Voyetra Sequencer Pro“ Software-Sequencer für MS-DOS.
Bis Ende der 1990er erstellte ich damit Musikprojekte, im .all-Format. Die Jahre begannen schließlich vorbeizufliegen. Betriebssysteme und Speichermedien kamen und gingen. Aus irgendeinem Grund überstanden die .all-Dateien jeden dieser Wechsel. Mit der Zeit wuchs der Wunsch, wiederzuentdecken, was in diesen Dateien verborgen ist.
Ich hatte stets angenommen, dass es sich bei .all um Voyetra’s eigenes Format handelte. Websuchen erbrachten nichts Aufschlussreiches. Versuche, die Daten mittels „Voyetra Sequencer Pro“ von Archive-Seiten und unter DOSBox laufend zu extrahieren, scheiterten daran, dass diese Versionen .all-Dateien nicht lesen/schreiben konnten, sondern lediglich die Formate .sng, .mid und .rol.
Parallel mehrten sich ab Ende 2025 die Berichte, dass es mit LLMs gelang, unbekannte Datenformate zu entschlüsseln, und sogar alte Software/Computerspiele auf Betriebssysteme und Programmiersprachen/Frameworks zu portieren, ohne dass deren Sourcecode vorlag.
Ich fragte ChatGPT, ob es anhand von Beispiel-Dateien in der Lage wäre, das Format zu erraten und ein Python-Skript zur Konvertierung zu schreiben. Es erkannte bald die Ähnlichkeit zu SMF. Das von ihm erzeugte Skript funktionierte größtenteils, war aber nicht ohne Fehler. Die Tracks waren manchmal gedoppelt oder zusammengeworfen.
Irgendwann wurde klar, dass das .all-Format offenbar auch von damaligen Versionen von Cubase verwendet wurde. Und somit fand sich schließlich auch das Projekt AllToMidi. Ich war bereit, den bisherigen Ansatz zu verwerfen und stattdessen AllToMidi zu verwenden. Letztlich ging es nur darum, die Daten einmalig zu extrahieren. Das Problem war jedoch, dass AllToMidi ein in C# geschriebenes Windows-GUI-Programm ist. Das ist auf einem Mac nicht unproblematisch. Wine ist in Homebrew nicht mehr unterstützt. Mit Mono gelang es zwar, das Projekt zu kompilieren, aber es konnte nicht ausgeführt werden. Den Weg des geringsten Widerstands beschreitend bat ich ChatGPT den Parser aus AllToMidi zu extrahieren und nach Python zu portieren. Ein Coding Agent mit einem lokalen LLM ersetze in dem ursprünglichen Python-Skript damit den bisherigen Parser.
Nach nahezu 30 Jahren ist das Rätsel gelöst und die Daten sind befreit.
Ohne LLMs wäre das kaum möglich gewesen. Die Zeit, das Format selbst zu entschlüsseln, hätte ich mir vermutlich nie genommen, da der Inhalt der Dateien nicht wichtig genug war.
Für die Analyse/Befreiung hat es noch nicht mal eines Coding Agents bedurft. Bereits die kostenlose Variante von ChatGPT war hierbei sehr hilfreich und schnell. Google Gemini hingegen hat bei ähnlichen Anfragen u.A. ein Python-Paket halluziniert, was es nie gegeben hat.
Ausschließlich öffentliche Informationen und Code wurden verwendet.
Da das Reverse Engineering durch LLMs bzw. Andre Lewis erfolgt sind, beanspruche ich keinerlei Urheberrecht. Das Projekt existiert alleine in der Hoffnung, hilfreich zu sein.
„Sound Blaster“, „MIDI“, „Voyetra“, „Voyetra Sequencer Pro“, „MS-DOS“, „DOSBox“, „ChatGPT“, „Cubase“, „.NET“, „Google“, „Google Gemini“ sind Trademarks der entsprechenden Eigentümer.


