Ataquarium - Es tönt

Der ST und Musik - das war schon von Anfang an eine zwiespältige Angelegenheit. Da hatte Atari in weiser Voraussicht eine MIDI-Schnittstelle integriert, aber dafür mit dem Yamaha PSG (oder baugleichen Modellen) einen Soundchip eingebaut, der auch im CPC, der Vectrex oder MSX-Computern zu finden ist. Nostalgie-Freunde der Vectrex freuen sich allerdings über diese Verwandtschaft, denn mit einem kleinen Tool konvertieren sie die ST-Sounds, um sie auf der Vectrex abspielen zu können.

Mit dem STE und TT wurde schließlich der DMA-Sound eingeführt, sozusagen als "Trostpflaster" für den eingestampften AMI-Chip. Mit dem DMA-Sound können Samples sehr einfach in hoher Qualität abgespielt werden, ohne das dabei viel Rechenzeit verbraten wird. Bei ST-Spielen waren auch vorher schon Samples benutzt worden, aber da jedes Prozent Rechenzeit, das für Sample-Playback genutzt wird, dem Spiel fehlt, wurden Samples häufiger in Intros oder beim Ableben der Spielfigur verwendet. Die Weiterentwicklung mit dem STE kam in diesem Punkt also zu spät.

Da leistet der Falcon mit seinem DSP und dem verbesserten Soundsystem erheblich mehr. Besonders gerne wird letzteres für das Abspielen hochwertiger MOD-Dateien verwendet und dank des DSP ist es auch kein Problem, mehr als acht Kanäle zu erzeugen. Diese Sound-Vielfalt erfordert allerdings auch größere Programmierkenntnisse.

Die Sound-Fähigkeiten des Milan sind hingegen von Haus aus bescheidener. Da der Einbau des alten PSG zu hohe Kosten verursacht hätte, wurde auf einen PC-Piepser zugegriffen, um wenigstens den Tastaturklick ohne Soundkarte zu hören. Diese Beschränkung bedeutet aber nicht, das mit dem Milan kein Sound möglich wäre.

Sound-Krösus könnte das ACP (Atari Coldfire Project) werden. Die Deesse-Karte ist von Anfang an im Rechner eingebaut. Auf der Karte kommt ein DSP zum Einsatz, der sechs mal schneller ist als der im Falcon. Die Samplingraten gehen hoch bis zu 96 kHz bei 24 Bit, was höher ist als CD-Qualität (44,1 kHz/16 Bit), aber im Hinblick auf kommende Audio-Standards (Super Audio CD, DVD-Audio) ein "muß" darstellt. Die Standard-Samplefrequenzen können per Software eingestellt werden. Damit ist dann auch das schnelle Encoden von MP3-Dateien kein Problem mehr, von den Sound-Fähigkeiten einmal ganz abgesehen.

Emulatoren wie z.B. MagiCPC und MagiCMac verwenden Zusatzprogramme, um die Sound-Routinen aus dem Falcon-Betriebssystem nachzurüsten. Damit können die Emulatoren zwar Samples in der gleichen Qualität aufnehmen bzw. abspielen, aber der DSP kann natürlich nicht so leicht nachgeahmt werden.

Zu guter letzt gibt es noch die verschiedensten Soundkarten, die bekanntesten dürften die StarTrack und der MilanBlaster sein. Selbst für den ST gab es einige Soundmodule, die aber nie besonders große Verbreitung gefunden haben.

Sound-Playback

Die Vielfalt verdeutlicht, das es kaum möglich ist, "mal eben" einen Sample abzuspielen. Sofern nicht gerade ein Falcon-exklusives Produkt geplant ist, soll das fertige Programm vielleicht auch auf anderen Rechnern laufen. Anstatt eigenen Soundausgabe-Routinen einzusetzen, soll hier beschrieben werden, wie die aktuellen Sound-Player dazu genutzt werden können, nahezu alle Sound-Formate abzuspielen. Vorweg sei gesagt, das dies nicht der Königsweg für alle Programme ist. Ein Spiel, das gleichzeitig Hintergrundmusik und Soundeffekte wiedergeben muß, wird mit einem externen Soundplayer nicht unbedingt glücklich werden.

GEMJing

GEMJing [1] ist ein Sample-Player, der sich automatisch an die verwendete Hardware anpaßt und jeweils mit optimaler Qualität die Samples abspielt. Unterstützt werden Samples im WAV, HSN, AVR, SMP und - mit Einschränkungen - SND/AU Samples. WAV-Samples dürfen nicht komprimiert sein.

Der für externe Programme üblichste Weg, um Samples über GEMJing abzuspielen, ist VA_Start. Neben dem Dateinamen des Samples können Parameter übergeben werden:

-dx: Pause zwischen den Wiederholungen einlegen. "x" muß ganzzahlig sein und kann zwischen 0 und 32000 betragen. Bei einer Pause von 0 folgen die Wiederholungen direkt aufeinander, was bei einem geschickt gewähltem Sample den Eindruck von Musik erzeugen kann.

-mx: Aus dem Speicher spielen. Das Programm muß davor die Samples in einen globalen Speicherbereich geladen haben. Für das "x" ist die Adresse des Samples im Speicher als Dezimalzahl anzugeben und die Länge des Samples. Getrennt werden die beiden Zahlen durch ein Komma.

-rx: Die gewünschte Anzahl an Wiederholungen. Bei null Wiederholungen wird der Sample unendlich wiederholt.

Um einen Sample zu stoppen, muß das MiNT-Signal SIGUSR1 geschickt werden.

Aniplayer

Der Aniplayer [2] versteht die gleichen Parameter wie GEMJing. Was gegen Aniplayer spricht, ist die Annahme des Programmierers, das alles, was nach 68000 aussieht, langsamer als ein Falcon sein muß. Deshalb ist der Aniplayer für das plattformunabhängige Abspielen von Sounds eher ungeeignet.

Interessant ist das Programm durch die unterstützten Formate: AVR, WAV, AIF, DVS, Real Audio, MPEG 1/2/3 und OGG Vorbis.

Andere Sound-Player

Natürlich gibt es auch noch eine ganze Reihe anderer Sound-Player, die aber entweder nur auf dem Falcon laufen oder über keinen "Quiet"-Modus verfügen. Zumindest letzteres ist leicht einzubauen, daher sollte man nicht scheuen, den entsprechenden Programmierer zu kontaktieren.

Für Sound-Programme empfehlenswert ist die Seite der dead hackers society (dhs.nu), gerade bei exotischen Sound-Formaten.

X32

X32-Dateien sind Musikstücke oder kurze Soundeffekte, die über die Betriebssystemroutine dosound() abgespielt werden können. Diese ist vom 520ST bis zum Milan vorhanden und spielt die X32-Datei im Hintergrund auf dem PSG ab. Dieser ist auf dem Milan zwar nicht vorhanden, aber da der Milan nicht vorhandene Hardware emuliert, bzw. Zugriffe auf sie abfängt, funktioniert das Abspielen auch hier. Der Piepser des Milans tut sein Bestes, um den PSG nachzuahmen, beschränkt sich aber auf den ersten Soundkanal. Das bedeutet, das jede X32-Datei, die hauptsächlich den ersten Soundkanal benutzt, auf dem Milan zumindest hörbar ist.

Ein (primitives) Beispiel zum Abspielen von X32-Dateien in GFA ist in Listing 2 zu sehen.

Tools, um X32-Dateien zu erstellen, sind noch in PD-Sammlungen zu finden. Das Sound-Format war vor allem in den Anfangstagen des STs beliebt, daher sind die Programme auch älteren Datums.

Geeignete Samples

Die Suche nach den richtigen Samples kann sehr mühselig werden. So sind zwar z.B. auf der „Skyline Deluxe“ viele Samples vorhanden, aber ein Großteil davon stammen aus Filmen oder Serien, was deren Weiterverwendung rechtlich problematisch macht. Nebenbei wirkt die Verwendung von so bekannten Samples in den meisten Fällen eher billig. Vereinzelt finden sich aber doch ganz brauchbare Samples. Das Programm „A-Z“ wurde z.B. komplett vertont.

Gut bestückt an Sound-Effekten ist das „Absolute Sound FX Archive“ [3]. In Kategorien finden wie „Emergency“, „Farm“, „Industry“ oder „Transportation“ finden sich viele hochwertige Wave-Dateien, die zumindest laut dem Webmaster frei sind.

Sehr empfehlenswert für alle, die MP3-Dateien verarbeiten können, ist die hörspielbox [4]. Über eine Suchmaschine lassen sich mehr oder weniger alltägliche Geräusche suchen, die im Drehbuchstil beschrieben werden. Die Qualität schwankt zwar ein wenig, aber mit den Geräusch-CDs, die im Handel angeboten werden, kann es die hörspielbox durchaus aufnehmen. Das Archiv richtet sich ausdrücklich auch an Videofilmer und Hörspielautoren. Allerdings sollte vor der kommerziellen Verwendung die Archivleitung kontaktiert werden.

Listing 1: Verschicken von VA_Start in C

msg[0] = VA_START;
msg[1] = app_id;
msg[2] = 0;
msg[3] = (WORD)(((LONG)args >> 16) & 0x0000ffff);
msg[4] = (WORD)((LONG)args & 0x0000ffff);
msg[5] = 0;
msg[6] = 0;
msg[7] = 0;
appl_write(player_id, 16, msg);

Listing 2: X32 abspielen

SPOKE &H484,PEEK(&H484) AND NOT 5
LET dosound$=SPACE$(32000)
BLOAD file$,VARPTR(dosound$)
VOID XBIOS(32,L:VARPTR(dosound$))

[1] http://topp.atari-users.net

[2] http://aniplay.atari.org

[3] http://www.grsites.com/sounds/

[4] http://www.hoerspielbox.de/


Mia Jaap
Aus: ST-Computer 05 / 2002, Seite 38

Links

Copyright-Bestimmungen: siehe Über diese Seite