Wie kann ich ohne Probleme über PulseAudio auf zusätzliche Kanäle meiner Soundkarte zugreifen?

Wie kann ich ohne Probleme über PulseAudio auf zusätzliche Kanäle meiner Soundkarte zugreifen?

Die Pulseaudio-FAQzeigt, wie man explizit ein ALSA-Sink-Modul mit einer Kanalzuordnung lädt. Das funktioniert, erfordert aber auch die Deaktivierung der Module zur automatischen Geräteerkennung, was ich nicht tun möchte.

In den „Sound“-Einstellungen gibt es für jedes Ausgabegerät eine „Modus“-Option, die die Kanalzuordnung zu konfigurieren scheint, die PulseAudio für dieses Gerät verwendet. Es gibt Optionen wie „Analog Stereo Output“ und „Analog Surround 5.1 Output“. Dies scheint der richtige Weg zu sein, wenn das Ziel darin besteht, die Standardkonfiguration, die größtenteils wirklich gut funktioniert, nicht zu beschädigen.

Das Problem ist, dass meine Lautsprecher wirklich nur Stereo sind, ich aber noch 6 weitere Ausgänge habe, die ich irgendwie nutzen möchte. Ich nehme an, sie könnten als zusätzliche Senken verfügbar gemacht werden. Oder, wenn ich diese zusätzlichen Kanäle als „aux0, aux1, ...“ verfügbar machen kann, kann ich verwendenModul-Neuzuordnung-Senkeum sie als zusätzliche Senken erscheinen zu lassen.

Ich habe außerdem acht analoge Eingänge und zwei digitale Eingänge, und keine „Modus“-Einstellung scheint sie alle verfügbar zu machen.

Die Frage ist also: Wo werden diese „Modi“ konfiguriert? Oder gibt es andere gute Lösungen für dieses Problem?

Antwort1

Die Beispiele hier haben mir geholfen:

https://wiki.archlinux.org/index.php/PulseAudio/Examples#Simultaneous_HDMI_and_Analog_Output

Am Ende kam ich auf Folgendes ~/.config/pulse/default.pa:

# http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3
# https://wiki.archlinux.org/index.php/PulseAudio/Examples#Simultaneous_HDMI_and_Analog_Output
# remix=no is required, otherwise it will turn 2-channel sound into 4-channel sound and send it to all master channels
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right sink_properties=device.description=Headphones
load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right   channel_map=front-left,front-right sink_properties=device.description=Speakers

# sending output to this goes to both
# replacing "0" with "alsa_output.pci-0000_00_1b.0.analog-surround-40" might work, but this also does
update-sink-proplist 0 device.description="Both"

# this renames the virtual streams, which show up in KMix.  It's handy, since KMix can't show more than one sink for master volume in the popup
update-sink-input-proplist 0 media.name="Headphones"
update-sink-input-proplist 1 media.name="Speakers"

Ersetzen Sie Ihre Gerätenamen (die master=...) nach Bedarf.

NOTIZ:Sie müssen zuerst kopieren /etc/pulse/default.paund ~/.config/pulse/default.padann bearbeiten, da pulseaudio die systemweite Datei überhaupt nicht liest, wenn die Datei des Benutzers vorhanden ist. Von nun an müssen Sie alle Änderungen aus der systemweiten Datei in Ihre persönliche Datei einfügen. Alternativ könnten Sie einfach die systemweite Datei bearbeiten, aber dann könnte sie durch Updates überschrieben werden, was Ihre ganze Arbeit zunichte machen würde! (Oder vielleicht würde dpkg Sie auffordern, sie manuell zusammenzuführen, aber was, wenn Sie es nicht bemerkt haben? (Fügen Sie etckeeperhier eine Empfehlung ein.))

Ein Beispiel gibt es auch hier:

http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3

Dabei werden jedoch die Aux-Kanäle verwendet, was eher verwirrend ist. Die Verwendung remix=nomacht dies überflüssig.

Ich habe zwar keine Ahnung, was Sie unter einem Kludge verstehen, aber Sie sollten diese Beispiele und das PA-Wiki oder ein bisschen Googeln verwenden können, um den Rest zu verstehen. Für Ihre zusätzlichen Kanäle listet das Wiki Folgendes auf:

Kanalzuordnung. Eine Liste mit durch Kommas getrennten Kanalnamen. Die aktuell definierten Kanalnamen sind: links, rechts, Mono, Mitte, vorne links, vorne rechts, vorne Mitte, hinten Mitte, hinten links, hinten rechts, lfe, Subwoofer, vorne links von der Mitte, vorne rechts von der Mitte, seitlich links, seitlich rechts, Aux0, Aux1 bis Aux15, oben Mitte, oben vorne links, oben vorne rechts, oben vorne Mitte, oben hinten links, oben hinten rechts, oben hinten Mitte, (Standard hängt von der Anzahl der Kanäle und dem Treiber ab)

Übrigens pacmdverwendet das Tool genau dieselben Befehle wie die default.paDatei, sodass Sie interaktiv Änderungen vornehmen und dann die Arbeitsbefehle in einfügen können default.pa, nur ohne pacmdin jedem. Beachten Sie, dass Sie möglicherweise einige Dinge etwas anders machen müssen, z. B. zuerst einige Module entladen, als dies in zu tun default.pa, da pulseaudio bereits ausgeführt wird. Ich habe einige Zeit damit verbracht, mir darüber die Haare zu raufen. (:v)

verwandte Informationen