PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
geier22

PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von geier22 » 16.03.2018 10:13:43

Ich ich ärgere mich schon länger über das sehr unterschiedliche Verhalten von Programmen, die über PA wiedergeben.

Dass ich nicht über PA und ALSA gleichzeitig wiedergeben kann, ist klar.

Das aber Programme dauerhaft Alsa blockieren, solange man sie nicht beendet, ist eine großes Ärgernis.

Beispiel:

Ich starte Firefox oder Waterfox und spiele etwas über YouTube ab. Der Kanal erscheint in pavucontrol.
Wenn ich die Wiedergabe anhalte oder auch den Tab schließe, bleibt der Kanal offen, und blockiert
die ALSA- Wiedergebe solange, bis ich das Programm komplett geschlossen habe.

Ganz anders verhalten sich Vivaldi, Audiacous, sowie andere Abspielprogramme und VM's unter Virtualbox:

Wenn ich die Wiedergabe ausschalte (Stopp) ist es nach unterschiedlichen Reaktionszeiten (bis ca. 10 sec) möglich,
über Alsa wiederzugeben.

Die Kanäle der VirtualBox- VM's müssen durch anschließendes Muten deaktiviert werden, sodass auch hier eine
ALSA Wiedergabe möglich ist.

Die PA- Kanäle von Vivaldi Audacious verschwinden dann von selbst aus pavucontrol.
Bei Deadbeef / VLC geschieht das sogar ohne Verzögerung nach dem Stoppen der Wiedergebe.

Es ist also so, dass das Handling der Audioausgabe über PA sehr unterschiedlich von den einzelnen
Programmen gehandhabt wird.
Aus meiner Sicht korrekt nur von VLC und DeadBeef (andere hab ich nicht getestet)

Die Frage, die ich habe ist, ob es möglich ist, das Verhalten von Firefox(Quantum 60.0b3) und Waterfox (56.0.4.1)
in dieser Hinsicht irgendwo zu beeinflussen.
Es ist mehr als lästig, den kompletten Browser schliessen zu müssen, um die ALSA - Wiedergabe möglich zu machen.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von scientific » 16.03.2018 10:51:13

geier22 hat geschrieben: ↑ zum Beitrag ↑
16.03.2018 10:13:43
Dass ich nicht über PA und ALSA gleichzeitig wiedergeben kann, ist klar.

Das aber Programme dauerhaft Alsa blockieren, solange man sie nicht beendet, ist eine großes Ärgernis.
Dann mache es halt richtig.

ALSA nimmt sich exklusiven Zugriff auf das Audio-Device. PA ebenfalls. Und solange Pulseaudio das Audiodevice in Beschlag hat, geht nix mit Alsa und umgekehrt.

Wenn du also PA und ALSA "parallell" nutzen möchtest (warum eigentlich?), solltest du es richtig konfigurieren.
In die Konfiguration von Alsa abzusteigen ist genau so komplex und undurchsichtig wie in jene von Pulseaudio. Die Dokumentationen die man findet sind oft veraltet oder so unverständlich, dass ich selber viele Jahre benötigte, da irgendwie dahinter zu steigen... und hab es bis jetzt nur mangelhaft begriffen. Aber für diesen Anwendungszweck reicht es.

Was du benötigst:

Alsa ist dein Haupt-Sound-System. Auch mit Pulseaudio. Pulseaudio gibt im Endeffekt über Alsa den Sound aus.
Pulseaudio setzt allerdings ein Alsa-Device als Default, welches sämtliche Alsa-Ausgaben direkt auf Pulseaudio umleiten, der das dann weiterverarbeitet und an Alsa zurück auf die Soundkarte(n) ausgibt.

Willst du mit einer Anwendung direkt auf Alsa ausgeben (warum eigentlich?), muss du das Default-Device für Pulseaudio in Alsa rausnehmen. Und ein neues Device erzeugen, in das Pulseaudio einspeist.
Und du brauchst ein Device für deine Anwendung in Alsa.

Pulseaudio ist in diesem Fall für Alsa nix anderes als eine weitere Anwendung.

Was du verlierst ist die Fähigkeit über einen einzigen "MAIN-Regler" das ganze System stumm zu schalten. (zumindest in Gnome zeigt der Lautstärkeregler auf Pulseaudio nicht auf Alsa). Du hast im schlimmsten Fall 4 Stellen, wo du die Lautstärke einer Anwendung stumm schalten kannst. In der Anwendung, in Pulseaudio und in Alsa im PA-Eingang und im Main-Lautstärkeregler von Alsa. Das ist ganz toll, wenn plötzlich ein Anwendung rausbrüllt, während deine bessere Hälfte telefoniert, und du findest auf die Schnelle nicht den richtigen Regler...

Bei dieser Lösung hast du aber auch erst recht wieder das Problem bei mehreren gleichzeitigen Logins, dass Alsa von User A beim Switch auf User B dessen Audio blockiert... Wenn du nur Pulseaudio nimmst, funktioniert das Switchen zwischen Usern hingegen tadellos. (Das ist übrigens ein Alsa-Problem!!! Keines von Pulseaudio!)

Einen Weg, wie es gehen könnte, habe ich hier beispielhaft an MPD für systemweite Wiedergabe im Wiki dargestellt:
Wiki-Artikel zum Thema MPD_als_Systemdienst_mit_ALSA_und_Pulseaudio

kaum macht man es richtig, funktioniert es auch schon!

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

geier22

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von geier22 » 16.03.2018 14:03:20

Hallo scientific
Erst mal danke für deinen ausführliche Antwort. Will mal versuchen ein paar Missverständnisse und Fragen auszuräumen:
scientific hat geschrieben: ↑ zum Beitrag ↑
16.03.2018 10:51:13
Wenn du also PA und ALSA "parallel" nutzen möchtest (warum eigentlich?), solltest du es richtig konfigurieren.
Ich will es ja nicht parallel nutzen, sondern nur nicht gezwungen sein, ausgerechnet meinen Browser erst mal zu schließen, bevor ich über Alsa (Ich nenne es mal Alsa Direkt) Musik hören kann.
Ich habe einen Haufen hochauflösende Musik (bis 192 kHz) die ich nicht downsamplen will, um sie über PA zu hören.was auf 48 kHz begrenzt ist.
Ich höre diese Musik ausschließlich über mein Mediacenter von JRiver.
Natürlich schalte ich dann alle anderen Musikquellen ab. Das funktioniertt bei meinen installierten Playern, in dem ich den Musikausgabe in dem Player stoppe. Der entsprechende Stream verschwindet dann im PA-Mixer. Dann kann ich mit dem Mediacenter direkt auf ALSA zugreifen. Nur Bei VM's muss ich zusätzlich noch den Kanal im MIxer muten.

Jetzt ist ein Wunder passiert:

Hatte in der Zeit mal kurz Debianapulse installiert und Firefox mit apulse firefox gestartet. Weil das nicht so funktionierte wie gedacht und ich auch keine Lust hatte, mit mit apulse genauer auseinander zu setzten hab ichs wieder deinstalliert.
Seitdem erscheint FF im Pulsemixer als AudioIPC Server: Audiostream
Und alles funktioniert so wie ich das will: Übertragung in FF Stopp ---> ALSA ist nutzbar. Brauch noch nicht mal den Tab zu schließen.
Da hat mir die Paketverwaltung hier auf z.Z. nicht nachvollziehbare Weise geholfen, ein Problem zu lösen. :hail:
Daher ist erst mal kein Lösungsbedarf.
Allerdings glaube ich nicht, dass dieses "Wunder" von Dauer ist. Bist zu irgend einem Update. :facepalm:

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von scientific » 16.03.2018 14:39:18

Du kennst die Möglichkeiten der Konfiguration von Pulseaudio?

https://askubuntu.com/questions/868842/ ... h-hardware
Ich will es ja nicht parallel nutzen, sondern nur nicht gezwungen sein, ausgerechnet meinen Browser erst mal zu schließen, bevor ich über Alsa (Ich nenne es mal Alsa Direkt) Musik hören kann.
Das verstehe ich nicht ganz. Damit du mit Alsa direkt Musik hören kannst, musst du Pulseaudio beenden, bzw. von PA das Device freigeben lassen.
Wenn der Browser aber an Pulseaudio noch das Signal schickt, dass noch eine Audioausgabe erfolgt (Auch wenn du nix hörst), dann kann PA das Device nicht freigeben. Das liegt aber nicht unbedingt an Pulseaudio, sondern am Browser.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

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

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von smutbert » 16.03.2018 15:37:14

Bitte nicht falsch verstehen - ich finde gut, dass es funktioniert, aber…
geier22 hat geschrieben: ↑ zum Beitrag ↑
16.03.2018 14:03:20
[…]
Hatte in der Zeit mal kurz Debianapulse installiert und Firefox mit apulse firefox gestartet. Weil das nicht so funktionierte wie gedacht und ich auch keine Lust hatte, mit mit apulse genauer auseinander zu setzten hab ichs wieder deinstalliert.
Seitdem erscheint FF im Pulsemixer als AudioIPC Server: Audiostream
[…]
…dass das das Problem löst ist echt verrückt. apulse dient ja offensichtlich dazu Pulseaudio-Anwendungen zu nutzen, ohne dass Pulseaudio laufen muss. Das heißt bei dir läuft das jetzt so ab

firefox → PA-Emulation (apulse) → Alsa (PA-plugin) → PA → Alsa (Treiber)


Die naheliegendere Lösung wäre es imho zuerst PA die gewünschten Sampleraten zu erlauben, zB 192 kHz und 176400 Hz (dann können alle üblichen Sampleraten wunderschön symmetrisch umgerechnet werden) und dann die Musik ebenfalls über PA abzuspielen.
PA wählt dann automatisch zwischen den beiden in »/etc/pulse/daemon.conf« festgelegten Sampleraten (default-sample-rate und alternate-sample-rate), allerdings kann PA nur die Samplerate wechseln, wenn gerade keine Wiedergabe läuft – Firefox würde also ohne apulse wieder das Umschalten verhindern, aber immerhin nur das Umschalten und nicht die komplette Wiedergabe.
(Eventuell willst du dann in Pulseaudio auch eine größere Sampletiefe (default-sample-format) festlegen, zB 24 oder 32 Bit)

geier22

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von geier22 » 16.03.2018 15:50:57

scientific hat geschrieben: ↑ zum Beitrag ↑
16.03.2018 14:39:18
Das verstehe ich nicht ganz. Damit du mit Alsa direkt Musik hören kannst, musst du Pulseaudio beenden, bzw. von PA das Device freigeben lassen.
Das ist ja gerade das unerklärliche an der Geschichte:
Vor der Installation und Deinstallation von Debianapulse konnte ich machen was ich wollte, Waterfox und auch Firefox waren
in der Kanalliste von PulseAudio pavucontrol vorhanden, und blockierten somit die Alsa Ausgabe.

Auch wenn ich sogar den Tab von z.B. YouTube schloss, von dem die Töne kamen.

Nachdem ich apulse installiert hatte, habe ich ein einziges Mal Firefox mit dem Befehl apulse firefox aufgerufen. weil sich nichts tat, und auch Alsa nicht mehr funktionierte, hab ich apulse wieder gelöscht. Danach war alles wie es sein sollte. Musik im Browser ausgeschaltet Device war freigegeben bzw. Verschwand aus der Liste.

Da aber Firefox und Waterfox vollkommen getrennte Konfigurationsverzeichnisse haben ~/.mozilla bzw. ~/.waterfox kann es an sich nicht am Browser liegen sondern irgendwo an PulseAudio, wie die "Mozillas" behandelt werden.

geier22

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von geier22 » 16.03.2018 16:10:42

grrr. was geschrieben und nicht abgeschickt. Also noch mal:
smutbert hat geschrieben: ↑ zum Beitrag ↑
16.03.2018 15:37:14
Die naheliegendere Lösung wäre es imho zuerst PA die gewünschten Sampleraten zu erlauben, zB 192 kHz und 176400 Hz (dann können alle üblichen Sampleraten wunderschön symmetrisch umgerechnet werden) und dann die Musik ebenfalls über PA abzuspielen.
PA wählt dann automatisch zwischen den beiden in »/etc/pulse/daemon.conf« festgelegten Sampleraten (default-sample-rate und alternate-sample-rate), allerdings kann PA nur die Samplerate wechseln, wenn gerade keine Wiedergabe läuft – Firefox würde also ohne apulse wieder das Umschalten verhindern, aber immerhin nur das Umschalten und nicht die komplette Wiedergabe.


Hab in der /etc/pulse/daemon.conf folgendes geändert, was aber nach Neustart und alleinigem Abspielen eines 192 kHz- Tracks im Mediacenter
keinen Effekt brachte.

Code: Alles auswählen

default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 192000
; default-sample-channels = 2
; default-channel-map = front-left,front-right
Der Output ist 44,1 kHz :(

Uppss Fewhler bemerkt :facepalm:

jetziger Stand, der aber auch nichts bewirkte:

Code: Alles auswählen

; default-sample-format = s16le
default-sample-rate = 44100
alternate-sample-rate = 192000
default-sample-channels = 2
; default-channel-map = front-left,front-right
Auf Konsolen deutsch :mrgreen: :

Code: Alles auswählen

~$ pactl list sinks short
0	alsa_output.usb-TEAC_TEAC_USB_AUDIO_DEVICE-02.iec958-stereo	module-alsa-card.c	s16le 2ch 44100Hz	RUNNING

geier22

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von geier22 » 16.03.2018 16:55:38

Nochmal geändert:

Code: Alles auswählen

default-sample-format = s16le
default-sample-rate = 192000
alternate-sample-rate = 48000
default-sample-channels = 2
; default-channel-map = front-left,front-right
Ergebnis: Der DAC springt schon beim Hochfahren auf 192 kHz
Und es sind nur noch 192 kHz Stücke abspielbar :facepalm:

Wieder Retoure --> jetzt werden plötzlich 192 kHz Stücke gespielt Alle andere Frequenzen werden auf 44.1 kHz gesampelt. :facepalm:
Muss ich da eventuell alles eingeben? Also etwa so:

Code: Alles auswählen

default-sample-rate = 44100
alternate-sample-rate = 88200
alternate-sample-rate = 96000
alternate-sample-rate = 176400
alternate-sample-rate = 192000

geier22

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von geier22 » 16.03.2018 17:11:47

so hab das jetzt eingegeben:

Code: Alles auswählen

default-sample-format = s16le
default-sample-rate = 44100
alternate-sample-rate = 88200
alternate-sample-rate = 96000
alternate-sample-rate = 176400
alternate-sample-rate = 192000
default-sample-channels = 2
Ergebniss:

192 kHz bleiben bei 192 kHz
176 kHz werden 44.1 kHz
96 kHz werden 192 kHz
88.2 kHz werden 44.1 kHz
48 kHz werden 192 kHz
44.1 bleiben bei 44.1 kHz

auffällig 48 --> 96 --> 192 sind ja jeweils nur durch den Faktor 2 und 4 getrennt.
Während die 176 und 88.2 khz da nicht rein passen

Aber so macht das irgendwie keinen Sinn

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von pferdefreund » 16.03.2018 19:14:17

Ich kann für das gleichzeitige Nutzen von verschiedenen Sound-Quellen immer wieder nur Jack empfehlen. Da kann man auch in der .asoundrc alles, was Alsa direkt verwendet, auf jack umleiten und mit jackeq hat man noch nen schönen 4-Kanal-Mixer mit Equalizer.
Hier mal meine .asoundrc mit dem Jack-Plugin. Da ich immer den jackeq laufen habe, leite ich alles, was alsa direkt ausgibt (Browser usw...) direkt auf den 4. Mixerkanal von Jackeq.

Code: Alles auswählen

pcm.rawjack {
    type jack
    playback_ports {
	0 jackEQ:c.4-in-L
        1 jackEQ:c.4-in-R
    }
}
pcm.jack {
    type plug
    slave { pcm "rawjack" }
    hint {
    description "JACK Audio Connection Kit"
    }
}
pcm.!default {
    type plug
    slave { pcm "rawjack" }
}

geier22

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von geier22 » 16.03.2018 19:38:33

@ pferdefreund
Ich glaube, ich werde Jack demnächst doch mal ausprobieren. Habe mich bisher mehr oder weniger darum gedrückt.

Jetzt habe ich aber noch einen Finalen Versuch gemacht:

Code: Alles auswählen

default-sample-format = s16le
default-sample-rate = 176400
alternate-sample-rate = 192000
default-sample-channels = 2
; default-channel-map = front-left,front-right
Nach dem MC anfänglich durcheinander kam, scheint es jetzt stabil und konstant so zu sein:
Die Abtastfrequenzen 44,1 88,2 176,4 werden mit durchweg 176,4 kHz wiedergegeben
Die Abtastfrequenzen 48; 96 und 192 kHz mit durchweg 192 kHz
das funktioniert aber nur, wenn ich keinen anderen Tonquellen aktiv habe. Dann klappt das Umschalten nicht mehr.
Wenn ich jetzt Radio höre wird das auch mit 176,4 kHz gemacht. Gerade habe ich mit MC ein 192 kHz gespielt und dann
auf Audacious umgeschaltet dann geht es mit 192 kHz statt 176,4 kHz weiter.

So wäre PulseAudio händelbar über alle Anwendungen hinweg. Aber dabei wird halt munter auf- und up- gesampelt.

Ist an sich nicht das was ich wirklich will. Werde es aber mal eine Weile laufen lassen, und und sehen wie praktikabel das ist.

Noch einen Frage zu Jack: werden in der Kombination Jack / Alsa eigentlich alle Abtastfrequenzen wiedergegeben ( bis 192 kHz) oder gibt es da Beschränkungen ?

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

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von smutbert » 16.03.2018 22:05:05

geier22 hat geschrieben: ↑ zum Beitrag ↑
16.03.2018 19:38:33
[…]
Nach dem MC anfänglich durcheinander kam, scheint es jetzt stabil und konstant so zu sein:
Die Abtastfrequenzen 44,1 88,2 176,4 werden mit durchweg 176,4 kHz wiedergegeben
Die Abtastfrequenzen 48; 96 und 192 kHz mit durchweg 192 kHz
das funktioniert aber nur, wenn ich keinen anderen Tonquellen aktiv habe. Dann klappt das Umschalten nicht mehr.
Wenn ich jetzt Radio höre wird das auch mit 176,4 kHz gemacht. Gerade habe ich mit MC ein 192 kHz gespielt und dann
auf Audacious umgeschaltet dann geht es mit 192 kHz statt 176,4 kHz weiter.[…]
Genau so ist es gedacht. Pulseaudio kann zwischen zwei Sampleraten wählen.

Um das Resampeln kommt man beim Mischen aus mehreren Quellen eben nicht herum. jack läuft nur mit einer fixen Samplerate.

geier22

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von geier22 » 16.03.2018 23:00:11

smutbert hat geschrieben: ↑ zum Beitrag ↑
16.03.2018 22:05:05
Genau so ist es gedacht. Pulseaudio kann zwischen zwei Sampleraten wählen.
Ok dann hab ich also in die richtige Richtung kombiniert und probiert. Mal wieder etwas tiefer in das Soundsystem getaucht :THX:
smutbert hat geschrieben: ↑ zum Beitrag ↑
16.03.2018 22:05:05
Um das Resampeln kommt man beim Mischen aus mehreren Quellen eben nicht herum. jack läuft nur mit einer fixen Samplerate.
Dann ist Jack auch keine Alternative für das, was ich eigentlich will.

Alsa hat dann eben doch irgendwo Vorteile. Was reinkommt, kommt auch raus Ich werde mich also irgendwann entscheiden müssen
zwischen der "reinen Lehre" mit Unbequemlichkeiten beim Wechsel der Soundquelle oder problemloses Wechseln mit fleißigem Up- und Downsampling.

So ganz zufrieden bin ich aber noch nicht. Es bleibt die Frage, warum einzig und allein die beiden "Mozillas" (Firefox und Waterfox) Probleme beim umschalten PA --> Alsa (direkt) machen und ihr PA- Kanal nicht von allein geschlossen wird (inzwischen ist das Wunder von oben vorbei) Selbst der Browser Vivaldi verhält sich anders.

Edit:

Es scheint, als hätte ich auch für die "Mozillas" eine Lösung gefunden (zumindest funktioniert sie momentan) :mrgreen: :mrgreen:

in about:config gibt es 2 Sound Einträge:

Code: Alles auswählen

accessibility.typeaheadfind.enablesound:true
accessibility.typeaheadfind.soundURL;beep
Setzt man den 1. auf "false"
Schliesst sich der PA- Kanal sofort.

die Auswirkungen dieser Konfiguration werden hier beschrieben:
http://kb.mozillazine.org/Accessibility ... nablesound
True
If the typed character doesn’t match anything on the page (and the user has typed at least one character previously), play an alert sound. (Default)
False
Never play an alert sound. (This is the same as setting accessibility.typeaheadfind.soundURL to an empty string.)
[edit]
Mal sehen, ob das Bestand hat :mrgreen:

Übrigens:

Der Debianpulsemixer der inzwischen bei mir in einem exclusiven Terminal (Debiansakura) laüft , ist inzwischen mein Liebling und - finde ich jedenfalls - übersichtlicher als pavucontrol. zum Schnellen Umschalten und Muten - optimal :THX:
Bild

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: PulseAudio: unterschiedliches Verhalten von Apps blockiert ALSA

Beitrag von pferdefreund » 17.03.2018 14:36:19

na ja, wenn jack nur eine samplerate kann, dann nimmt man die, die zu der Quelle passt, wo es auf optimalen Klang ankommt. Youtube-sound ist eh nur Mittelwelle-Qualität.

Antworten