Difference between revisions of "PulseAudio"

From Free Knowledge Base- The DUCK Project: information for everyone
Jump to: navigation, search
m (Troubleshoot)
 
(27 intermediate revisions by 2 users not shown)
Line 1: Line 1:
PulseAudio became the standard audio system in Fedora 8, but it is a buggy piece of crap that crashes from time to time for no apparent reason. Or, sometimes it works great without any problemsMaybe it's not so bad.
+
PulseAudio, previously known as Polypaudio, is a sound server for POSIX and WIN32 systems. It is a drop in replacement for the ESD sound server with much better latency, mixing/re-sampling quality and overall architecturePulseAudio / Pulse Audio is a sound manager for [[ALSA]] on Linux, ALSA being the Advanced Linux Sound Architecture.
  
 +
PulseAudio Volume Control (pavucontrol) is a simple GTK+ based volume control tool (mixer) for the PulseAudio sound server. In contrast to classic mixer tools this one allows you to control both the volume of hardware devices and of each playback stream separately. It also allows you to redirect a playback stream to another output device without interrupting playback.
 +
 +
<big><big><big>pavucontrol</big></big></big>
 +
 +
The volume control "configure" on Ubuntu  and Mint is NOT the same as PulseAudio pavucontrol.  You will NOT see a Configuration tab on the standard volume control mixer.  Install pavucontrol for the real deal.
 +
sudo apt install pavucontrol
 +
 +
== Distribution Specific ==
 +
=== Fedora ===
 +
PulseAudio became the standard audio system in Fedora 8, but at the time it is buggy and crashed from time to time for no apparent reason.  Or, sometimes it works great without any problems.  Maybe it's not so bad.
 +
 +
=== Debian ===
 
Want to install PulseAudio mixer on Debian?
 
Want to install PulseAudio mixer on Debian?
  
 
  apt-get install pavucontrol
 
  apt-get install pavucontrol
  
More...
+
=== Ubuntu ===
 +
A sound server is basically a proxy for your sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server.  
  
----
+
Pulseaudio is already installed by default on most Ubuntu flavors, including Ubuntu, Kubuntu, and Xubuntu.
 +
 
 +
For Ubuntu environments that use pulseaudio, Ubuntu has its own custom sound indicator that will allow you to select the preferred device and control the volume of each application. If you would prefer to try pulseaudio's generic control GUI, install the pavucontrol package and launch it with terminal command:
 +
 
 +
pavucontrol
 +
 
 +
source: [https://wiki.ubuntu.com/PulseAudio ubuntu wiki: PulseAudio]
 +
 
 +
== Tips and Tricks ==
 +
=== Bridge HDMI and analog audio output ===
 +
Updated: The easiest way to accomplish this on modern Ubuntu/Mint (at least 18.3 and up) is to use a utility called paprefs aka PulseAudio Preferences.
 +
 
 +
You won't find the ability to enable simultaneous output in the default Pulseaudio sound controls for any desktop environment.
 +
 
 +
Install PulseAudio Preferences
 +
sudo apt install paprefs
 +
 
 +
Run the software paprefs aka PulseAudio Preferences
 +
paprefs
 +
 
 +
There will only be one item there, Add virtual output device and you need to Check the box.  Now refresh Pulseaudio
 +
 
 +
[[Image:paprefsbridge.png]]<BR>
 +
''Illustration shows the paprefs interface, launched from console by typing: "paprefs" and the correct selection.''
 +
 
 +
[[Image:pulseaudiosimsel.png]]<BR>
 +
''Illustration shows the Pulse Audio Volume Control Output Devices Tab with "Set as fallback" checked for "Simultaneous output to..." checked so programs send sound on all bridged devices.''
 +
 
 +
older information:
 +
* [https://wiki.archlinux.org/index.php/PulseAudio/Examples PulseAudio allows for simultaneous output to multiple sources.]
 +
 
 +
=== How to stop and start the Pulse Audio Service ===
 +
With systemd PulseAudio is controlled by systemctl and if you kill PulseAudio it will be restarted automatically by systemctl.  To suspend the service, stopping PulseAudio do:
 +
systemctl --user stop pulseaudio.socket
 +
systemctl --user stop pulseaudio.service
 +
 
 +
To start it again, you can use:
 +
systemctl --user start pulseaudio.socket
 +
systemctl --user start pulseaudio.service
 +
 
 +
Is PulseAudio running?
 +
ps ax|grep -i pulse
 +
If yes
 +
  40871 ?        S<sl  0:01 /usr/bin/pulseaudio --daemonize=no --log-target=journal
 +
  40874 ?        Sl    0:00 /usr/libexec/pulse/gsettings-helper
 +
 
 +
=== Temporarily suspend PulseAudio ===
 +
pasuspender is a tool that can be used to tell a local PulseAudio sound server to temporarily suspend access to the audio devices, to allow other applications access them directly. pasuspender will suspend access to the audio devices, fork a child process, and when the child process terminates, resume access again.
 +
 
 +
Example environment without PulseAudio without stopping the service
 +
pasuspender bash
 +
Here is an example where a game is launched with PulseAudio suspended
 +
pasuspender ./PULSAR_LostColony.x86_64
 +
 
 +
=== pulseaudio-equalizer ===
 +
Your distribution may or may not have pulseaudio-equalizer as part of the main repository. 
 +
sudo apt install pulseaudio-equalizer
 +
Launch the mixer with
 +
qpaeq
 +
For qpaeq to work you have to have the modules module-equalizer-sink and module-dbus-protocol set to load in the /etc/pulse/default.pa file
 +
sudo vi /etc/pulse/default.pa
 +
add
 +
load-module module-equalizer-sink
 +
load-module module-dbus-protocol
 +
For more information on pulseaudio-equalizer visit [https://livingthelinuxlifestyle.wordpress.com/2018/08/13/how-to-install-pulseaudio-equalizer-in-ubuntu-and-linux-mint/ How to Install PulseAudio-Equalizer in Ubuntu and Linux Mint]
 +
 
 +
== Troubleshoot ==
 +
===Test Sound Utility: Stereo Separation Test===
 +
{{:Speaker-test_stereo_separation_test_with_ALSA}}
  
PulseAudio does not get along well with KDE
+
===Testing audio input / microphone input from CLI===
 +
{{:Arecord_alsa_audio_input_testing}}
  
 +
===PulseAudio does not get along well with KDE===
 
  pulseaudio-core-libs-0.9.8-5.fc8
 
  pulseaudio-core-libs-0.9.8-5.fc8
 
  pulseaudio-module-gconf-0.9.8-5.fc8
 
  pulseaudio-module-gconf-0.9.8-5.fc8
Line 25: Line 108:
 
----
 
----
  
esdcompat: esdcompat is a compatiblity script that takes the same arguments as the ESD sound daemon esd(1), but uses them to start a the PulseAudio sound server with the appropriate parameters
+
esdcompat: esdcompat is a compatibility script that takes the same arguments as the ESD sound daemon esd(1), but uses them to start a the PulseAudio sound server with the appropriate parameters
  
 
PULSEAUDIO: Unable to connect: Connection refused
 
PULSEAUDIO: Unable to connect: Connection refused
Line 42: Line 125:
 
<big><big>
 
<big><big>
  
Try this: (THIS WORKED) A viable work around to get rid of pulseaudio piece o crap
+
Try this: (THIS WORKED) A viable work around to get rid of pulseaudio.,
  
 
rename pulse-default.conf in /etc/alsa to somethin else. (This file makes pulseaudio the default device for sound for alsa)
 
rename pulse-default.conf in /etc/alsa to somethin else. (This file makes pulseaudio the default device for sound for alsa)
Line 92: Line 175:
 
  E: module.c: Failed to load  module "module-alsa-source" (argument: "device=hw:0 source_name=alsa_input.pci_1002_4383_alsa_capture_0"): initialization failed.
 
  E: module.c: Failed to load  module "module-alsa-source" (argument: "device=hw:0 source_name=alsa_input.pci_1002_4383_alsa_capture_0"): initialization failed.
  
&nbsp;
+
===  Microphone detected but can't change volume in Mint Linux ===
 +
You open pulseaudio in Linux Mint and the Microphone audio device under "Input" is displayed, however, the slider is grayed out.  Can apply to Linux Mint 18.x - 20.x
 +
 
 +
Try to clear the settings in the ~/.config/pulse directory.  Delete all of the directory contents (rm * but not rm -r *).  Once all the files in that folder are gone execute the following command at the cli:
 +
pulseaudio -k
 +
Now reboot and see if you have control over the microphone slider.
 +
 +
* credit: This tip provided by user [https://forums.linuxmint.com/viewtopic.php?t=225081 trytip over at linuxmint.com]
 +
 
 +
===  Controlling Pulse Audio from CLI ===
 +
restart the Pulse Audio with:
 +
pulseaudio -k
 +
You can check if the pulse audio is running by:
 +
pulseaudio --check
 +
if all is ok no output will be shown. you can start it and check for problems on start by:
 +
* ''the pulseaudio --check reports nothing even when the service is stopped. this does not seem to do a damn thing.''
 +
 
 +
the following will start pulse audio, however, you should use systemctl instead if you are ubuntu/mint. See above on starting and stopping pulseaudio with systemctl.
 +
pulseaudio --start
 +
 
 +
=== Google Chrome Keeps Adjusting Microphone Input Level ===
 +
Google Chrome uses WebRTC and their implementation of Automatic Gain Control is broken.  The problem is further aggravated due to Google not allowing people to override the Automatic Gain Control.  [[WebRTC Automatic Gain Control]] is broken and prevents some users from being able to use their microphone with Google Voice and other web site applications in Google Chrome and Chromium. 
 +
 
 +
{{:Template:Untidy Entry}}
  
 
[[Category:Computer_Technology]]
 
[[Category:Computer_Technology]]
 
[[Category:Linux]]
 
[[Category:Linux]]
 +
[[Category:Linux_Sound]]

Latest revision as of 15:54, 31 July 2024

PulseAudio, previously known as Polypaudio, is a sound server for POSIX and WIN32 systems. It is a drop in replacement for the ESD sound server with much better latency, mixing/re-sampling quality and overall architecture. PulseAudio / Pulse Audio is a sound manager for ALSA on Linux, ALSA being the Advanced Linux Sound Architecture.

PulseAudio Volume Control (pavucontrol) is a simple GTK+ based volume control tool (mixer) for the PulseAudio sound server. In contrast to classic mixer tools this one allows you to control both the volume of hardware devices and of each playback stream separately. It also allows you to redirect a playback stream to another output device without interrupting playback.

pavucontrol

The volume control "configure" on Ubuntu and Mint is NOT the same as PulseAudio pavucontrol. You will NOT see a Configuration tab on the standard volume control mixer. Install pavucontrol for the real deal.

sudo apt install pavucontrol

Distribution Specific

Fedora

PulseAudio became the standard audio system in Fedora 8, but at the time it is buggy and crashed from time to time for no apparent reason. Or, sometimes it works great without any problems. Maybe it's not so bad.

Debian

Want to install PulseAudio mixer on Debian?

apt-get install pavucontrol

Ubuntu

A sound server is basically a proxy for your sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server.

Pulseaudio is already installed by default on most Ubuntu flavors, including Ubuntu, Kubuntu, and Xubuntu.

For Ubuntu environments that use pulseaudio, Ubuntu has its own custom sound indicator that will allow you to select the preferred device and control the volume of each application. If you would prefer to try pulseaudio's generic control GUI, install the pavucontrol package and launch it with terminal command:

pavucontrol

source: ubuntu wiki: PulseAudio

Tips and Tricks

Bridge HDMI and analog audio output

Updated: The easiest way to accomplish this on modern Ubuntu/Mint (at least 18.3 and up) is to use a utility called paprefs aka PulseAudio Preferences.

You won't find the ability to enable simultaneous output in the default Pulseaudio sound controls for any desktop environment.

Install PulseAudio Preferences

sudo apt install paprefs

Run the software paprefs aka PulseAudio Preferences

paprefs

There will only be one item there, Add virtual output device and you need to Check the box. Now refresh Pulseaudio

Paprefsbridge.png
Illustration shows the paprefs interface, launched from console by typing: "paprefs" and the correct selection.

Pulseaudiosimsel.png
Illustration shows the Pulse Audio Volume Control Output Devices Tab with "Set as fallback" checked for "Simultaneous output to..." checked so programs send sound on all bridged devices.

older information:

How to stop and start the Pulse Audio Service

With systemd PulseAudio is controlled by systemctl and if you kill PulseAudio it will be restarted automatically by systemctl. To suspend the service, stopping PulseAudio do:

systemctl --user stop pulseaudio.socket
systemctl --user stop pulseaudio.service

To start it again, you can use:

systemctl --user start pulseaudio.socket
systemctl --user start pulseaudio.service

Is PulseAudio running?

ps ax|grep -i pulse

If yes

 40871 ?        S<sl   0:01 /usr/bin/pulseaudio --daemonize=no --log-target=journal
 40874 ?        Sl     0:00 /usr/libexec/pulse/gsettings-helper

Temporarily suspend PulseAudio

pasuspender is a tool that can be used to tell a local PulseAudio sound server to temporarily suspend access to the audio devices, to allow other applications access them directly. pasuspender will suspend access to the audio devices, fork a child process, and when the child process terminates, resume access again.

Example environment without PulseAudio without stopping the service

pasuspender bash

Here is an example where a game is launched with PulseAudio suspended

pasuspender ./PULSAR_LostColony.x86_64

pulseaudio-equalizer

Your distribution may or may not have pulseaudio-equalizer as part of the main repository.

sudo apt install pulseaudio-equalizer

Launch the mixer with

qpaeq

For qpaeq to work you have to have the modules module-equalizer-sink and module-dbus-protocol set to load in the /etc/pulse/default.pa file

sudo vi /etc/pulse/default.pa

add

load-module module-equalizer-sink
load-module module-dbus-protocol

For more information on pulseaudio-equalizer visit How to Install PulseAudio-Equalizer in Ubuntu and Linux Mint

Troubleshoot

Test Sound Utility: Stereo Separation Test

Excerpt from Troubleshooting Linux Sound by Steve Litt troubleshooting guide"

Steve says, "The speaker-test program provides a nice, easy way to provide input for your sound system. When used with no arguments, it simply supplies white noise to both speakers."

Testing an M-Audio external USB sound board it was unclear as to whether or not stereo separation was functional or if the audio was monaural (mono) since the balance slider on audio players seemed to have zero impact. Elimination of audio application software is advised to find if ALSA and your wiring are correct. Use this command:

speaker-test -c2 -t wav

As Steve advised in his article the command will alternate between left and right speaker audio dialog in a loop allowing you to listen and determine if the sound is coming from the speakers, the correct speakers and that you have functional stereo separation. You may find it useful to ensure you do not have intended left speaker audio coming out of your right speaker. If you have more than 2 channels, put the number of channels in the -c argument.

Be advised the article is very informative and we hope it remains online as well as The Steve Litt Diagnostic Tools he provides there. Thanks Steve!

Testing audio input / microphone input from CLI

We can test the default audio input device, or the only audio input device on a simplistic configuration

arecord -vvv -f dat /dev/null

Watch while the audio input levels are displayed as a percentage.

We can specify an audio input device

arecord -vvv --device="hw:1,0" -f dat /dev/null

You can display a list of CAPTURE Hardware Devices. To figure out what audio input device is at hw: card,device use the following command

arecord -l

The output look for "Card X" and on the same line "device X" to know the card,device combination to specify.

PulseAudio does not get along well with KDE

pulseaudio-core-libs-0.9.8-5.fc8
pulseaudio-module-gconf-0.9.8-5.fc8
pulseaudio-utils-0.9.8-5.fc8
pulseaudio-0.9.8-5.fc8
pulseaudio-module-x11-0.9.8-5.fc8
pulseaudio-esound-compat-0.9.8-5.fc8
alsa-plugins-pulseaudio-1.0.15-3.fc8.1
pulseaudio-libs-0.9.8-5.fc8
akode-pulseaudio-2.0.2-4.fc8
kde-settings-pulseaudio-3.5-38.fc8
pulseaudio-libs-glib2-0.9.8-5.fc8

esdcompat: esdcompat is a compatibility script that takes the same arguments as the ESD sound daemon esd(1), but uses them to start a the PulseAudio sound server with the appropriate parameters

PULSEAUDIO: Unable to connect: Connection refused

Playing WAVE '/usr/share/system-config-soundcard/sound-sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
*** PULSEAUDIO: Unable to connect: Connection refused
aplay -L
amixer
cat /proc/asound/version
cat /etc/asound.conf
lspci -v |grep -iC 10 audio
lsmod |grep snd

Try this: (THIS WORKED) A viable work around to get rid of pulseaudio.,

rename pulse-default.conf in /etc/alsa to somethin else. (This file makes pulseaudio the default device for sound for alsa) run /sbin/alsactl restore

cd /etc/alsa
mv pulse-default.conf pulse-default.SUCKS
/sbin/alsactl restore
mplayer /usr/share/sounds/what_the_hell.mp3

Audio playback successful!


Some people say remove the rpm

alsa-plugins-pulseaudio

and another Fedora 8 person has urged me to install

kde-settings-pulse


$ xmms *

      • PULSEAUDIO: Unable to connect: Connection refused
    • WARNING **: alsa_setup(): Failed to open pcm device (default):

Connection refused

$ mplayer * ....

      • PULSEAUDIO: Unable to connect: Connection refused

[AO_ALSA] Playback open error: Connection refused Could not open/initialize audio device -> no sound. Audio: no sound Video: no video ....

The solution isn't as simple as starting pulseaudio, though:

$ pulseaudio 
W: alsa-util.c: Cannot find mixer control "Master". 
E: module-alsa-source.c: Error opening PCM device hw:0: No such file or directory 
E: module.c: Failed to load  module "module-alsa-source" (argument: "device=hw:0 source_name=alsa_input.pci_1002_4383_alsa_capture_0"): initialization failed.

Microphone detected but can't change volume in Mint Linux

You open pulseaudio in Linux Mint and the Microphone audio device under "Input" is displayed, however, the slider is grayed out. Can apply to Linux Mint 18.x - 20.x

Try to clear the settings in the ~/.config/pulse directory. Delete all of the directory contents (rm * but not rm -r *). Once all the files in that folder are gone execute the following command at the cli:

pulseaudio -k

Now reboot and see if you have control over the microphone slider.

Controlling Pulse Audio from CLI

restart the Pulse Audio with:

pulseaudio -k

You can check if the pulse audio is running by:

pulseaudio --check

if all is ok no output will be shown. you can start it and check for problems on start by:

  • the pulseaudio --check reports nothing even when the service is stopped. this does not seem to do a damn thing.

the following will start pulse audio, however, you should use systemctl instead if you are ubuntu/mint. See above on starting and stopping pulseaudio with systemctl.

pulseaudio --start

Google Chrome Keeps Adjusting Microphone Input Level

Google Chrome uses WebRTC and their implementation of Automatic Gain Control is broken. The problem is further aggravated due to Google not allowing people to override the Automatic Gain Control. WebRTC Automatic Gain Control is broken and prevents some users from being able to use their microphone with Google Voice and other web site applications in Google Chrome and Chromium.

 

Cleaningduck176.gif
Note: This page is notably untidy. Information is unkept or not arranged neatly and in order. Organization is needed to clean up this page including the removal of options and revision of information presentation. You can help. Please contribute by registering your email address and adding your knowledge to this page. The D.U.C.K. wiki was created to be a free informative place that allows an open exchange of accurate information.
Learn more...