[GELÖST] Pulseaudio und Alsa

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

[GELÖST] Pulseaudio und Alsa

Beitrag von scientific » 09.11.2014 13:49:58

Hi!

Da man heute offenbar wirklich nur mehr schlecht um Pulseaudio herumkommt, muss ich mich doch zwangsläufig wieder etwas damit beschäftigen.

Mein Setting:

Ich habe mpd laufen. Dieser hat einen eigenen Regler in Alsa bekommen und soll auch Musik spielen können, wenn kein User eingeloggt ist. Aber auch, wenn ein User eingeloggt ist

Meine Erfahrungen bisher mit pulseaudio und mpd sind, dass entweder mpd Musik spielt ODER Anwendungen von eine User gestartet. Zusätzlich habe ich bei früheren Versuchen herausgefunden, dass mpd als User gestartet, keine Musik spielt, wenn niemand eingeloggt ist.

Jetzt habe ich einmal Pulseaudio probehalber installiert (kam mit Cinnamon mit). Und sobald Pulseaudio nur installiert ist, ignoriert Alsa offenbar /etc/asound.conf. Egal ob nun Pulseaudio läuft oder nicht (pulseaudio -k, autorespawn = no)
Deinstalliere ich Pulseaudio, sind wieder die ganzen pcm aus der asound.conf vorhanden...

Ich würde jetzt gerne folgendes Setting aufbauen, scheitere aber wunderbar... :-/

Alsa hat eigene Devices für mpd (läuft als user mpd) und pulseaudio.
Ich denke einmal, mit dem dmix-plugin mixt Alsa dann den Output von mpd und einer allfällig laufenden X-Session, in der Pulseaudio als Daemon eines (oder gar mehr eingeloggter) User zusammen und ich kann Musik und auch Sound-Ausgabe von z.B. Icedove (Email-Benachrichtigung), VLC, Iceweasel (Youtube, Benachrichtigungstöne von div. Websites) gleichzeitig hören.

Wie mache ich das am besten?

lg scientific
Zuletzt geändert von scientific am 10.11.2014 10:08:02, insgesamt 1-mal geändert.
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: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Pulseaudio und Alsa

Beitrag von smutbert » 09.11.2014 15:15:04

Das ist ein fieses Problem. Ohne dir die Lösung präsentieren zu können, kann ich vielleicht ein paar Mosaiksteinchen beisteuern:
  • /etc/asound.conf
    Die funktioniert hier mit wie ohne pulseaudio gleichermaßen. Nur dass pulseaudio das !default-Gerät ignoriert und sich alleine nach seiner eigenen Konfiguration richtet.
    Allerdings könnte ich mir vorstellen, dass viele Anwendungen manche Audio/Alsa-Einstellungsdialoge verstecken, wenn sie etwas von einem installierten pulseaudio mitbekommen, weil das ohnehin das meiste übernimmt — diesen Verdacht habe ich aber in keinster Weise überprüft.
  • Pulseaudio und dmix
    ich kenne keine Möglichkeit pulseaudio an dmix ausgeben zu lassen, so dass sich das gleiche Gerät gleichzeitig von ALSA aus und ohne Umweg über pulseaudio ansprechen ließe. (Das soll aber wieder nicht heißen dass es keinen Weg gibt, aber es paßt meiner Auffassung nach auch nicht zu pulseaudio)
  • Pulseaudio und mpd
    Pulseaudio sorgt (mit consolekit/systemd-login?) dafür, dass nur ein aktiver angemeldeter Nutzer Audio ausgeben kann, wovon ich auch schon ein paar Mal überrascht worden bin. Es bleiben imho zwei gangbare Wege
    • Wenn pulseaudio, wie es standardmäßig der Fall ist, als Userdaemon läuft, kann man mit paprefs den „Netzwerkzugriff auf lokale Audio-Geräte erlauben“ und in weiterer Folge mpd an den vom User gestarteten Pulseaudio-Daemon ausgeben lassen.
      Der offensichtliche Nachteil liegt darin, dass das wieder nicht funktioniert, wenn keine Benutzer angemeldet ist, der außerdem diesen Zugriff erlaubt.
    • Man könnte pulseaudio als systemweiten Daemon laufen lassen, was allerdings wieder einige Nachteile hat und dann sowohl als mpd, wie auch als normal angemeldeter Benutzer über diesen Pulseaudio-Daemon Audio ausgeben.

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

Re: Pulseaudio und Alsa

Beitrag von scientific » 09.11.2014 15:36:36

Also wenn ich http://de.wikipedia.org/wiki/PulseAudio richtig verstehe, nutzt Pulseaudio AlsaTreiber als Ausgabe.
Ich verstehe aber den Unterschied zwischen "Alsa" und "Alsa-Treiber" im Absatz "Funktionsweise" auf Wikipedia nicht.

Ich hab übrigens eine Möglichkeit gefunden, wie ich halbwegs schön übers Netzwerk (localhost) vom User mpd auf den eingeloggten User streamen kann. Und zwar bei den Archlinuxern https://wiki.archlinux.org/index.php/MP ... pd_user.29

Hab dann noch ein zweites Output bei mpd erstellt

Code: Alles auswählen

audio_output {
	type		"pulse"
	name		"Venus Pulse Output 2"
}
audio_output {
	type		"pulse"
	name		"Venus Pulse Output"
	server		"127.0.0.1"
}
Mit Output 2 kann ich den mpd auch ohne eingeloggtem User hören. Aber es ist nur eine Krücke... Denn loggt sich ein User ein, hört der wieder nix, solange bis ich Output 2 deaktivere und Output aktiviere... :-/

Also nicht das, was ich möchte.

Pulseaudio ist echt eine Pest...

Was ich nicht verstehe, warum wird die asound.conf ignoriert, sobald pulseaudio installiert ist? Wie gesagt, wenn der nicht deinstalliert ist, gibt z.B. mpd über mpdvol (ein softvol) seinen Sound aus. Kaum ist pulseaudio installiert, ist mpdvol nicht einmal mehr per aplay ansprechbar (Gerät nicht gefunden)...
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

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

Re: Pulseaudio und Alsa

Beitrag von scientific » 09.11.2014 16:02:17

Hab grad was rausgefunden...
Wenn Pulseaudio installiert ist, kann Alsa das nicht mehr

http://www.alsa-project.org/alsa-doc/al ... hooks.html

Code: Alles auswählen

######################################
## Default
######################################

pcm.!default {
    type plug
    slave.pcm "dmixer-intel"
}

@hooks [
	{
		func load
		files [
			"/usr/local/share/alsa/asound.card.intel"
			"/usr/local/share/alsa/asound.special"
		]
		errors false
	}
]
Füge ich die beiden Konfigurationsfiles manuell in eines zusammen und setze es als /etc/asound.conf, Funktionieren die Alsa-Geräte, Mixer und softvols wieder...
Ist Pulseaudio deinstalliert, funktioniert der hook func load wieder. 8O

Also gut. Mit installiertem PA Und der manuell zusammengefügten Config gibt mpd zumindest schon wieder einmal Musik "normal" aus.
Ich werde weiter testen.

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

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

Re: Pulseaudio und Alsa

Beitrag von smutbert » 09.11.2014 16:04:20

Pulseaudio verhält sich gegenüber ALSA einerseits im wesentlichen wie eine ganz normale Anwendung, die Ton ausgeben will, nur dass Pulseaudio dmix nicht verwendet sondern direkt die Soundkarten anspricht, wie man es auch in Alsa mit "hw:x,y" machen würde.

Zusätzlich installiert pulseaudio ein ALSA-Plugin, das Audio eigentlich nur an Pulseaudio weiterleitet und so ALSA-Anwendungen die Möglichkeit gibt Audio an Pulseaudio auszugeben und von Pulseaudio aufzunehmen. Damit einher gehen einige ALSA-Konfigurationsdateien, die dieses ALSA-Plugin zum Standardwiedergabe- und -aufnahmegerät machen.
scientific hat geschrieben:Was ich nicht verstehe, warum wird die asound.conf ignoriert, sobald pulseaudio installiert ist? Wie gesagt, wenn der nicht deinstalliert ist, gibt z.B. mpd über mpdvol (ein softvol) seinen Sound aus. Kaum ist pulseaudio installiert, ist mpdvol nicht einmal mehr per aplay ansprechbar (Gerät nicht gefunden)...
Das kann ich nicht ganz nachvollziehen, wie gesagt, die asound.conf wird bei mir mit und ohne Pulseaudio ausgewertet, aber dein neuer Beitrag bestätigt das ja bereits…



Ich gebe Musik mit mpd einfach direkt über ALSA an einer anderen Soundkarte aus, was mir insofern paßt, weil ich sowieso nicht will, dass gleichzeitig andere Anwendungen auf diesem Gerät Töne ausgeben können. Für pulseaudio und damit Systemsounds, Töne von Webseiten,… habe ich die im Monitor eingebauten Lautsprecher, die sich mit den Hotkeys auch schnell stumm schalten lassen.

Will man aber beides über die gleiche Soundkarte wiedergeben, hilft dieses Vorgehen natürlich nichts, deshalb halte ich — auch wenn es ein paar Nachteile hat — den systemweiten Pulseaudio-Daemon in deinem Fall für die beste Lösung.

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

Re: Pulseaudio und Alsa

Beitrag von scientific » 09.11.2014 17:40:39

Ich bin ja nicht ganz so fit wie du bzgl. Sound in Linux (bei weitem nicht!!)

Aber schau dir einmal das hier an:
https://wiki.archlinux.org/index.php/Pu ... pe_to_ALSA

Unter debian gibt es ja das Paket "pulsaudio-alsa" nicht. Und das Studium des arch-Paketes zeigte mir, dass in debian auch nur die Datei /usr/share/alsa/pulse-alsa.conf installiert wird, welche folgendes beinhaltet:

Code: Alles auswählen

# This file is referred to by /usr/share/alsa/pulse.conf to set pulseaudio as
# the default output plugin for applications using alsa when PulseAudio is
# running.

pcm.!default {
    type pulse
    hint {
        show on
        description "Playback/recording through the PulseAudio sound server"
    }
}

ctl.!default {
    type pulse
}
Wenn ich dies alles auskommentiere, dann sollte ich ja den genannten Effekt eines nicht installierten pulseaudio-alsa-Paketes aus dem Link bekommen.

Damit sollte ich dann auch Pulseaudio z.B.

Code: Alles auswählen

   load-module module-alsa-sink device="dmix" tsched=1
in der /etc/pulse/default.pa mitgeben können...

Aber leider ist diese Ressource belegt, wenn mpd läuft und ich z.B. mit aplay -Ddmix einen Sound abspielen möchte...
Mit der genannten Konfiguration im Link sollte es ja möglich sein, dass Pulseaudio nur dann gestartet wird, wenn z.B. Cinnamon läuft und nicht mein FVWM... Und dann sollte PA einfach über Alsa ausgeben und sich zu den "restlichen Soundstreams" "dazumischen"... oder versteh ich da was grundsätzlich falsch?

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

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

Re: Pulseaudio und Alsa

Beitrag von smutbert » 09.11.2014 18:06:41

mit ALSA komme ich zwar inzwischen gut zurecht, aber mit Pulseaudio sieht das anders aus. Weil mich das so oft überrascht und ich auch sehr gut ohne auskomme, wird sich das wohl auch nicht so schnell ändern :mrgreen:


Das jedenfalls…

Code: Alles auswählen

…
pcm.!default {
    type pulse
    hint {
        show on
        description "Playback/recording through the PulseAudio sound server"
    }
}
…
…sorgt nur dafür, dass für ALSA-Anwendungen das default-Gerät pulseaudio ist, also das ALSA-Plugin und sie über diesen Umweg ebenfalls den Ton über Pulseaudio ausgeben:
  • ALSA-Anwendung → ALSA (Pulse-Plugin) → Pulseaudio → ALSA (Hardware/Teiber)
Entsprechend auch das ctl.!default, das es möglichst die Pulseaudio-Lautstärke über ALSA zu regeln. Anwendungen, die schon Pulseaudio unterstützen haben diesen Umweg ja nicht notwendig:
  • Anwendung → Pulseaudio → ALSA (Hardware/Teiber)
Dieser Abschnitt hat jedenfalls nichts damit zu tun welches Gerät Pulseaudio für sich in Beschlag nimmt. (Wobei ich es ihm, obwohl ich es gar nicht verwende, nicht hoch genug anrechnen kann, dass es Gerät, wenn keine Wiedergabe läuft schließt)


Ob/Wie man die Pulseaudioausgabe auf dmix umbiegen kann, weiß ich nicht. Der Versuch das Modul zu laden endet bei mir mit

Code: Alles auswählen

$ pactl load-module module-alsa-sink device="swapped"
Fehlgeschlagen: Modulinitialisierung fehlgeschlagen
wobei swapped ein von mir definiertes, gültiges und unbelegtes ALSA-Gerät ist, über das ich auch bei laufendem Pulseaudio problemlos wiedergeben kann. Im Log steht dann

Code: Alles auswählen

pulseaudio[958]: Failed to open module module-alsa-sink=swapped.so: module-alsa-sink=swapped.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
pulseaudio[958]: Failed to open module "module-alsa-sink=swapped".
damit kann ich dann gar nichts mehr anfangen ­— natürlich gibt's keine swapped.so :|


prinzipiell sollte das also schon funktionieren, nur meine Motivation mich mit Pulseaudio herumzuärgern hält sich sehr in Grenzen. Trotzdem freue ich mich darauf, Deinen Post zu lesen, der die Lösung beschreibt, die Du gefunden hast ☺[/s]

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

Re: Pulseaudio und Alsa

Beitrag von smutbert » 09.11.2014 18:17:19

Hm...

Code: Alles auswählen

$ pactl load-module module-alsa-sink device="swapped"
Fehlgeschlagen: Modulinitialisierung fehlgeschlagen
wobei swapped ein von mir definiertes, gültiges und unbelegtes ALSA-Gerät ist, über das ich auch bei laufendem Pulseaudio problemlos wiedergeben kann. Im Log steht dann

Code: Alles auswählen

pulseaudio[958]: Failed to load module "module-alsa-sink" (argument: "device=swapped"): initialization failed.
Den Fehler finde ich auch in ubuntuforen, allerdings ohne Lösung. 'Prinzipiell sollte so etwas also schon funktionieren, aber meine Motivation mich mit Pulseaudio herumzuärgern hält sich sehr in Grenzen. Trotzdem freue ich mich darauf, Deinen Post zu lesen, der die Lösung beschreibt, die Du gefunden haben wirst ☺
Zuletzt geändert von smutbert am 10.11.2014 08:19:21, insgesamt 1-mal geändert.

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

Re: AW: Pulseaudio und Alsa

Beitrag von scientific » 09.11.2014 20:34:47

Ich kann jetzt witzigerweise nicht mehr auf andere Geräte zugreifen, wenn mpd läuft.
Ein IPC und Semaphore-Fehler... Aber leider hab ich grad keine Zeit, dem nachzugehen...
Hab in einem Gentooforum dazu etwas gefunden.

Sobald ich wieder am Rechner bin, kriegst du Infos darüber. ;-)

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

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

Re: Pulseaudio und Alsa

Beitrag von scientific » 10.11.2014 10:07:48

Soderla.

Warum alsa sich aufhängt, meine /etc/asound.conf mit dem @hook mit func files einzulesen, ist mir nicht klar.
Die IPC-Semaphore-Geschichte konnte ich jetzt auch lösen.
Angeregt durch https://forums.gentoo.org/viewtopic-t-5 ... art-0.html
Ich habe in /usr/share/alsa/alsa.conf nach ipc_key gegreppt und wurde auch prompt fündig.
Diesen Key hab ich nach hex konvertiert und in der Ausgabe von "ipcs" gesucht und gefunden. Die Berechtigungen waren auf 0660.
Also in /usr/share/alsa/alsa.conf den Eintrag

Code: Alles auswählen

defaults.pcm.ipc_perm 0660
auf

Code: Alles auswählen

defaults.pcm.ipc_perm 0666
geändert, und schon konnte ich ein File über z.B. das in der asound.conf eingebaute "softvol"-Gerät abspielen.
Hab dann in der default.pa (aus dem Link am Beginn des Threads) auf

Code: Alles auswählen

    load-module module-alsa-sink device="dmix" tsched=1
geändert.

Und siehe da... :-) Pulseaudio ist jetzt für Alsa nix anderes als ein weiterer Stream. Ich kann mpd wunderbar über mpdvol (ein softvol) ausgeben und regeln lassen und in vlc Pulse-Audio als Audio-Device gewählt gibt über Pulseaudio aus (pavucontrol!!) und mpd spielt weiterhin Musik ab. :)

Also ich betrachte meine Aufgabenstellung vorläufig als gelöst.

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

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

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von scientific » 10.11.2014 12:47:38

Ich habe jetzt folgendes in meiner /etc/asound.conf eingetragen

Code: Alles auswählen

### mpd-server ####
pcm.mpdvol {
        type softvol
        slave.pcm "default"
        control {
                name "MPD"
                card 0
        }
        hint {
                show on
                description "MPD-Mixer"
        }
}

ctl.mpdvol {
    type hw
    card "snd_card-intel"
}

### PulseAudio ####
pcm.pvol {
        type softvol
        slave.pcm "default"
        control {
                name "PulseAudio"
                card 0
        }
        hint {
                show on
                description "PulseAudio-Mixer"
        }
}

ctl.pvol {
    type hw
    card "snd_card-intel"
}
Und in /etc/pulse/default.pa steht das:

Code: Alles auswählen

## from:
## https://wiki.archlinux.org/index.php/PulseAudio/Examples#PulseAudio_as_a_minimal_unintrusive_dumb_pipe_to_ALSA
# Replace the *entire* content of this file with these few lines and
# read the comments

.fail
    # Set tsched=0 here if you experience glitchy playback. This will
    # revert back to interrupt-based scheduling and should fix it.
    #
    # Replace the device= part if you want pulse to use a specific device
    # such as "dmix" and "dsnoop" so it doesn't lock an hw: device.
    
    # INPUT/RECORD
    load-module module-alsa-source device="dsnoop" tsched=1
    
    # OUTPUT/PLAYBACK
    load-module module-alsa-sink device="pvol" tsched=1 
    
    # Accept clients -- very important
    load-module module-native-protocol-unix

.nofail
.ifexists module-x11-publish.so
    # Publish to X11 so the clients know how to connect to Pulse. Will
    # clear itself on unload.
    load-module module-x11-publish
.endif
Und siehe da... Wenn ich in vlc Pulseaudio als Audio-Device wähle, sehe ich in pavucontrol, dass die Ausgabe tatsächlich über Pulseaudio geht. Ich kann die Lautstärke dort auch ändern.
UND
In qasmixer kann ich die Lautstärke von Pulseaudio mit dem Schieberegler "PulseAudio" auch verändern.

MPD gibt über mpdvol aus und nutzt den Regler MPD von Alsa.

Ich stelle fest, meine Aufgabenstellung dürfte wirklich gelöst sein und ich kann PA zusätzlich zu Alsa nutzen und mpd als Systemdienst laufen lassen.

Wenn ich jetzt noch Lust habe, werde ich mich noch mit den Streaming-Funktionen von Pulseaudio beschäftigen.

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

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

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von scientific » 10.11.2014 17:45:41

:evil:

Jetzt müllt mir Pulseaudio das Log voll... Ich hab ein Skript, dass mir jede Sekunde mit amixer den Status von "Master" abfragt, damit ich in Fvwm die aktuelle Lautstärke anzeigen kann.
Aber jeder amixer-Aufruf startet kurz Pulseaudio, welches mit eine riesen Hallo sich im syslog meldet...

Code: Alles auswählen

Nov 10 17:36:21 venus pulseaudio[14503]: [pulseaudio] sink.c: Default and alternate sample rates are the same.
Nov 10 17:36:21 venus rtkit-daemon[1853]: Supervising 2 threads of 1 processes of 1 users.
Nov 10 17:36:21 venus rtkit-daemon[1853]: Successfully made thread 14505 of process 14503 (/usr/bin/pulseaudio) owned by '1000' RT at priority 5.
Nov 10 17:36:21 venus rtkit-daemon[1853]: Supervising 3 threads of 1 processes of 1 users.
Nov 10 17:36:21 venus pulseaudio[14503]: [pulseaudio] sink.c: Default and alternate sample rates are the same.
Nov 10 17:36:21 venus rtkit-daemon[1853]: Supervising 3 threads of 1 processes of 1 users.
Nov 10 17:36:21 venus rtkit-daemon[1853]: Successfully made thread 14506 of process 14503 (/usr/bin/pulseaudio) owned by '1000' RT at priority 5.
Nov 10 17:36:21 venus rtkit-daemon[1853]: Supervising 4 threads of 1 processes of 1 users.
Nov 10 17:36:23 venus rtkit-daemon[1853]: Successfully made thread 14575 of process 14575 (/usr/bin/pulseaudio) owned by '1000' high priority at nice level -11.
Nov 10 17:36:23 venus rtkit-daemon[1853]: Supervising 1 threads of 1 processes of 1 users.
Das jede Sekunde...

Kann ich Pulseaudio zum Schweigen bringen, oder verhindern, dass amixer Pulseaudio überhaupt anwirft?

[EDIT]
Habe /etc/pulse/daemon.conf von

Code: Alles auswählen

log-level = notice

auf

Code: Alles auswählen

log-level = warning
geändert.
Jetzt ist Stille.
[/EDIT]


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

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

Re: [GELÖST] Pulseaudio und Alsa (Verweis auf Wiki)

Beitrag von scientific » 11.11.2014 14:10:18

(Doppelpost!!!)
Ich habe einen neuen Wikiartikel verfasst. Dieser löst das mühselige Problem, MPD als systemweiten Dienst mit pulseaudio als "per-User-Dienst" über eine spezielle Alsa-Konfiguration zu betreiben.

https://wiki.debianforum.de/MPD_als_Sys ... Pulseaudio

Ich bitte um ein Review, ob es nach dieser Anleitung funktioniert (ob ich etwas vergessen habe)!

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

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

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von smutbert » 11.11.2014 19:05:50

Gleich in der Einführung ist ein kleiner, unbedeutender Fehler: eine aktive X-Session ist nicht notwendig, es genügt, wenn der Benutzer, unter dessen Account Pulseaudio läuft, auf dem aktiven VT (auch im Textmodus) angemeldet ist.

Die Zeile

Code: Alles auswählen

defaults.pcm.ipc_perm 0660
würde ich nicht in /usr/share/alsa/alsa.conf ändern sondern stattdessen

Code: Alles auswählen

defaults.pcm.ipc_perm 0666
an den Beginn der asound,conf stellen (mir behagt es nicht Dateien unterhalb von /usr zu verändern). Eigentlich sollte aber keines von beiden notwendig sein, weil du die Berechtigungen ja schon im dmixer-Abschnitt der asound.conf gesetzt hast.


Ganz zu Ende habe ich den Artikel nicht gelesen, aber sonst kann ich nur sagen: Danke. Es ist schön alles, was dazu notwendig ist an einer Stelle zu finden und die Arbeit so einen doch recht komplizierten und langen Artikel zu schreiben, hätte ich mir nie angetan.

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

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von scientific » 11.11.2014 19:12:40

Ich muss es noch einmal probieren mit dem ipc_perm... Mir war so, als ob dmix nicht getan hat... Werde das testen und dann anpassen.

Und was den langen Artikel angeht... Ich hab schon SO viele gute Artikel lesen dürfen, die mir unheimlich weiter geholfen haben, mein System so hinzubekommen, wie ICH es wollte :) Ich möchte einfach auch der Community etwas zurückgeben. Und offenbar hab ich immer so spezielle Anforderungen und Aufgaben, dass ich speziell dazu nie wirklich gute Zusammenfassungen finde. Ergo... :) Ich schreibe für die Nachwelt.

lg scientific

PS: Im deutschen Debianwiki ist nicht erwartungsgemäß wenig los und einige Artikel empfinde ich eher halbseiden und eines Debian nicht würdig... Und gute Qualität kann man nicht einfordern sondern nur selber produzieren. ;-)
PPS: Artikel im Wiki wurde angepasst.
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

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

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von scientific » 12.11.2014 21:06:41

Hmmm...

Mittlerweile dürfte Pulseaudio sogar auf meinem Gerät Problemlos arbeiten. (Versuche den sicher seit über 5 Jahren immer wieder einmal auszuprobieren.)

Ich hab mir jetzt noch ein Pulseaudio-Output für MPD gemacht. Und nun kann ich MPD wahlweise direkt über Alsa oder über den Umweg von Pulseaudio ausgeben, und damit sogar dessen Streaming-Funktionen verwenden.

Und siehe da... sogar mit meinem kleinen Bluetooth-Lautsprecherchen funktioniert das (sowohl über Bluetooth als auch über USB). Auch das Umschalten im laufenden Betrieb. :D

Das einzige was grad noch seltsam ist, ich hab kein virtuelles Gerät zur simultanen Ausgabe auf allen Soundkarten, obwohl der Haken in paprefs gesetzt ist.

Welches Modul ist in Pulseaudio dafür zuständig? Ich habe ja nur eine reduzierte default.pa ggü der originalen Konfiguration...

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

artemis
Beiträge: 447
Registriert: 21.12.2005 23:11:11

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von artemis » 12.11.2014 22:59:32

Also dass Änderungen per paprefs nicht wirken hatte ich auch schon mal. Hatte vorher mit PulseAudio rumgespielt und dabei auch die Dateien unter /etc/pulse/ geändert. Hab dann einfach das Paket pulseaudio gelöscht (purge) und neu installiert. Danach ging es :?

Bis dann,
artemis

artemis
Beiträge: 447
Registriert: 21.12.2005 23:11:11

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von artemis » 12.11.2014 23:05:29

Hab überlesen, dass deine default.pa ja gewollt geändert ist. Dann bringt das leider wohl nix...

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

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von smutbert » 13.11.2014 08:48:13

scientific hat geschrieben:Welches Modul ist in Pulseaudio dafür zuständig? Ich habe ja nur eine reduzierte default.pa ggü der originalen Konfiguration...
module-combine-sink

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

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von scientific » 14.11.2014 17:52:33

smutbert hat geschrieben:
scientific hat geschrieben:Welches Modul ist in Pulseaudio dafür zuständig? Ich habe ja nur eine reduzierte default.pa ggü der originalen Konfiguration...
module-combine-sink
Vielen Dank, das war es :)
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

villeneuve
Beiträge: 2
Registriert: 08.03.2021 14:48:56

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von villeneuve » 08.03.2021 15:03:39

@scientific Hi, also wenn ich es richtig verstehe bist Du der Autor des sehr interessanten Wiki-Artikels unter https://wiki.debianforum.de/MPD_als_Sys ... Pulseaudio . Könntest Du da bitte Informationen ergänzen was zu tun ist, wenn man (eine) andere Soundkarte(n) verwendet? So wie der Artikel jetzt ist hilft er mir nur insofern, daß er das Grundprinzip darlegt, aber ich stehe total auf dem Schlauch wie die asound.conf aussehen muß, wenn man keine Intel-Soundkarte verwendet. Danke schon mal für's Lesen :-)

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

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von smutbert » 08.03.2021 16:39:30

Willkommen im Debianforum,

bin gespannt ob sich scientific meldet – er war im Forum immerhin seit bald einem Jahr nicht mehr aktiv. Sollte er sich nicht melden, versuche ich gerne einzuspringen – in jedem Fall würde es weiterhelfen, wenn du die Ausgabe von

Code: Alles auswählen

aplay -l
postest.

Allerdings muss ich zugeben, dass ich je nach den Anforderungen eine andere Lösung bevorzugen würde – wenn also das Vorgehen nach scientifics Wikiartikel nicht in Stein gemeißelt ist, würde ich vorschlagen, dass du einen neuen Thread eröffnest.

villeneuve
Beiträge: 2
Registriert: 08.03.2021 14:48:56

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von villeneuve » 08.03.2021 21:35:41

Jo danke für den Willkommensgruß und Hilfsangebot, smutbert!

Dann hoffe ich mal, daß scientific über Aktivität in seinem Thread benachrichtigt wird.

Aber hier schon mal die Ausgabe von aplay -l:

Code: Alles auswählen

stp@stp-GA-MA785GT-UD3H:~$ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: SB [HDA ATI SB], Gerät 0: ALC889A Analog [ALC889A Analog]
 Sub-Geräte: 1/1
 Sub-Gerät #0: subdevice #0
Karte 0: SB [HDA ATI SB], Gerät 1: ALC889A Digital [ALC889A Digital]
 Sub-Geräte: 1/1
 Sub-Gerät #0: subdevice #0
Karte 1: HDMI [HDA ATI HDMI], Gerät 3: HDMI 0 [HDMI 0]
 Sub-Geräte: 1/1
 Sub-Gerät #0: subdevice #0
stp@stp-GA-MA785GT-UD3H:~$
Die Vorgehensweise aus dem Wiki-Artikel ist nicht in Stein gemeißelt, allerdings wüßte ich keine Alternative zu dem Vorhaben auf einem System mit regulär verwendeter Desktopumgebung gleichzeitig auch mpd mit bit-perfekter Ausgabe zu betreiben abgesehen davon zwei Soundkarten zu verwenden.
So wie ich es bisher habe (Gewaltmethode: mpd krallt sich einfach exklusiv die Soundkarte) klappt das zwar auch, aber solange mpd die Soundkarte blockiert spielt dann z. B. der Firefox kein Video mehr (tonlos) ab, was ich brauche. Allgemein sollten andere Programme nicht rumzicken nur weil mpd gerade Musik spielt. Jetzt weißt Du also was ich vorhabe und wenn Du dazu einen andere Idee her kannst Du sie gerne kundgeben :-)

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

Re: [GELÖST] Pulseaudio und Alsa

Beitrag von smutbert » 10.03.2021 00:49:05

Sobald die Audioausgaben unterschiedlicher Programme in Software gemischt werden – und das passiert hier entweder mit Pulseaudio oder mit Alsas dmix oder beiden – gibt es ein Format, also eine Samplerate, ein Sampleformat und eine bestimmte Kanalzahl, in das die Audiodaten konvertiert werden bevor sie gemischt und an die Soundkarte geschickt werden.

Bei scientifics Lösung werden die Audiodaten, von mpd und Pulseaudio kommend, an Alsas dmix-Plugin geleitet, bei dem sich dieses Format konfigurieren lässt.
Allerdings muss das Format der Wahl von der Soundkarte bzw. deren Treiber unterstützt werden und es lässt sich nur durch Ändern der asound.conf bzw. .asoundrc ändern.
Sollten also alle Dateien, die du mit mpd abspielen willst im gleichen Format vorliegen – gemeint ist wieder nicht flac, mp3, wav, ogg,... sondern Samplerate, Sampleformat und Kanalzahl – dann wäre das eine Möglichkeit deinem Ziel zumindest nahe zu kommen.

Mit einem reinen Pulseaudio-Setup kannst du dasselbe erreichen oder wahlweise Pulseaudio automatisch zu Beginn einer Wiedergabe die passendere von 2 Sampleraten wählen lassen. So lässt sich in vielen Situationen bei Dateien mit unterschiedlichen Sampleraten immerhin krummes Resampling zwischen der 22050, 44100, 88200,... Hz- und der 24000, 48000, 96000 Hz-Reihe vermeiden.
(Das Umschalten zwischen den beiden Sampleraten geht natürlich nicht während bereits eine andere Wiedergabe läuft.)

Der eigentliche Grund für scientifics Anleitung und andere ist die Schwierigkeit den benutzereigenen Pulseaudio-Daemon mit einem als systemweiten Daemon laufenden mpd zusammenspielen zu lassen. Am einfachsten lässt sich das machen, indem man mpd als benutzereigenen Daemon laufen lässt.
(Genau dieses Setup habe ich im Sinn gehabt, als ich nachgefragt habe ob das Vorgehen bereits fest steht.)
Will man dagegen mpd systemweit laufen lassen, zB um Musik hören zu können, wenn man gar nicht am PC angemeldet ist, gibt es andere Lösungen wie scientifics Anleitung, die das Problem recht originell umgeht.


noch ganz allgemein:
Ich bin nicht (mehr) versessen auf bitperfekte Wiedergabe. Resampling denke ich hat(te) unter Linux einen schlechten Ruf, weil Alsa das per default mit sehr simplen Algorithmen gemacht hat und es möglicherweise noch immer macht bzw. machen würde, denn normalerweise macht das ja jetzt Pulseaudio und das sehr gut.
Ich habe früher mpd über Alsa auf seine eigene Soundkarte zugreifen lassen und die restlichen Audioausgaben über Pulseaudio and die per DisplayPort angebundenen im Monitor eingebauten Lautsprecher laufen lassen. Inzwischen mache ich alles über Pulseaudio.
Nur bei meinem Bastelprojekt (viewtopic.php?f=15&t=160091&start=60#p1206916) bin ich bei dem Setup mit dem direkt über Alsa auf die Soundkarte zugreifenden mpd geblieben, aber mehr weil das ohne grafische Oberfläche und Desktopumgebung und dergleichen meiner Erfahrung nach schöner konfigurieren und steuern lässt.

Antworten