ubuntuusers.de

Pipewire Gold Audio

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Mylin

Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

Hallo zusammen,

inspiriert durch Sound verändern - Equalizer? habe ich für Pipewire 10-Band-EQ Konfigurationsdateien erstellt. Diese stehen nach der Installation als Sink in der Lautsprecherauswahl, in den Audio-Einstellung, zur Auswahl. Der wiederzugebende Ton wird vor der Ausgabe durch die in den Konfigurationsdatein konfigurierten Filter geleitet und dadurch verändert.

Es gibt zwei Konfigurationen: 10-Band-EQ Stereo mit leichten Wide-Effekt und 10-Band-EQ virtual 5.1 Sound.

Wäre nett wenn ihr Testen würdet.

  • Funktion out of the Box (hier insbesondere ob die Device-Erkennung richtig funktioniert), also installieren, neu starten, funktioniert

  • Klang

Freu mich über Rückmeldungen

https://github.com/Mylinde/Pipewire-Gold-Audio

Bearbeitet von schwarzheit:

Typo im Titel

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5811

Leider wirft das install Script bei mir hier einen Fehler. Aber das kommt wohl durch mein Audio über Bluetooth, und womöglich auch noch von meinem Pipewire in der Version 1.7.0 aus dem GIT, von dem zu naschen ich nicht widerstehen konnte. Schon gar nicht nach dieser Phoronix Meldung:

Aber da war ich dann auch schon an der 1.6er Pipewire Version vorbei gerannt. 😇

Terminal "Screenshot":

./install user
=== PipeWire Installation for User ===
Installing files to ~/.config/pipewire/
Error: ID is required

Error: ID is required

Usage:
  wpctl [OPTION…] COMMAND [COMMAND_OPTIONS] - WirePlumber Control CLI

Command: set-default ID
  Sets ID to be the default object of its kind (capture/playback) in its session

Help Options:
  -h, --help       Show help options

Die Falle lauert dort im install Script:

wpctl inspect $(wpctl status | grep 'Speaker + Headphones' | awk '{print $3}' | cut -d. -f 1) | grep 'output' | awk '{print $4}' | tr -d '"'
Error: ID is required

grep greift bei mir ins Leere. 'Speaker + Headphones' gibts in meiner wpctl status Ausgabe nicht. Die sieht so aus (persönliche Daten etwas redigiert):

PipeWire 'pipewire-0' [1.7.0, <username>@<hostname>, cookie:<glückskeks-nummer>]
 └─ Clients:
        35. WirePlumber                         [1.7.0, <username>@<hostname>, pid:38032]
        36. pipewire                            [1.7.0, <username>@<hostname>, pid:38030]
        37. pipewire                            [1.7.0, <username>@<hostname>, pid:38030]
        38. pipewire                            [1.7.0, <username>@<hostname>, pid:38030]
        39. pipewire                            [1.7.0, <username>@<hostname>, pid:38030]
        40.                                     [1.7.0, <username>@<hostname>, pid:2561]
        41.                                     [1.7.0, <username>@<hostname>, pid:2580]
        48. qpwgraph                            [1.7.0, <username>@<hostname>, pid:2824]
        53. WirePlumber [export]                [1.7.0, <username>@<hostname>, pid:38032]
        58. xdg-desktop-portal                  [1.7.0, <username>@<hostname>, pid:2520]
        77. WirePlumber                         [1.7.0, <username>@<hostname>, pid:38032]
       106. wpctl                               [1.7.0, <username>@<hostname>, pid:39648]

Audio
 ├─ Devices:
 │      59. GM204 High Definition Audio Controller [alsa]
 │      60. Internes Audio                      [alsa]
 │      76. Icon ANC                            [bluez5]
 │  
 ├─ Sinks:
 │  *   78. Icon ANC                            [vol: 0.50]
 │  
 ├─ Sources:
 │  
 ├─ Filters:
 │    - combine-sink-38030-12                                       
 │      42. combined                                                     [Audio/Sink]
 │      47. output.combined_combine_sink                                 [Stream/Output/Audio]
 │      81. output.combined_bluez_output.<mac-adress>             [Stream/Output/Audio]
 │    - combine-sink-38030-13                                       
 │      43. combine_sink                                                 [Audio/Sink]
 │      82. output.combine_sink_bluez_output.<mac-adress>         [Stream/Output/Audio]
 │    - loopback-38032-19                                           
 │  *   79. bluez_input.<mac-adress>                                [Audio/Source]
 │      80. bluez_capture_internal.<mac-adress>                     [Stream/Input/Audio/Internal]
 │  
 └─ Streams:

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sources:
 │  
 ├─ Filters:
 │  
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    bluez_output.<mac-adress>
         1. Audio/Source  bluez_input.<mac-adress>

Das Sternchen '*' dürfte wohl die Standardausgabe bei den Sinks markieren. Bei mir ist das ein Bluetooth Headset.

Mylin

(Themenstarter)
Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

Danke für die Rückmeldung, ich habe die Erkennung geändert. Das bei der Installation aktive Ausgabegerät wird als target.object gesetzt. Bei dir also dieses:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    bluez_output.<mac-adress>

Das target.object ist natürlich statisch, bedeutet bei einem Ausgabegerätewechsel geht der Ton nicht mehr durch die Filter-Chain.

Netter 5.1 Test > https://www.youtube.com/watch?v=aKrFDLD8lJ0

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5811

Das install Script funktioniert nun perfekt bei mir. Jedoch hört sich mein Bluetooth Headset ohne diese Konfigurationen besser an. Das Bluetooth Headset hat nur Links und Rechts und ich habe auch nur 2 Ohren. Aber den Raumklang stellt das Headset trotzdem mit der Standard pipewire.conf bestens dar, und ordentlich Bässe hat das Biest per default, die liebe ich, und die sollen auch so bleiben. Die Pipewire Gold Audio Konfiguration nimmt die Bässe raus, das ist nichts für mich.

Aber noch was ist mir aufgefallen, in deiner pipewire.conf ist:

link.max-buffers                      = 64

Im pipewire.conf für das aktuelle Pipewire aus dem Git ist eine Warnung, diese link.max-buffers nicht so hoch zu setzen:

link.max-buffers                       = 16                       # version < 3 clients can't handle more

Kann man auch im GIT nachlesen:

Ich übernehem immer die jeweils aktuelle Standard Konfiguration. nur die default.clock.allowed-rates ändere ich

default.clock.allowed-rates = [ 384000 192000 96000 48000 44100 ]

Nachtrag: beim uninstall bleibt das Verzeichnis:

$HOME/.config/pipewire/pipewire.conf.d/

und die Datei:

$HOME/.config/pipewire/pipewire.conf.d/pipewire.conf

... über. Das blieb dann zum löschen von Hand übrig.

Im Anhang noch ein Screenshot (AVIF-Bildchen), wie das dann im KDE Plasma Applet ausschaut, wenn Pipewire Gold Audio installiert ist. Aktiv ist dort im Screenshot gerade das Headset, man sieht es vorne an der Markierung.

Bilder

Mylin

(Themenstarter)
Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

trollsportverein schrieb:

Das install Script funktioniert nun perfekt

Supi, danke.

Die Pipewire Gold Audio Konfiguration nimmt die Bässe raus, das ist nichts für mich.

Korrekt, 65 hz wird weg gefiltert. Die Werte in der *.conf sind auf/für einen Laptop ermittel worden und können individuell in Frequenz, Quantum und Gain angepasst werden. Hier universell passende Werte zu finden dürfte nahezu unmöglich sein.

link.max-buffers                      = 64

Hatte ich gewählt wegen der 10 Bäneder und dem virtual Surround. Ich werde mal niedrigere Werte probieren.

nur die default.clock.allowed-rates ändere ich

Nachtrag: beim uninstall bleibt das Verzeichnis:

$HOME/.config/pipewire/pipewire.conf.d/

und die Datei:

$HOME/.config/pipewire/pipewire.conf.d/pipewire.conf

... über. Das blieb dann zum löschen von Hand übrig.

Intension war, eine vorhandene .config nicht zu löschen. Dabei fällt mir auf, bei der Installation wird eine möglich vorhandene pipewire.conf überschreiben. Ich werde wohl eine Backup/Restore-Lösung erstellen oder nur entsprechende Werte setzen.

Eine Anmerkung zum 5.1 vielleicht noch. Es handelt sich hierbei um virtuellen 5.1 Sound, heißt hier wird der "Raumklang" ohne entsprechende Hardware auf den Stereo-Lautsprechern erzeugt. Auf einem Laptop, hier ein Vivobook Go 15, funktioniert das hervorragend.

Insgesamt sind diese zwei Filter eine klangtechnische Bereicherung für dieses Gerät. Besonders daran erfreut mich, dass dies ohne eine zusätzliche Software möglich ist.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5811

Mylin schrieb:

Eine Anmerkung zum 5.1 vielleicht noch. Es handelt sich hierbei um virtuellen 5.1 Sound, heißt hier wird der "Raumklang" ohne entsprechende Hardware auf den Stereo-Lautsprechern erzeugt. Auf einem Laptop, hier ein Vivobook Go 15, funktioniert das hervorragend.

Mit meinem meinem Bluetooth Haedset auf den Ohren hört sich der virtuelle 5.1 Sound von Pipewrie Gold Audio so an, als würde der Klang die Stimmen stärker im Kopf erklingen, fühlt sich also anstatt Weiterung des hörbaren Klangs im virtuellen Raum und Ortbarkeit eher gegenteilig an, und ich empfinde das Hörerlebnis dann auch als unangenehm.

Was hingegen bei mir mit virtuellen Sounderweiterungen zu Videos auch mit Bluetooth Headset / Kopfhörer auf nur 2 Ohren sonst gut funktioniert, in MPV / SMPlayer, ist der Extrastereo Filter:

Macht aber auch noch mehr Bums beim Bass. Also wenn die Soundhardware zum scheppern neigt, bei Bass, dann nicht. Aber einfach mal ausprobieren, ob es angenehm klingt oder nicht. Kann man ja per Tastenkürzel im Player ein- oder ausschalten.

Mylin

(Themenstarter)
Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

trollsportverein schrieb:

Mit meinem meinem Bluetooth Haedset auf den Ohren hört sich der virtuelle 5.1 Sound von Pipewrie Gold Audio so an, als würde der Klang die Stimmen stärker im Kopf erklingen, fühlt sich also anstatt Weiterung des hörbaren Klangs im virtuellen Raum und Ortbarkeit eher gegenteilig an, und ich empfinde das Hörerlebnis dann auch als unangenehm.

Tatsächlich, ist das Verhalten mit Hardware die Surround unterstützt anders. Ohne Gold Audio sind die Kanäle getrennt, ein Ton auf dem linken Kanal ist auch nur links zuhören, mit Gold Audio ist der Ton leiser ebenfalls auf dem rechten Kanal hörbar, dies macht es irgendwie eindringlicher.

Neben Anpassungen an den Presets habe ich auch das Install Script angepasst, es erkennt nun eine vorhandene pipewire.conf, fragt ob dies überschrieben werden soll und beim deinstallieren ob die pipewire.conf gelöscht werden soll.

Denke ich werde noch die Unterstützung für mehrere Geräte implementieren. Also, Ausgabegerät gewechselt, install ausgeführt, xyz.conf wird erstellt und ist ebenfalls als Sink verfügabr.

Mylin

(Themenstarter)
Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

Im Branch testing habe ich eine erste GUI in Python, um die Presets komfortabel ändern zu können, abgelegt. Ist noch nicht fertig, sind erste Gedanken und auch noch nicht im Installer.

Mylin

(Themenstarter)
Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

Hallo zusammen,

die GUI wäre dann fertig. Wäre nett wenn ihr mal testen würdet.

https://github.com/Mylinde/Pipewire-Gold-Audio/tree/testing

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5811

Pipewire Gold Audio testing Branch clonded:

git clone -b testing --single-branch https://github.com/Mylinde/Pipewire-Gold-Audio.git

Die Browser GUI funktioniert mit dem alten Gunicorn aus den DEB-Paketen für Questing Quokka

Siehe auch Screenshot der GUI in meinem Falkon im Anhang (Browser-Zoom etwas verkleinert, damit es komplett noch in den Aufnahmebereich passt).

Bloß mein Bluetooth Headset und Pipewire Gold Audio werden wohl nicht die besten Freunde. Änderungen in der Webgui schalten das ANC des Bluetooth Headsets aus, und das lässt sich dann auch erstmal nicht mehr über die Bedienknöpfe des Headsets einschalten. Bluetooth Verbindung trennen und neu verbinden hilft dann. Das Ding hat, zumindest für meine 2 Ohren, auch schon den besten Klang, so dass ich außer in Videoplayern nichts umstellen will. In den Videoplayern MPV und SMPlayer habe ich dann Extrastereo.

So weit aber erst mal de Erfolgsrückmeldung, dass die GUI auch bei mir funktioniert, und Pipewire auch neu geladen wird über die GUI.

Bilder

Mylin

(Themenstarter)
Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

Kannst du die drei Sachen mal aus kommentieren und noch mal testen?

 channelmix.upmix = true
 channelmix.upmix-method = "psd"
 channelmix.stereo-widen = 0.35

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5811

Habe die drei Zeilen ab inklusive Zeile 97:

... nun auskommentiert, und Pipewire Gold Audio dann auch wieder installiert. Aber ich schätze mal, ich bin nicht das geeignete Testobjekt. Ich höre ja ausschließlich über Bluetooth Headsets, und das Ding auf den Ohren, was ich zur Zeit am liebsten benutze, ist wohl ausgesprochen widerspenstig, und will einfach so den besten Klang ohne Pipewire Gold Audio haben, zudem ist immer wieder Bluetooth trennen und wieder verbinden nötig, bei Änderungen in den Pipewire Gold Audio Einstellungen, obwohl Pipewire brav neugestartet wird über die schicke GUI.

Beim nutzen vom Extrastereo in MPV oder SMPlayer bleibt das alles erspart. Für mich ist das Pipewire Gold Audio daher wohl eher nichts.

PS.: Ich bemerke gerade, was mein Bluetooth Headset gemacht hat, es schaltet dann, wenn man in der Pipewire Gold Audio etwas ändert, auf den Sprechkopfhörer Modus um.

Den Sprechkopfhörer Modus benutze ich ja nicht zum hören von Audio bei Video oder Musik. Den reinen Kopfhörer Modus mit "High-Fidelity-Wiedergabe (ADP-Senke, Codec AAC)", das ist der Modus in dem ich das Headset benutze. Und auf den lässt sich erst nach trennen der Bluetooth Verbindung und wieder verbinden zurückstellen. Eigentlich lässt sich das im Normalfall ohne Pipewire Gold Audio im laufenden Betrieb ohne Bluetooth trennen umstellen. Aber Pipewire Gold Audio entfernt diese Möglichkeit auf "High-Fidelity-Wiedergabe (ADP-Senke, Codec AAC)" zurück umzustellen. Nicht einmal "High-Fidelity-Wiedergabe (ADP-Senke, Codec SBC)" wird dann noch angeboten.

Mylin

(Themenstarter)
Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

trollsportverein schrieb:

... über die schicke GUI.

Geht auch vom Smartphone aus. 👍

Bilder

Mylin

(Themenstarter)
Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

  • GUI kann jetzt als PWA installiert werden und ist somit im Startmenü verfügbar.

  • Unterstützung für mehrere Sprachen, aktuell Englisch und Deutsch, mit automatischer Erkennung, kann mit "/?lang=xx" überschrieben werden.

  • Hell-/Dunkeldesign dem System folgend.

  • Denke es folgt noch eine automatische Erstellung einer .config, wenn ein Ausgabegerät aktiv ist, für das noch keine .config existiert.

  • Den Start des Backends werden ich wohl über einen systemd-trigger, nur wenn Audio wiedergegeben wird, umsetzen.

Mylin

(Themenstarter)
Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 486

Hallo zusammen,

inzwischen gibt es einen Release, aktuelle Version ist 1.0.2.

https://github.com/Mylinde/Pipewire-Gold-Audio

Features:

  • Desktop Umgebungs unabhängig, funktioniert im Browser oder als PWA

  • Hell-/Dunkel Design dem System folgend

  • Mehrsprachig, dem Browser folgend (kann mit ?lang=XY) überschrieben werden, aktuell unterstütze Sprachen Deutsch, Englisch, Türkisch

  • Python Abhängigkeiten als venv im Installationsverzeichnis ~/.local/share/goldaudio

  • Backend (gunicorn) wird über systemd Dienste nur bei einer Audiowiedergabe über einen der beiden Sinks aktiviert

  • Backup-/Reset Funktion

Primärer Verwendungszweck ist eine ressourenschonende Klanganpassung für Laptops.

Antworten |