Verständnisfrage zu WINE und openal(soft) (fuer HRTF)

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
drake23
Beiträge: 84
Registriert: 25.04.2004 22:17:26
Lizenz eigener Beiträge: MIT Lizenz

Verständnisfrage zu WINE und openal(soft) (fuer HRTF)

Beitrag von drake23 » 15.04.2019 20:22:01

Hallo zusammen,

motiviert durch diesen Thread auf Reddit wollte ich mal versuchen, alte Windows XP Era Spiele mit DirectSound3D unter WINE mit HRTF zum Laufen zu bekommen.

Angeblich sollte es ausreichen, eine Datei .alsoftrc im Homeverzeichnis anzulegen mit dem Inhalt

Code: Alles auswählen

stereo-mode = headphones
hrtf = true
(vorausgesetzt openal ist installiert natürlich).

Vorweg: hat nicht funktioniert.

Wenn ich mit Rightmark3DSound teste, bleibt HRTF deaktiviert (steht auch so im openal.log).

Nächster Schritt: ich benutze einen DSOUND/OPENAL Wrapper. Mit einem native override in winecfg wird Directsound3D nach openal übersetzt. Der Wrapper funktioniert (bietet unter WINE übrigens auch EAX 1 - 4, was Rightmark auch zeigt). Allerdings wird HRTF nach wie vor nicht genutzt.

Letzter Schritt: ich kopiere meine .alsoftrc als alsoft.ini (!) in das Verzeichnis der .exe. Siehe da, jetzt habe ich EAX und HRTF unter WINE :)!

Daher jetzt meine Frage: Wie genau funktioniert eigentlich die Audioarchitektur von WINE? Ich hatte ursprünglich gedacht, WINE nutzt immer openal(soft), aber das scheint ja nicht der Fall zu sein. Erst mit dem Wrapper (oder einem Spiel, das von Haus aus openal nutzt, z.B. UT2004), scheint WINE openal zu nutzen. WINE ignoriert aber die .alsoftrc und berücksichtigt erst eine alsoft.ini. Dann aber ist WINE wiederum in der Lage, die HRTF Fähigkeit des Linux Hosts zu nutzen...

Das WINE Wiki liefert leider keinen Hinweis. Google hat noch folgendes zu Tage befördert: http://kegel.com/wine/sound.pdf, aber das liest sich ja eher wie ein Entwurf und scheint nicht der Status Quo zu sein (ich dachte immer, WINE würde so funktionieren, wie das "Proposal: Wine Openal").

Aber wahrscheinlich geht WINE direkt an AALSA/pulse, bzw. bei Openal Programmen einen "Umweg" über Openal?

Wenn jemand da einen Einblick hat, wär das sehr interessant.

Danke und viele Grüße

PS: Nutze Debian Stable.

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Verständnisfrage zu WINE und openal(soft) (fuer HRTF)

Beitrag von smutbert » 18.04.2019 22:31:24

Wenn sonst keiner etwas schreibt, versuche ich es, auch wenn ich über wine nicht viel weiß:

Um mittels „kopfbezogener Übertragungsfunktionen“ also hrtf das raumliche Signal für Kopfhörer erzeugen zu können, braucht die Software, also in diesem Fall wohl openal, das Geräusch/den Töo und sowohl Richtung wie auch Entfernung zum Hörer. Das Ergebnis ist ein zweikanaliges Signal, dem man es von außen gar nicht ansieht, dass es sich von einem normalen Stereosignal für Lautsprecher (klanglich) unterscheidet.

wine gibt aber, vermutlich über Alsa oder Pulseaudio, wie die meisten Anwendungen nur ein (zumindestens meistens) zweikanaliges Signal aus. Das heißt selbst wenn wine openal nutzen würde, hätte openal außerhalb von wine gar nicht die Möglichkeit hrtf richtig zu nutzen (die einzelnen Geräusche/Töne sind bereits untrennbar gemischt und die Entfernungs-/Richtungsinformationen fehlen ebenfalls).


Das einzige was man im Nachhinein außerhalb von wine noch machen könnte, wäre mittels hrtf dafür zu sorgen, dass es sich mit Kopfhörern so anhört als würde man über Lautsprecher hören. So kann man den Eindruck loswerden, die Musik (oder was auch immer) spielte im Kopf und wenn eine Anwendung mehr als 2 Kanäle wiedergibt, also zB 5.1, kann man sogar so etwas wie virtuellen SurroundSound erhalten.
Dafür braucht man aber keineswegs openal. Das kann auch Pulseaudio und wenn man sich Impulsantworten sucht, die einigermaßen gut zum eigenen Kopf passen, dann funktioniert das meiner Erfahrung nach auch beeindruckend gut.

drake23
Beiträge: 84
Registriert: 25.04.2004 22:17:26
Lizenz eigener Beiträge: MIT Lizenz

Re: Verständnisfrage zu WINE und openal(soft) (fuer HRTF)

Beitrag von drake23 » 19.04.2019 12:55:45

Hi,

danke fuer den Beitrag. Nochmal zur Klarstellung:

Wenn das Programm Openal nativ (oder per Wrapper) benutzt, dann ist Wine in der Lage, die OpenAL Funktionalitaeten des Linux Hosts (z.B. HRTF) korrekt zu benutzen (durch openal.log und konkretes Testing kann ich das bestaetigen)! Das funktioniert dann vom Prinzip wohl aehnlich wie gallium nine...

Meine Frage zielte eher darauf ab, was WINE denn macht, wenn die App eben kein OpenAL nutzt, sondern DSOUND, oder FMOD mit irgendeinem Backend...

Schoene Gruesse

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Verständnisfrage zu WINE und openal(soft) (fuer HRTF)

Beitrag von smutbert » 19.04.2019 22:31:31

Ah, dann kann wine also genau das, was ich eigentlich ausgeschlossen habe.
drake23 hat geschrieben: ↑ zum Beitrag ↑
19.04.2019 12:55:45
Meine Frage zielte eher darauf ab, was WINE denn macht, wenn die App eben kein OpenAL nutzt, sondern DSOUND, oder FMOD mit irgendeinem Backend...
Für den Fall von DirectSound hast du die Frage so wie ich das sehe bereits selbst mit dem Link zum DirectSound-Wrapper beantwortet. wine unterstützt DirectSound und verwendet dann hinter den Kulissen linuxseitig openal um die räumlichen Signale zu erzeugen. Hier dürfte die ini-Datei also gar keinen Unterschied machen und dafür sollte die .alsoftrc notwendig sein.

Wie es bei fmod aussieht weiß ich nicht (das kannte ich bis jetzt überhaupt nicht), aber wenn eine (Windows-)Anwendung fmod verwendet, dann macht sie das noch unter Windows/wine. Nachdem fmod offensichtlich proprietäre Software ist, wird wine keinesfalls ein fmod unter Linux nutzen. Das heißt wenn mit fmod irgendetwas mit hrtf oä passieren soll, dann wird das in der Windowsemulation passieren müssen.
(Es sei denn fmod nutzt seinerseits wieder eine andere Schnittstelle zur Ausgabe wie DirectSound, bei der wine wieder auf ein openal außerhalb wines zurückgreifen kann.)

drake23
Beiträge: 84
Registriert: 25.04.2004 22:17:26
Lizenz eigener Beiträge: MIT Lizenz

Re: Verständnisfrage zu WINE und openal(soft) (fuer HRTF)

Beitrag von drake23 » 20.04.2019 13:10:03

smutbert hat geschrieben: ↑ zum Beitrag ↑
19.04.2019 22:31:31
Hier dürfte die ini-Datei also gar keinen Unterschied machen und dafür sollte die .alsoftrc notwendig sein.
Genau das hatte ich mir eigentlich auch gedacht (so war es ja auch im eingangs zitierten Reddit Thread beschrieben).

Allerdings habe ich beim Testen nur Erfolg damit gehabt, eine alsoft.ini in das Verzeichnis der .exe zu legen. Das kann zugegeben aber auch am dsound/openal Wrapper liegen. Wenn die App nativ OpenAL nutzt, reicht vielleicht auch die .alsoftrc im Homeverzeichnis. Da muesste ich mal eine Windows App testen, die nativ openal benutzt...

Auf jeden Fall Danke fuer Deinen Input :)

Antworten