Binaural Audio mit OpenAL (Minecraft!)

Neben der grandiosen Minecraft-Mod namens „Minecrift“, gibt es nun eine weitere „Modifikation“ für Minecraft, die den Realismusgehalt des Survivalspiels heben soll: Binaural Audio.

Binaural Audio, ist eine Aufnahmetechnik mit welcher, bei der Wiedergabe jener Audio-Dateien mittels Stereokopfhörer, ein natürlicher Höreindruck mit exakter Richtungslokalisation entsteht. Zum besseren Verständnis, hier ein Vergleich zwischen Stereo Kopfhörern, Surroundsound und binaural Audio. Zum besseren Verständnis wurden die Modelle vereinfacht.

Stereo_s

Der grüne Lautsprecher beschreibt die Position der virtuellen Soundquelle, der rote Fächer beschreibt den Bereich, in dem der Spieler die Soundquelle lokalisiert.

Der gewöhnlichem Stereo Sound in Videospielen, wie die die meisten Menschen ihn kennen, wird hauptsächlich von einem Hauptparameter beeinflusst: Dem Abstand zum Audio Listener. Der Audio Listener ist ein Objekt welches die virtuellen Ohren, oder ein virtuelles Mikrofon, repräsentiert. Er bestimmt, was der Spieler vor dem PC hört. Bei gewöhnlichem Stereo Sound wird der gesamte Audio Bereich in 2 Teil Bereiche, links und rechts, aufgeteilt. Je nach Winkel zur Audio Quelle, wird der Sound dann auf dem linken oder rechten Lautsprecher laut ausgegeben (Ortung auf einer Achse). Eine Dämpfung der Lautstärke, wenn der Sound von hinter dem Spieler kommt, erlaubt zudem eine rudimentäre 2D Ortung.

Surround_s

Der grüne Lautsprecher beschreibt die Position der virtuellen Soundquelle, der rote Fächer beschreibt den Bereich, in dem der Spieler die Soundquelle lokalisiert.

Bei der Verwendung von Surround-Sound, z.B. mit einer 5.1 Anlage, wird der Hörbereich in 5 Teilbereiche unterteilt. Je nach Winkel wird die Lautstärke für jeden Kanal der Audioausgabe interpoliert. Jeder aufgezeichnete Kanal wird dann an den zu ihm gehörigen Lautsprecher gesendet. Auf diese Weise kann dem Spieler vermittelt werden, dass ein Geräusch von hinter der Spielfigur kommt. Da der Sound tatsächlich von einem Lautsprecher hinter dem Spieler abgespielt wird, hört der Spieler den Sound auch aus dieser Richtung. Durch das Interpolieren können Objekte über 2 Achsen geortet werden. Eine Bestimmung der Position der Soundquelle ist also prinzipiell 360° um den Spieler herum möglich. Höhen unterschiede sind nicht erkennbar. Die beste Richtungslokalisierung ist dann gegeben, wenn die Soundquelle im selben Winkel zur Spielfigur steht, wie einer der Lautsprecher um den Spieler herum. Um eine exaktere Ortung in den abgemischten Bereichen zu erlauben, greifen viele Sound-Enthusiasten zu immer größeren Anlagen. Zum Beispiel mit 7 Lautsprechern statt 5. Ein Nachteil dieser Technik ist, dass die Lautsprecher idealerweise genauso aufgestellt werden müssen, wie der Sounddesigner des Spiels (oder des Films) es geplant hat. Ansonsten stimmen Abstände und Winkel nicht überein und der Anwender hört den Sound nicht wie vorgesehen. Die meisten Surroundanlagen bieten deshalb eine Kalibrierungsfunktion und mischen den eingehenden Ton neu ab.

Bei binauralem Audio wird der Hörbereich ebenfalls in 2 Abschnitte unterteilt. Zusätzlich wird, abhängig vom Winkel zur Soundquelle, der Sound abgemischt und auf Basis der HRTF verzerrt. Daraus resultiert ein Geräusch, welches tatsächlich aus der Richtung der virtuellen Soundquelle zu kommen scheint. HRTF, steht für Head-Related Transfer Function, sie beschreibt die komplexe Filterfunktion von Kopf, Außenohr und Rumpf. Die HRTF ist, neben den Laufzeitdifferenzen zwischen dem linken und rechten Ohr, ein wesentlicher Bestandteil des menschlichen, akustischen Lokalisationssystems. Binaurales Audio erlaubt zudem eine Richtungslokalisierung auf allen 3 Achsen. Es können also sogar Höhenunterscheide erkannt werden. Binaurales Audio funktioniert nur mir Stereokopfhörern. Verwendet man Lautsprecher oder ein Surround-Headset, geht die Lokalisierungsfähigkeit von binauralem Ton verloren. Die von der Soundengine verzerrten Geräusche treffen dann in einem nicht idealen Winkel auf das Ohr und es wird die Position der Lautsprecher lokalisiert. Eine ähnliche Technik nutzt z. B. Logitechs G35 Headset und Creatives Sound Blaster Soundkarten mit THX TruStudio Pro-Technologie, um Surroundsound über Stereo Kopfhörer ausgeben zu können.

Binaural_s

Der grüne Lautsprecher beschreibt die Position der virtuellen Soundquelle, der rote Fächer beschreibt den Bereich, in dem der Spieler die Soundquelle lokalisiert.

Eine genauere Beschreibung würde vermutlich den Artikel dann doch zu sehr dehnen, für alle die mehr wissen wollen, hier der Wikipedia Artikel. Binaurale Tonaufnahmen findet man auch auf Youtube so zum Beispiel den virtuellen Friseurbesuch. Einfach Kopfhörer auf, starten und Augen schließen.

Nun aber zum eigentlichen Thema dieses Artikels wie bekommen wir nun das binaurale Audio in OpenAL Titeln wie Minecraft aktiviert?

Richtig gelesen, eine richtige Mod ist binaural Audio für Minecraft nicht, denn die Soundengine des Spiels (OpenAL) kann bereits binaural Audio, die Funktion muss lediglich aktiviert werden.

Zunächst hier ein Video von Minecraft mit aktiviertem HRTF (Head-Related Transfer Function):

  1. Stellt sicher, dass für euer Ausgabegerät das Standardformat  44100 Hz (24Bit) ausgewählt, ansonsten wird OpenAl automatisch zum Standard Stereo zurückfallen.
    Klickt in Windows mit der rechten Maustaste unten rechts auf das Lautsprecher Symbol und wählt “Wiedergabegeräte”. Wählt nun euer Standardwiedergabegerät (grüne Haken) aus und klickt auf “Eigenschaften”. Unter dem Reiter “Erweitert” kann nun das Standardformat ausgewählt werden.
  2. Legt unter %APPDATA% eine Datei Namens alsoft.ini, mit dem Inhalt “hrtf = true” (ohne “”) an.
    Unter Windows klickt ihr Start -> Ausführen. (Oder Windowstaste + R). Gebt in das Textfeld %APPDATA% ein, es öffnet sich ein Ordner. Macht in dem Ordner einen Rechtsklick und wählt Neu -> Textdokument. Benennt das Dokument alsoft.ini (kein .txt am Ende!). Die Frage ob ihr dies wirklich tun wollt, bestätigt ihr mit ja. Öffnet die Datei mit einem Texteditor (Rechtemaustaste auf die Datei -> Öffnen mit ->Editor) und schreibt in die Datei “hrtf = true” (ohne“”). Speichert die Datei und schließt den Editor, dann seid ihr fertig.

HRTF lässt sich unter Windows für jedes Spiel aktivieren, welches OpenAL nutzen. Dies sind leider nur ein paar wenige, wer aber dennoch ein Spiel hat und dort ebenfalls HRTF nutzen möchte, findet hier eine Anleitung dazu. Diese Anleitung zur Aktivierung von HRTF in Minecraft basiert auf der Anleitung die feilen bei Reddit veröffentlicht hat.

 

Daniel Korgel

Geschrieben von

Ich bin Daniel Korgel und bin ein selbständiger Software Entwickler im Bereich Virtual Reality. Ich programmiere in meiner Freizeit schon sehr lange und bin gut unterwegs mit C# (& .Net), Java, HTML, PHP und MYSQL. Kenntnisse in C, C++ und Assembler sind aber auch vorhanden. Zudem arbeite ich derzeit auch an meinem Bachelor. In meiner Freizeit sammle ich alte Spielekonsolen und bin auch hin und wieder im Skatepark anzutreffen. Twitter: @DakorVR , @Bloculus_de| Xing: xing.com/profiles/Daniel_Korgel


5 Meinungen zu “Binaural Audio mit OpenAL (Minecraft!)

  1. Pingback: Anonymous

  2. Pingback: Developer Kit 2 – Hands On Video & Spieletest Blog – John Carmacks Vortrag in guter Quallität | Bloculus Das deutsche Oculus Rift News Blog

  3. Pingback: Oculus Connect Keynotes: Prototyp, Unity Free, Mobile VR und The Future of VR Diskussion | Bloculus Das deutsche Oculus Rift News Blog

Kommentar verfassen