Wie integriere ich Soundausgabe in ein QBasic-Programm unter Windows?
- Grundlagen der Soundausgabe in QBasic
- Begrenzungen unter modernen Windows-Betriebssystemen
- Alternative Möglichkeiten zur Soundausgabe
- Praxis: Einfacher Sound mit SOUND in QBasic (Beispielcode)
- Zusammenfassung
QBasic ist eine einfache Programmiersprache, die in den 1990er Jahren populär war und vor allem für die Entwicklung kleiner Konsolenprogramme genutzt wurde. Obwohl QBasic für einfache grafische und akustische Ausgaben Funktionen bereithält, sind die Möglichkeiten unter modernen Windows-Betriebssystemen eingeschränkt, da es sich um eine sehr alte Entwicklungsumgebung handelt und viele der ursprünglichen Hardwarezugriffe heute nicht mehr ohne weiteres möglich sind.
Grundlagen der Soundausgabe in QBasic
Ursprünglich enthält QBasic die Funktion SOUND, mit der einfache Töne erzeugt werden können. Diese Funktion verwendet den PC-Lautsprecher und nimmt zwei Parameter entgegen: die Frequenz in Hertz und die Dauer des Tons in Millisekunden. Die Syntax lautet etwa:
Dabei ist freq die Frequenz, also die Tonhöhe, und dauer die Länge des Tones in Millisekunden.
Zum Beispiel erzeugt SOUND(440, 500) den Klang eines 440 Hz Tons (entspricht dem Kammerton A) für eine halbe Sekunde.
Begrenzungen unter modernen Windows-Betriebssystemen
Das Problem bei der direkten Verwendung von SOUND unter aktuellen Windows-Versionen besteht darin, dass der PC-Lautsprecher oft nicht mehr vorhanden ist oder nicht mehr durch das Betriebssystem angesteuert wird. Windows ignoriert manche Systemaufrufe, die für die Steuerung des PC-Lautsprechers genutzt werden, aus Sicherheits- und Kompatibilitätsgründen. Dadurch bleibt der Bildschirm zwar schwarz, aber ein Ton wird nicht ausgegeben.
Außerdem ist QBasic an sich eine 16-Bit-Anwendung, die nicht nativ unter 64-Bit-Windows-Versionen läuft. Um QBasic-Programme dennoch auszuführen, wird oft eine DOS-Emulationsumgebung wie DOSBox benutzt, die den PC-Lautsprecher emulieren kann. Auch hier funktioniert SOUND grundsätzlich, allerdings wird die Tonqualität von der Emulation bestimmt.
Alternative Möglichkeiten zur Soundausgabe
Wenn Sie unter Windows Sound in einem QBasic-ähnlichen Umfeld oder mit QBasic selbst ausgeben möchten, gibt es einige alternative Vorgehensweisen. Eine Möglichkeit besteht darin, externe Tools oder Windows-Funktionen außerhalb von QBasic zu verwenden und diese per Systemaufruf zu starten. Beispielsweise können Sie über die QBasic-Anweisung SHELL externe Audio-Player mit bestimmten Sounddateien ausführen. Dazu müssen Sie allerdings Audiodateien (.wav, .mp3) verfügbar haben, und Windows muss einen Standardplayer zugeordnet haben.
Beispielcode, um eine WAV-Datei zu starten: SHELL "start C:\Pfad\zum\Ton.wav" Dadurch wird der im System zugeordnete Player aufgerufen und die Datei abgespielt.
Eine andere Möglichkeit ist, das Programm in einer moderneren Umgebung neu zu schreiben (zum Beispiel in QB64), welches kompatibel zu QBasic ist, aber über eine breitere Palette an Funktionen für Sound und Multimedia verfügt.
Praxis: Einfacher Sound mit SOUND in QBasic (Beispielcode)
Nachfolgend ein Beispiel, wie Sie mehrere Töne im klassischen QBasic ausgeben können:
CLS SOUND 440, 500 Kammerton A, 0,5 Sekunden SOUND 494, 500 H-Ton, 0,5 Sekunden SOUND 523, 500 C-Ton, 0,5 Sekunden SOUND 587, 500 D-Ton, 0,5 Sekunden SOUND 659, 500 E-Ton, 0,5 Sekunden SOUND 698, 500 F-Ton, 0,5 Sekunden SOUND 784, 500 G-Ton, 0,5 SekundenBeachten Sie, dass dieser Code auf modernen PCs ohne PC-Lautsprecher nicht funktionieren wird. Der Ton wird unter Windows in der Regel nicht ausgegeben.
Zusammenfassung
Die einfache Soundausgabe über SOUND in klassischem QBasic ist der erste und schnellste Weg, kurze Töne auszugeben. Allerdings werden diese Töne heute unter Windows meist nicht abgespielt, da der PC-Lautsprecher nicht mehr unterstützt wird. Für präzisere und zuverlässige Soundausgabe empfiehlt sich der Einsatz modernerer QBasic-Nachfolger (wie QB64) oder das Aufrufen externer Programme zum Abspielen von Audio-Dateien aus dem QBasic-Programm heraus. Außerdem kann das Arbeiten in einer geeigneten DOS-Emulationsumgebung eine Möglichkeit sein, alte QBasic-Programme inklusive Klang auszuführen.
