PulseAudio

Differences between revisions 33 and 53 (spanning 20 versions)
Revision 33 as of 2009-05-22 18:15:45
Size: 12916
Editor: c78-36
Comment: Updated the recording example for Jaunty 9.04
Revision 53 as of 2021-06-16 11:56:57
Size: 3209
Editor: guiverc
Comment: lubuntu 16.04 is EOL/unsupported; modern lubuntu uses pulseaudio so tweak wording (esp. tense)
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
<<Include(Tag/NeedsExpansion)>>
## Tag added: Page refers only to Hardy/Gusty
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Contents'''<<BR>><<TableOfContents>>||
Line 6: Line 5:
It's a drop in replacement for EsounD. PulseAudio is the standard sound server in Ubuntu Hardy Heron 8.04.
Line 8: Line 6:
There may be problems with getting sound from Adobe Flash v. 9 and earlier, Wine and Skype when these applications use the ALSA protocol. The sound is supposed to go through the "pulse" plugin in ALSA, that passes it to PulseAudio, where it get mixed with all other sound, and passed on to a audio interface. <<BR>>
The problems seems to be related to the pulse plugin in ALSA, and the special ways these apps uses ALSA.<<BR>>
Currently there are [[https://tango.0pointer.de/pipermail/pulseaudio-discuss/2008-May/001749.html|three patches for "pulse"]] that probably can solve the problems with Wine combined with ALSA/pulse.
= Installation =
Line 12: Line 8:
== Installation == Pulseaudio is already installed by default on Ubuntu and flavors.
Line 14: Line 10:
Here's how to install it, as of Dec-08-2007, on Ubuntu Gutsy Gibbon 7.10, with PulseAudio 0.9.6 = PulseAudio Removal =
Line 16: Line 12:
=== Installing PulseAudio === This is generally a bad idea.
Line 18: Line 14:
Open a Terminal window. = Using PulseAudio =
Line 20: Line 16:
Type the following: 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:
Line 22: Line 18:
sudo apt-get install libasound2-plugins "pulseaudio-*" paman padevchooser paprefs pavucontrol pavumeter
}}}
This will install the ALSA Pulse plugin, the PulseAudio daemons and the PulseAudio tools.


=== ALSA Configuration ===

Now, type the following:
{{{
gksudo gedit /etc/asound.conf
}}}
This will open /etc/asound.conf in a Text Editor as the root user.

Normally on Ubuntu 7.10, this file will not exist, so we're creating it.

Paste in the following:

{{{
pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
pavucontrol
Line 54: Line 21:
The top two will create new output and input definitions for PulseAudio, and the bottom two will set PulseAudio as the default audio device for programs using the ALSA interface. = Troubleshooting =
Line 56: Line 23:
Save and exit Text Editor. == Resetting User Configuration ==
Line 58: Line 25:
==== Adding Users to the PulseAudio groups ==== For some reason, pulseaudio's user configuration files can become corrupt(unsynced?) in some way, and deleting them (and forcing fresh ones to be generated) fixes a no sound condition. After using the command below, log out/in.
Line 60: Line 27:
Next we go to System -> Administration -> and click on Users and Groups. === Ubuntu 12.10/Quantal (and earlier) ===
{{{
rm -r ~/.pulse*; pulseaudio -k
}}}
Line 62: Line 32:
Click on Manage Groups, and scroll all the way to the bottom of the list where you will find: === Ubuntu 13.04/Raring (and later) ===
{{{
rm -r ~/.config/pulse; pulseaudio -k
}}}
Line 64: Line 37:
    * pulse-access
    * pulse-rt
== Getting A Verbose Diagnostic Log ==
Line 67: Line 39:
Make sure to highlight each, one at a time, and click Properties. Just put a check next to each user that you want to be able to have access to sound. For example, there's "ted" and "root" and "kamilion" listed, and you only want "kamilion" to have access to sound, that's the one to check, leave the other two blank. This log can aid bug reports. If possible, attach it to any bug report filed against pulseaudio or even to ALSA bug reports where pulseaudio is involved: https://wiki.ubuntu.com/PulseAudio/Log
Line 69: Line 41:
''Note:'' The "pulse" group is for pulseaudio internal use, and normal users should not be added to this group. == Using A Lubuntu 16.04 (and older) LiveUSB/CD ==
Line 71: Line 43:
==== Configuring PulseAudio ==== Because Lubuntu 16.04 does not use pulseaudio, it can be useful in determining whether an audio issue is caused by pulseaudio, the ALSA driver, or another program. If the issue still occurs in a Lubuntu environment, pulseaudio is probably not causing it. Note: Modern Lubuntu does use pulseaudio.
Line 73: Line 45:
Now, go into Applications -> Sound and Video -> click on PulseAudio Preferences.
    * Checkmark all three options under Network Access. This will allow other computers on your LAN with PulseAudio to access this computer's sound devices.
    * Checkmark Enable Multicast/RTP Receiver. This allows receiving multicast streams from other systems on your LAN.
    * Checkmark Enable Multicast/RTP Sender. This allows sending multicast streams (One source sends packets, all others may receive them simultaneously)
== Static, Underruns ==
Line 78: Line 47:
Leave the other options alone for now, unless you want to loop outgoing streams through the local speakers.

Next go into System -> Preferences -> Sound and make sure that Enable Software Sound Mixing is checked.
Also, under the Sounds Tab, I set devices to Autodetect.

    * Restart the current session with Ctrl + Alt + Backspace to enable pulseaudio (Save any work 1st)

== Using PulseAudio ==

One of the most notable new features of PulseAudio is the ability to change the volume of applications interdependently, this can be accessed to by the program pavucontrol (you may want to add a launcher for it to your panel).

== PulseAudio Removal ==

If you decide you no longer like PulseAudio and would like to disable it:
Remove the added lines to /etc/asound.conf
If /etc/asound.conf did not exist when you installed PulseAudio, you may remove /etc/asound.conf entirely.

After this, you may remove all of the installed PulseAudio packages.

To disable pulseaudio in hardy you need to select alsa for for all options in /system/preferences/sound
https://wiki.ubuntu.com/Audio/PositionReporting
Line 102: Line 51:
== Firefox/Flash and PulseAudio ==

By default, the Firefox Flash plugin doesn't work properly with PulseAudio. In Hardy, Flash support can be enabled by installing the package libflashsupport:
{{{
sudo apt-get install libflashsupport
}}}
In previous Ubuntu releases, Flash support can be enabled in two ways: by downloading and installing a .deb from logicalnetworking.net or by building a patched version of the Flash plugin from source. (See detailed instructions below.)

If you experience problems with audio synchronization after installation, you may need to edit the file /etc/firefox/firefoxrc. The line referencing FIREFOX_DSP should read
{{{
FIREFOX_DSP="padsp"
}}}
Restart Firefox for the change to take effect.

'''Note:''' For Hardy AMD64 users:
{{{
http://ubuntuforums.org/showpost.php?p=4350045&postcount=12
}}}


=== Installing the Flash support package ===
{{{
wget http://logicalnetworking.net/other/libflashsupport_1.0~2219-1_i386.deb
sudo dpkg -i libflashsupport_1.0~2219-1_i386.deb
}}}

'''Note:''' For AMD64 users, there is now a plugin for Flash player 10 from Adobe for 64-bit Linux systems. This invalidates other package installations for flash on this page.
Get it here: {{{http://labs.adobe.com/downloads/flashplayer10.html}}}

Restart Firefox to enable simultaneous audio output from flash and other sources (rhythmbox, totem, etc).

=== Building the Flash plugin from source ===

{{{
wget http://pulseaudio.vdbonline.net/flashplugin-nonfree-pulse_0.1~000.tar.gz
tar xvfz flashplugin-nonfree-pulse_0.1~000.tar.gz
cd flashplugin-nonfree-pulse-0.1~000
sudo apt-get install libpulse-dev
make
sudo make install
}}}


== PulseAudio does not start automatically ==
If PulseAudio does not start at login time, you can try to set the gconf value of /desktop/gnome/sound/enable_esd to true.
Line 150: Line 53:
If you have firestarter installed, it *WILL* stop PulseAudio from properly communicating over Zeroconf/Avahi's port 5353. If you have firestarter firewall installed, it *WILL* stop PulseAudio from properly communicating over Zeroconf/Avahi's port 5353.
Line 166: Line 69:
= Recording example using PulseAudio and Audacity = == Programs Using OpenSound/OSS output ==
Line 168: Line 71:
This recording is equivalent to using the 'stereo mix' source setting in Windows to record the sounds going through the computer i.e. it should be able to record anything that the computer can output to speakers/headphones. Note that recording from some sources e.g. some web-based Flash audio sources, may be illegal in some countries; it is your responsibility to ensure that you abide by all relevant laws.

This example worked on Hardy 8.04. For the initial configuration, the above steps were followed except that:

    * Nothing was put into /etc/asound.conf
    * libflash-mozplugin was installed as well as libflashsupport.
    * The three changes listed above under 'Applications -> Sound and Video -> click on PulseAudio Preferences' weren't made. (Note also that these options are now under Applications -> Sound and Video -> PulseAudio Device Chooser, which launches a panel icon 'PulseAudio Applet', and then they are under Configure Local Sound Server, but they weren't changed in any case).

Once Audacity, PulseAudio and a sound source e.g. Totem music player or a web-based sound source are working, take the following steps to record.

For Hardy 8.10:

    * Open up 'Applications -> Sound and Video -> PulseAudio Volume Control'.
    * Assuming you started with no applications playing anything, the Playback tab will be blank
    * On the Output Devices tab, right click on the volume level for the sound output that you actually listen with e.g. USB audio headphones might be 'ALSA PCM on front:1 (USB Audio) via DMA'. Select Default in the little box that pops up.
    * On the Input Devices tab, on the Show options at the bottom right, choose Monitors (or All). Right click on the monitor for the sound output that you listen to i.e. the monitor of the same device that you selected on the Output tab e.g. 'Monitor Source of ALSA PCM on front:1 (USB Audio) via DMA'. Select Default in the little box that pops up.
    * Open up the source of the sound, e.g. Totem music player or a web page that plays audio. Once the sound starts, pause it and go back to the start if you can.
    * Go back to the Playback tab of the PulseAudio Volume Control. It should be showing the sound stream. If you right-click on the volume bar of the stream and hover the mouse over the 'Move Stream...' words, you can verify that the sound is pointing towards the same place you selected in Output Devices above.
    * Open up audacity but use the command 'padsp audacity' instead of just 'audacity'. This will make the OSS source within audacity actually come from PulseAudio. You can permanently change the command for the menu item if you wish using System -> Preferences -> Main Menu.
    * Under Edit, Preferences in Audacity, in the 'Audio I/O' section, de-select the two checkboxes under Playthrough, set the recording device to 'OSS :/dev/dsp' and the channels to '2 (Stereo)'. Set the playback device to 'OSS :/dev/dsp' too. Click on Ok to close the dialog.
    * Click on the record button in audacity and start the sound off again from the source. When you're done, stop the recording in audacity, remove any bits of the sound that you don't want e.g. leading and trailing blank sounds, and export as an mp3 file.

For Jaunty 9.04:

    * There's no longer any need to start Audacity with padsp, so remove this again from the Main Menu using System -> Preferences -> Main Menu if you had changed it in 8.10 and then upgraded to 9.04 automatically. Otherwise there should be no need to change the start-up command for Audacity.
    * Open up 'Applications -> Sound and Video -> PulseAudio Volume Control'.
    * Open up the source of the sound, e.g. Totem music player or a web page that plays audio. Once the sound starts, pause it and go back to the start if you can.
    * Go back to the Playback tab of the PulseAudio Volume Control. It should be showing the sound stream. Right click, choose Move Stream and point it to the stream that you listen on e.g. 'USB Headphone set'.
    * Open up Audacity and select 'Edit -> Preferences'. In the 'Audio I/O' section, de-select the two checkboxes under Playthrough. Under Playback, choose Device: ALSA: pulse. Under Recording choose Device: ALSA pulse and Channels: 2 (Stereo). Click Ok to save the changes, then close down Audacity and open it up again.
    * In Audacity, click on Record, and then Pause.
    * Go back to the Pulse Volume control and look for the new entry for Audacity on the Recording tab. It will probably be called 'ALSA plug-in [audacity]: ALSA capture'. Right-click on the stream, choose Move Stream and then select the Monitor for the device that you listen to e.g. 'Monitor for USB Headphone set'.
    * Release the pause in Audacity and start playing the audio. When the recording has finished, press stop in Audacity and remove and superfluous sections at the start and end of the track using Audacity's editing features. Then export as an MP3 file.

   
      

= Credits =

Kamilion initially wrote this wikipage on Dec-08-2007 using information found through the following sources:

Ghost|BTFH supplied the initial Ubuntu howto for older Ubuntu versions and the libflashplugin fix in his blog, here:
http://ghost.thewatch.org/2007/05/pulseaudio-in-ubuntu.html

! ! Note ! - As of 2008-02-10 the URL mentioned above, ghost.thewatch.org/2007/05/pulseaudio-in-ubuntu does not exist.

varunus supplied the information on how to make Avahi work with Firestarter here:
http://ubuntuforums.org/showthread.php?t=164193

akaihola added the note about broken Flash fix URL on 2008-02-03.

jerickson (Logical Networking Solutions) modified the libflashsupport .deb URL to point to a valid location on 2008-03-24.

twright added information on compiling flashplugin-nonfree-pulse and using pavucontrol

CategoryCleanup
You may run into applications that use OSS output (programs looking for /dev/dsp). Ubuntu no longer supports OSS natively, and you should try to switch the program's audio output to something better supported, like ALSA or esound/esd (which pulse emulates very well). If that's not possible, you can run the program using OSS emulation:
{{{
padsp <command_to_start_program>
}}}

PulseAudio is a sound server for POSIX and Win32 systems. 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.

Installation

Pulseaudio is already installed by default on Ubuntu and flavors.

PulseAudio Removal

This is generally a bad idea.

Using PulseAudio

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

Troubleshooting

Resetting User Configuration

For some reason, pulseaudio's user configuration files can become corrupt(unsynced?) in some way, and deleting them (and forcing fresh ones to be generated) fixes a no sound condition. After using the command below, log out/in.

Ubuntu 12.10/Quantal (and earlier)

rm -r ~/.pulse*; pulseaudio -k

Ubuntu 13.04/Raring (and later)

rm -r ~/.config/pulse; pulseaudio -k

Getting A Verbose Diagnostic Log

This log can aid bug reports. If possible, attach it to any bug report filed against pulseaudio or even to ALSA bug reports where pulseaudio is involved: https://wiki.ubuntu.com/PulseAudio/Log

Using A Lubuntu 16.04 (and older) LiveUSB/CD

Because Lubuntu 16.04 does not use pulseaudio, it can be useful in determining whether an audio issue is caused by pulseaudio, the ALSA driver, or another program. If the issue still occurs in a Lubuntu environment, pulseaudio is probably not causing it. Note: Modern Lubuntu does use pulseaudio.

Static, Underruns

https://wiki.ubuntu.com/Audio/PositionReporting

Known Issues

Firestarter & Avahi

If you have firestarter firewall installed, it *WILL* stop PulseAudio from properly communicating over Zeroconf/Avahi's port 5353.

How to Fix:

gksudo gedit /etc/firestarter/user-pre

In the file, add the following lines:

$IPT -A INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
$IPT -A OUTPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT

Then, save and close the file, and then type:

/etc/init.d/avahi-daemon restart

Programs Using OpenSound/OSS output

You may run into applications that use OSS output (programs looking for /dev/dsp). Ubuntu no longer supports OSS natively, and you should try to switch the program's audio output to something better supported, like ALSA or esound/esd (which pulse emulates very well). If that's not possible, you can run the program using OSS emulation:

padsp <command_to_start_program>

PulseAudio (last edited 2021-06-16 11:56:57 by guiverc)