Als wir uns beim letzten Mal mit dem „Covox Speech Thing“ beschäftigt haben, ist mir eine Idee gekommen. Ich spiele zwar sehr gerne alte DOS-Games, aber einige von ihnen starte ich meist nur, um mir deren Soundtrack anzuhören. Ich weiß – voll langweilig! 😛 Trotzdem stellt sich mir die Frage, ob man sich nicht auch irgendwie die ikonischen Videospielmelodien anhören kann, ohne das jeweilige Spiel zu starten. Die gute Nachricht: Prinzipiell ja, aber leider ist es nicht so trivial, wie man sich das vielleicht vorstellt. Über die Art und Weise, welche Möglichkeiten man damals hatte, etwas Sound aus seinem PC zu kitzeln, könnte man ganze Abhandlungen schreiben. Es existierte ein riesiger Dschungel von Geräten, Herstellern und Treibern und entsprechend gab es auch zig verschiedene Dateiformate und Standards.

Ich weiß, das ist ein trockenes Thema, aber ich werde versuchen, nicht zu sehr ins Detail zu gehen und euch nur die minimale, zum Verständnis benötigte, Theorie aufzutischen. Stattdessen wollen wir einen etwas praktischeren Ansatz wählen und uns ansehen, welche Möglichkeiten wir zur Musikwiedergabe auf dem Olivetti-PC aus Artikel 290 haben. Ich hätte nicht gedacht, dass wir uns nochmal mit der Kiste beschäftigen müssen, aber da der Rechner vom letzten Beitrag sowieso noch in greifbarer Nähe herum steht, ist er ein guter, bzw. geeigneter Kandidat.

Zur Erinnerung: Was die Ausgabe von Sound angeht, stehen uns bei dem 286er neben dem Systemlautsprecher (PC Speaker) mittlerweile auch ein Covox-Adapter über den Druckerport (LPT1) sowie eine ISA-Karte mit MPU401-Schnittstelle zum Anschluss des Roland MT-32-Synthesizers zur Verfügung.
Not so fun Fact: So richtig repräsentativ (Darstellung der verschiedenen Möglichkeiten der Musikwiedergabe unter MS-DOS) ist der Olivetti-PC leider nicht, denn die vermeintlich populärsten Technologien (eine Soundwiedergabe über eine AdLib- oder Sound Blaster Karte) besitzt der Rechner nicht. Trotzdem möchte ich anhand dieses PCs den Blick auf ein paar Audiokomponenten werfen – gerade weil er so besonders ist. Und unabhängig davon: Mein Blog, meine Regeln! 😛

Fangen wir mit der vielleicht einfachsten Art an, akustische Signale auszugeben. Darf ich vorstellen? Der PC Speaker. Seine Ansteuerungslogik sieht nur zwei Zustände vor: An und aus. Der Lautsprecher selbst besteht aus einem Magneten, einer Schwingspule und einer Membran. Wenn elektrischer Strom durch die Schwingspule fließt, erzeugt er ein Magnetfeld, das die Membran zum Schwingen bringt. Diese Schwingungen erzeugen Schallwellen. Durch schnelles Ändern des Stromimpulses können unterschiedliche Töne erzeugt werden. An und für sich lassen sich so nur einfache akustische Signale, wie z.B. ein ein konstanter Piepton ausgeben, aber kreative Entwickler haben den PC Speaker auch zur Ausgabe von kleinen Sprachschnipseln oder digitalisierten Audioaufnahmen verwendet.

Halt, genug Theorie. Das droht schon wieder langweilig zu werden! 😛 In der Praxis können wir mit Programmen wie z.B. „MIDIplay“ ein paar für den PC-Lautsprecher optimierte Audiodateien (welche im MIDI-Format „0“ sein müssen) abspielen. Ach, herrlich. Es geht doch nichts über ein paar laute, schrille Töne! 😛 Schon klar, so ganz ohne Musik könnt ihr euch das vermutlich nicht gut vorstellen, aber ihr könnt mir glauben, wenn ich sage, dass sich das alles sehr primitiv anhört! 😀
Fun Fact: Eine weitere Möglichkeit, Musik über den PC Speaker abzuspielen, haben wir ja bereits in Artikel 325 mit dem Album „System Beeps“ gefunden! 😉

Etwas schade ist, dass sich kaum geeignete MIDI-Dateien finden lassen, welche über den Systemlautsprecher abgespielt werden können. Gerade was die Melodien von Videospielen angeht, sieht es echt dünn aus. Das wundert nicht, denn wie bereits angesprochen, herrschte zu DOS-Zeiten ein wahrer Formatwirrwarr und so gibt es beispielsweise auch Spiele, welche für die Hintergrundmusik „XMI-Dateien“ verwendeten. Dafür wird ein anderer Player wie z.B. „PX Player“ benötigt. Cool, dass das funktioniert, aber leider konnte ich auch hier nicht viele entsprechende Dateien online finden. Das liegt wohl daran, dass einerseits die Musikdateien früher häufig in anderen Dateien versteckt (verschlüsselt oder komprimiert) wurden und andererseits, dass MIDI-Dateien heutzutage keine Sau mehr interessieren! 😀
Not so fun Fact: Tatsächlich gäbe es noch zahlreiche weitere Formate wie z.B. „.PCM“ oder „.WAV“, welche auch bei einigen Spielen zum Einsatz kamen. Seht es mir nach, das ich an dieser Stelle nicht weiter forsche. Einerseits sind Soundtracks in diesen Formaten sehr schwer zu finden und wenn ich ehrlich bin, würde ich mich lieber mit „besseren“ Möglichkeiten als dem PC Speaker beschäftigen! xD

Schluss mit dem Gepiepse, kommen wir lieber schnell zu etwas Anderem. Wie wäre es mit dem Covox-Adapter, mit den wir bereits in Artikel 342 herumgespielt haben?

Ich hatte ich ja schon angedeutet, dass der DIY-Druckerport-Adapter gerade in der Demoszene sehr populär war. Enthusiasten versuchten alles aus der recht limitieren Hardware der Zeit herauszuquetschen und entsprechend entstanden einige coole Programme, welche neben bunten Grafiken auch eine Soundausgabe über ein Covox-Modul unterstützen. Ich habe etwas suchen müssen, um Demos zu finden, die auf einem 286er laufen, bin aber mit „Crystal Dream“ dann doch noch fündig geworden.

Meist wurden spektakuläre Bilder oder 3D-Effekte von sich drehenden Formen gezeigt. 3D steckte zu der Zeit noch in den Kinderschuhen und entsprechend beeindruckend war es, durch clevere Programmiertechniken solche Grafiken auf schwachbrüstiger Hardware zu sehen. Auch aus den beschränkten akustischen Möglichkeiten wurde das Maximum herausgeholt. So hört sich z.B. die Demo „Hysteric Overload“ selbst ohne Sound Blaster nur über den Covox-Adapter richtig gut an. Wirklich krass, was für ein audiovisuelles Erlebnis auf einer 12 Megahertz starken, bzw. schwachen CPU möglich ist. Ich kann jedem empfehlen, sich mal ein paar dieser alten Demos herunterzuladen und – wenn keine originale Hardware verfügbar ist – z.B. in einer DOSBox auszuprobieren! 🙂
Fun Fact: Manche der grafischen Darstellungen sehen fast ein bisschen so aus, wie die Bildschirmschoner von frühen Windows-Systemen – nur eben mit dem Unterschied, dass sie ein paar Jahre zuvor unter MS-DOS und auf wesentlich schwächerer Hardware laufen!

Neben den Demos war auch das Erstellen von sog. „MOD-Dateien“ zu der Zeit richtig populär. Mit sog. „Trackern“ (Musik-Sequenzer-Programme) erstellten gerade im Umfeld des Commodore Amiga zahlreiche Hobby-Musiker Audiodateien für Demos oder Videospiele. MOD-Dateien gibt es in zig unterschiedlichen Formaten, abhängig davon, mit welcher Software sie erstellt wurden. Das populärste Dateiformat ist vermutlich „.mod“, welches von der Software Protracker stammt.
Fun Fact: Im Vergleich zu MIDI-Dateien beinhalten MOD-Dateien neben den Steuerinformationen (also so Dingen wie z.B. Noten, Anschlagsstärke, Tempo, etc.) auch Samples (kleine, vorab aufgenommene Musikstücke). Alle zur Klangerzeugung benötigten Informationen befinden sich also innerhalb der MOD. Bei MIDI-Dateien sind lediglich Steuerinformationen in einer Datei enthalten. Die eigentlichen, zur Klangerzeugung benötigten Instrumente werden dann erst durch die Wiedergabe auf einem Synthesizer (welcher die Samples der Instrumente enthält) hinzugefügt.

Und wieder muss ich die Theoriebremse anziehen – schnell zurück zur Praxis! 😉 Es gibt zahlreiche Programme, mit denen sich MOD-Dateien (Dateiendung .mod) über den Covox-Stecker abspielen lassen. Eine davon ist „Modplay“.

An und für sich ist das ein tolles Stück Software, aber in der Praxis hatte ich gelegentliche Abstürze. Ich vermute, dass der Olivetti-PC einfach etwas zu schwach für das Programm ist. Damit Modplay stabiler läuft, kann man es mit dem Parameter „-a-i“ starten. Dadurch wird die Qualität der Audiowiedergabe etwas reduziert, dafür hängt sich der Rechner nicht so oft auf. Eine gute Alternative ist „GLX“ (Galaxy Music Player). Das Ding unterstützt neben dem „.mod“-Format auch andere Dateiformate wie z.B. „S3C“ (ScreamTracker 3) und „XM“ (FastTracker 2).

Damit der Covox-Adapter erkannt wird und auf dem schwachen 286er läuft, muss das Programm mit den Parametern „/oc1“ und „/m16“ gestartet werden. Gerade mit den neueren Formaten (.XM) hat der Galaxy Music Player aber leider auch ein paar Probleme und stürzt gerne mal ab oder hängt sich auf. Eigentlich schade, weil mir die Optik des Player echt gut gefällt! 🙂

Die vermutlich beste Lösung zum Abspielen von MOD-Dateien ist „Mod Master XT“. Das Programm wurde erst vor einiger Zeit entwickelt und zielt auf leistungsschwache PCs (z.B. mit 8088-CPU) ab. Ist es nicht abgefahren, dass sich selbst heutzutage noch Leute damit beschäftigen, wie man Musikdateien auf uralten PC-Systemen über das – zugegeben etwas exotische – Covox Speech Thing abspielen lassen kann? Wenn man seine Freizeit in so Zeug investiert, muss man schon ein echt krasser Nerd sein. Anwesende natürlich ausgeschlossen! 😛
Fun Fact: Theoretisch gäbe es sogar die Möglichkeit, mit dem Covox-Teil MP3- und WAV-Dateien abspielen zu lassen. Ich vermute mal, dass diese dafür in einem speziellen Format sein müssen und irgendwie habe ich so gar keine Lust, eine MP3-Datei in kleine Schnipsel zu zerhacken, sodass sie auf eine Diskette passen. Man muss wissen, wann genug ist! xD

Das mit den MOD-Dateien hört sich doch nach einer guten Lösung an, oder? Leider nicht ganz. Da der Covox-Adapter nur von wenigen PC-Spielen unterstützt wurde, lassen sich leider auch hier kaum originale Musikdateien von Spielen finden. Sehr schade, weil das war ja das eigentlich Ziel des heutigen Beitrags oder? 😛 Vielleicht wäre es besser, wenn wir das Covox-Ding nun beiseite legen und uns abschließend noch mit dem vielleicht imposantesten Feature des italienischen Mini-PCs auseinandersetzen. Der Audioausgabe über den Roland MT-32-Synthesizer! 🙂

Dass sich die über den Synthesizer ausgegebenen Videospielsoundtracks richtig gut anhören, muss ich vermutlich seit den Artikeln 295, 296 und 297 nicht mehr erklären. Vielleicht finden wir ja eine Möglichkeit, die Musikstücke auch ohne das Starten der jeweiligen Spiele zu hören? Zum Abspielen von MIDIs über die MPU401-Schnittstelle gibt es unterschiedliche Möglichkeiten. Möchte man einfach nur eine Datei abspielen, bieten sich Konsolenprogramme wie z.B. „PlayMID“ (siehe Artikel 294) oder der bereits zur Ausgabe über den PC Speaker verwendete „PX Player“ an. Damit lässt sich so ziemlich jede MIDI-Datei über den Synthesizer abspielen. Schon ganz cool, doch leider hören sich die Musikstücke trotzdem nicht so an, wie sie in den Videospielen klingen. Woran liegt das?

Der Roland MT-32 enthält eine Bibliothek aus 128 Synthesizer- und 30 Rhythmusklängen, welche auf acht melodischen und einem Rhythmuskanal abgespielt werden können. Theoretisch müsste sich also jede MIDI-Datei immer gleich anhören. So die Theorie, denn in der Praxis verwendeten die Programmierer von Spielen zur Audioausgabe auf dem MT-32 spezielle „Patch Banks“, welche vor dem Abspielen einer MIDI-Datei auf das Gerät übertragen wurden und einige Instrumente temporär im Arbeitsspeicher des Synthesizers veränderten. Dadurch entstanden ganz eigene Klänge – je nach gestartetem Spiel und verwendeter Patch Bank.

Sofern Entwickler von dieser Option Gebrauch gemacht haben, bedeutet das für uns, dass wir neben den eigentlichen MIDI-Dateien der Videospiele auch noch die dazugehörigen Patch Banks im „SysEx“-Format (Dateiendung .SYX) benötigen. Die gute Nachricht: Zumindest lassen sich die Soundtracks von ein paar Sierra-Spielen samt Patch Bank problemlos online finden. Hier haben wir z.B. ein paar MIDI-Dateien vom Spiel „Leisure Suit Larry 3“:

Dann brauchen wir noch ein Tool, welches diese SysEx-Informationen lesen und vorab an den MT-32 übertragen kann. Hier bietet sich z.B. die Software „Megamid“ an. Die funktioniert prinzipiell gut, aber die Parametrisierung über die Kommandozeile ist gewöhnungsbedürftig. So werden beispielsweise die SYX-Files im Hauptverzeichnis der Software benötigt.

Wer eine grafische Wiedergabe bevorzugt, kann auch zu „DOSMid“ greifen. Leider läuft das Programm – zumindest auf dem Olivetti-PC – etwas langsam und auch der Aufruf des Tools (dosmid /mpu /syx=lsl3.syx /lsl3_1.mid) ist meiner Meinung nach komplizierter als er sein müsste.

Möchte man mehrere MIDI-Dateien nacheinander abspielen, vorab die SysEx-Steueranweisungen übertragen und eine grafische Oberfläche haben, kommt man an „GSPLAY“ nicht vorbei. Die Software lässt sich per INI-Datei umfangreich für das jeweilige Szenario (in unserem Fall die Übertragung von Daten an einen per MPU401 angeschlossenen Roland MT-32) konfigurieren.

Entsprechend einfach gestaltet sich dann der Aufruf des Programms (gsplay *.syx *.mid). Ganz intuitiv per Pfeiltasten lassen sich die einzelnen Stücke weiter schalten. So lobe ich mir das! 🙂

Also Ende gut, alles gut? Nicht ganz. Nur um die Verwirrung perfekt zu machen, gibt es zu allem Überfluss auch noch spezielle, für den MT-32 vorbereitete MIDI-Dateien, welche die SysEx-Informationen bereits innerhalb der MIDI-Datei (in den ersten paar Takten) inkludiert haben. Das ist der Best Case, denn in dem Fall können die Musikstücke einfach direkt samt Steueranweisungen an den Synthesizer geschickt werden, ohne dass vorab manuell eine SYX-Datei zur Einstellung der Instrumente übertragen werden muss.

Das ist aber leider eher selten der Fall. Meist findet man nur lose MIDI-Dateien im Internet herumfliegen. Man kann schon froh sein, wenn überhaupt eine für den MT-32 angepasste Patch Bank Datei mit dabei ist. Immerhin spielt der GSPLAYer auch MIDIs mit inkludierten SysEx-Parametern problemlos ab und überträgt die Steuerinformationen automatisch. Echt geil! 🙂

Gott, ist das alles kompliziert. Wollten wir nicht eigentlich nur etwas Videospielmusik hören? 🙁 Rückblickend betrachtet hatte ich mir irgendwie erhofft, dass das alles etwas einfacher geht. Aber hey – wann war das jemals bei einem unserer Projekte der Fall? 😛

So interessant dieser Ausflug in die akustischen Möglichkeiten von MS-DOS auch war, gibt es noch ein Problem zu klären. Mittlerweile habe ich einen ganzen Ordner mit Soundtracks gesammelt. Die müssten wir nur jetzt noch irgendwie auf den Olivetti-PC bringen aber wie? 22,6 Megabyte sind immerhin mindestens 17 Disketten! Nein, danke! 😀

Ich habe da schon eine Idee… Beim nächsten Mal, in Ordnung? 😉
In diesem Sinne – bis die Tage, ciao!