Talk:PulseAudio

From ArchWiki
Latest comment: 28 October by Erus Iluvatar in topic Pulseaudio system-mode

Equalizer module is unsupported

As of pulseaudio-7.0-2, loading the module-equalizer-sink module results in the following warning:

pulseaudio[535]: W: [pulseaudio] module-equalizer-sink.c: module-equalizer-sink is currently unsupported, and can sometimes cause PulseAudio crashes, increased latency or audible artifacts.
pulseaudio[535]: W: [pulseaudio] module-equalizer-sink.c: If you're facing audio problems, try unloading this module as a potential workaround.

Running qpaeq then makes PulseAudio crash with this error:

pulseaudio[535]: E: [pulseaudio] iface-module.c: Assertion 'pa_dbus_protocol_add_interface(m->dbus_protocol, m->path, &module_interface_info, m) >= 0' failed at modules/dbus/iface-module.c:309, function pa_dbusiface_module_new(). Aborting.

-- Lahwaacz (talk) 08:43, 28 September 2015 (UTC)Reply

This is not correct. Recently installed pulseaudio-7.0-2 and following the instructions in the wiki am successfully running the equalizer.
brettski (talk) 03:46, 13 October 2015 (UTC)Reply
This is odd. You should have at least seen the first warning in your journal... -- Lahwaacz (talk) 07:01, 13 October 2015 (UTC)Reply

Adding User to Audio Group

Currently, the article says, "There is no need to add your user to audio group, as it uses udev and logind to dynamically give access to the currently "active" user". That is a little heavy-handed; perhaps a wording like "There is usually no need..."? For instance, on one of my machines running pulse audio, I was unable to play any sounds as "me", but could using root. The server is running headless, and I access it over SSH. It's understandable that udev doesn't consider "me" the currently "active" user in this scenario. It is essential to know that adding a user to the audio group helps in this circumstance, so I appreciate the explicit mention of that group. Does my rewording make sense, or is there a better rewording? Lmat (talk) 14:29, 1 March 2016 (UTC)Reply

This looks like a reasonable rewording. Additionally I would considering explicitly describing in which cases it might make sense in the Wiki. -- Edh (talk) 14:56, 1 March 2016 (UTC)Reply
Agreed. Nothing worked "automatically" for me in XFCE. The solution was to manually enable/start pulseaudio.service. Also note: this section in the page is now called #Running -- ChrisDunder (talk) 01:05, 3 July 2020 (UTC)Reply

Default sink @DEFAULT_SINK@ and keyboard control

I got a hard time finding pactl set-sink-volume @DEFAULT_SINK@ -5%.

@DEFAULT_SINK@ comes very handy and fixes a long time frustration with PulseAudio (with sink indices changing each time I plug unplug a jack, or to get commands working across multiple machines with different sinks).

It will probably help more people to make some changes or add a Tip about @DEFAULT_SINK@ somewhere (PulseAudio#Keyboard volume control ?).

Only after finding about it, I found Xbindkeys#Xbindkeysrc. Maybe PulseAudio#Keyboard volume control could also Tip about Xbindkeys#Xbindkeysrc.

(I would have edit the page, if only I knew which changes was best: add a Tip and/or change the command lines and/or something else ?)

-- Gravemind2a (talk) 09:55, 4 September 2016 (UTC)Reply

I suppose changing the commands is the best approach. However for those who want to edit a specific sink a small note should be added. This is just my personal opinion on this matter. -- Edh (talk) 10:11, 4 September 2016 (UTC)Reply
I think it is better suited as a tip, because if you start directly with @DEFAULT_SINK@, it's not clear at all what the shortcut is for. -- Lahwaacz (talk) 11:07, 4 September 2016 (UTC)Reply
I've added the tip and edited the xbindkeys page to link to both PulseAudio and ALSA pages for alternative commands. -- Lahwaacz (talk) 11:37, 4 September 2016 (UTC)Reply
Thanks. I also discovered @DEFAULT_SOURCE@ (for microphone) and I've added tips in PulseAudio/Examples#Set default input sources and PulseAudio/Examples#Set the default output source -- Gravemind2a (talk) 11:55, 4 September 2016 (UTC)Reply
Hey, Gravemind2a, does amixer -q -D pulse sset Master 5%+ unmute work for you? Take a look at my comment right above yours, in this Talk page. --Denilsonsa (talk) 11:03, 4 September 2016 (UTC)Reply
Yes it works. But if it also works directly with PulseAudio @DEFAULT_SINK@, why go through alsa amixer ? (and also long time ago I had issues with fast repeating asynchronous amixer volume commands making left/right speaker unbalanced, that actually made me drop Alsa in favor to PulseAudio)-- Gravemind2a (talk) 11:29, 4 September 2016 (UTC)Reply


Networked audio

I have added a stub/section about sending/receiving audio through the network using PA. The relevant documentation is here. I have a working networked PulseAudio setup, it's available here as an ansible playbook, please allow for some time for me to port the most important information here. --Nodiscc (talk) 14:45, 21 November 2017 (UTC)Reply

Note: Some confusion may occur

confusion is even bigger after reading this. be more explicit, give examples, what is the advatage and aim of doing what they do? --UBF6 (talk) 10:11, 1 May 2018 (UTC)Reply

virtual surround sound

I think that there should be guide to setting up virtual surround sound (when you have 2 speakers). https://forum.manjaro.org/t/howto-setting-up-virtual-surround-sound-for-headphones/55918 —This unsigned comment is by Janat08 (talk) 16:58, 6 May 2019 (UTC). Please sign your posts with ~~~~!Reply

Could really use a Pre-Processing section

The web in general is pretty bad at giving advice for using microphones under Linux. So many questions are answered with tiny snippets that might have answered one person's question, but don't provide the background to understand how to use the tools. Things that could be covered are:

  • Adjusting channels - taking a mono microphone input and panning it to a specific stereo position, or downmixing a stereo microphone to a mono signal
  • Feeding in input through a filter, such as a compressor or limiter.
  • Turning a MIDI input into an analog signal

Surely there's a way to do at least some of these things without resorting to JACK?

Politas (talk) 03:27, 3 April 2020 (UTC)Reply

Mention Pipewire?

I think we should mention pipewire somewhere. For example in "Related Articles" and maybe also in a seperate section. Especially PipeWire#PulseAudio_clients.

G3ro (talk) 15:36, 28 February 2021 (UTC)Reply

Networked audio - New text

I don't agree on every change made here.

In particular:

  • Introduction: Actually you connect to a pulseaudio over network. This can be used to stream audio. It is also not limited to the LAN (though you probably shouldn't stream with this method over the internet).
  • Configuration: Instead of splitting between command and further options, I think we should combine it, so that the options are directly visible.
  • Cookies: "It is a requirement that both the client and server share the same cookie." Actually it is not, there are other modes available, so we should describe the possibilities as such. At least it should be: "By default the cookie method is used".
  • Selecting the Server: I think it was useful to mention that this is supposed to be "on the clientside"
  • Firewall: This should be mentioned as well "By default PulseAudio listens on port tcp/4713 for incoming connections, you may need to open this port in your firewall."

All in all I would have picked and expanded the old version.

G3ro (talk) 19:42, 10 March 2021 (UTC)Reply

I feel like the example service file is lacking the --system switch that actually starts pulseaudio in system-wide mode. Please correct me if I'm wrong; I couldn't get it to work without it.
Schwukas (talk) 13:49, 28 June 2021 (UTC)Reply

Networked audio - Placing

While I agree that the network setup is no usual usecase and thus can be placed in some "further usecases" section; I also think that the Examples page is a bit of a mess.

I would suggest to have a more structured seperate page for this. Thoughts?

Edit: In addition there are multiple other methods for networked audio, so this might be mentioned in a note.

G3ro (talk) 20:02, 13 March 2021 (UTC)Reply

Well, I'd say everything PulseAudio is a mess :P I don't see a good reason to create too many subpages for each configuration topic. The PulseAudio/Examples page should be cleaned up or at least reorganized to give better overview of the different topics. Anyway, we can decide later if the final content fits into the page or a separate page is needed. -- Lahwaacz (talk) 22:19, 13 March 2021 (UTC)Reply
I agree :D. A restructure of PulseAudio/Examples would probably best.
G3ro (talk) 14:10, 14 March 2021 (UTC)Reply

system.pa.d and user config

I'm very curious about this quote "It is strongly suggested not to edit system-wide configuration files, but rather edit user ones." In general I agree that editing system-wide configuration files is not ideal because they can become stale or crufty as the package is updated. But why only use user ones instead? The latest system.pa automatically loads scripts from /etc/pulse/system.pa.d, so you can still customize your system-wide config without modifying the package-owned one (as long as you only want to add stuff).

I think the article should mention this as an alternative, unless I'm missing something and user config files are preferred for some other reason.

Silverhammermba (talk) 13:37, 12 September 2021 (UTC)Reply

The Installation / Configuration Sections are missing info that pulseaudio is a user-service and the consequences

Pulseaudio is meant to be run as a systemd userservice and for it to work there is a configuration-step necessary that is not mentioned yet.


systemctl --user enable/start pulseaudio.service

systemctl --user enable/start pulseaudio.socket


Without theses steps audio seemingly continues to work. But all programs still exclusively use ALSA. Therefore only one application can use audio at a time. The mixing of audio into the default ALSA-device, which is the main use case of audio servers, does not work and the installation/configuration is not complete in my opinion.

The only hint I had was that autocompletion in my root-shell was missing pulseaudio.service. And I would not expect other users to infer that soundhardware is a userservice.

The userservice-configuration (not running as a daemon) is the most commonly proposed one by pulseaudio and running as a systemwide daemon would also need configuration.


Therefore I would thine that hints on starting/enabling the user services belong on the pulseaudio page in either the Installation or Configuration section.

Thorben (talk) 06:18, 13 October 2021 (UTC)Reply

PulseAudio is enabled by default as stated in PulseAudio#Running. This is done at the package installation. — Lahwaacz (talk) 06:36, 13 October 2021 (UTC)Reply

Pulseaudio system-mode

https://wiki.archlinux.org/title/PulseAudio#Starting_system-wide_on_boot -> there is `The factual accuracy of this article or section is disputed. Reason: The service runs as root, not as the pulse user. (Discuss in Talk:PulseAudio)`.

I was surprised by that one too. Maybe it should be mentioned that from PulseAudio documentation https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/ :

When PulseAudio starts in the system mode, it will change its user and group from root to pulse

The user and group name is hard-coded when compiling - https://github.com/pulseaudio/pulseaudio/blob/7f4d7fcf5f6407913e50604c6195d0d5356195b1/meson_options.txt#L12 . Starting the service as pulse user does not work and PulseAudio complains thgat it's not root.

Kamilcuk2 (talk) 16:34, 29 January 2022 (UTC)Reply

Please add a note about this to the page. — Lahwaacz (talk) 19:15, 29 January 2022 (UTC)Reply
I've added it as a tip, closing. --Erus Iluvatar (talk) 08:57, 28 October 2024 (UTC)Reply

Starting system-wide on boot

The systemd unit to start the pulseaudio server system-wide was not working properly for me. I had to "sudo systemctl restart pulseaudio" every time I booted otherwise the server would not work and I would get no sound (despite systemd showing the pulseaudio.service as active).

I had to add the line After=default.target to start the service later (as that seemed to be the problem). Maybe we could start the service a bit earlier than that, I did not try.

I think we should point out this in the wiki (that you might need to start the service later).

Modified service file:

/etc/systemd/system/pulseaudio.service
[Unit]
Description=Sound Service
After=default.target
 
[Service]
# Note that notify will only work if --daemonize=no
Type=notify
ExecStart=/usr/bin/pulseaudio --daemonize=no --exit-idle-time=-1 --disallow-exit=true --system --disallow-module-loading
Restart=always
 
[Install]
WantedBy=default.target

-- ffcc (talk) 17:07, 31 January 2023 (UTC)Reply

This sounds like a bug. Rather than putting the workaround here, priority should be put on resolving this in our package or with upstream's distribution of config files (and then maybe a workaround here). -- CodingKoopa (talk) 02:10, 16 February 2023 (UTC)Reply

`module-switch-on-connect` switches sources too?

Page says "Module switch-on-connect module switches the output sound to new devices when connected"

Freedesktop.org says " Whenever a new sink or source appears, this module will switch the default sink/source to be the new sink/source. "

Source at the fossies archive includes sources, e.g. line 43: "PA_MODULE_DESCRIPTION("When a sink/source is added, switch to it or conditionally switch to it");"`

Which is right: switching output only, or both sink and source?

Oxlentolsa (talk) 13:46, 1 October 2023 (UTC)Reply