For The Linux Users. Pulse Audio

Users of Linux, you have Pulse Audio activated in Linux? It is a default in Ubuntu, but when you are working with audio it cab be a headache. Maybe having only ALSA and Jack is better. whats your experience?

I am running Pulse through jackd. this way you can have all your linux-audio apps run the usual way and still have the ubuntu/desktop audio stuff working.
there are some packages for ubuntu available, depending on your version/distribution it might be as easy as apt-get install pulseaudio-module-jack .
then you may disable all hardware “sinks” that pulseaudio would otherwise use to allocate the audio device:
my default.pa in /etc/pulse/ looks like this:

#!/usr/bin/pulseaudio -nF

This file is part of PulseAudio.

PulseAudio is free software; you can redistribute it and/or modify it

under the terms of the GNU Lesser General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

PulseAudio is distributed in the hope that it will be useful, but

WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU

General Public License for more details.

You should have received a copy of the GNU Lesser General Public License

along with PulseAudio; if not, write to the Free Software Foundation,

Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

This startup script is used only if PulseAudio is started per-user

(i.e. not in system mode)

.nofail

Load something into the sample cache

#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav
#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav
#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav
#load-sample-lazy pulse-access /usr/share/sounds/generic.wav

.fail

Automatically restore the volume of streams and devices

load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore

Automatically augment property information from .desktop files

stored in /usr/share/application

load-module module-augment-properties

Load audio drivers statically (it’s probably better to not load

these drivers manually, but instead use module-hal-detect –

see below – for doing this automatically)

#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device=“/dev/dsp” sink_name=output source_name=input
#load-module module-oss-mmap device=“/dev/dsp” sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink

load-module module-jack-source
load-module module-jack-sink

Automatically load driver modules depending on the hardware available

#.ifexists module-udev-detect.so
#load-module module-udev-detect
#.else

Alternatively use the static hardware detection module (for systems that

lack udev support)

#load-module module-detect
#.endif

Automatically load driver modules for Bluetooth hardware

#.ifexists module-bluetooth-discover.so
#load-module module-bluetooth-discover
#.endif

Load several protocols

.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix

Network access (may be configured with paprefs, so leave this commented

here if you plan to use paprefs)

#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish

Load the RTP reciever module (also configured via paprefs, see above)

#load-module module-rtp-recv

Load the RTP sender module (also configured via paprefs, see above)

#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description=“RTP Multicast Sink”
#load-module module-rtp-send source=rtp.monitor

Load additional modules from GConf settings. This can be configured with the paprefs tool.

Please keep in mind that the modules configured by paprefs might conflict with manually

loaded modules.

.ifexists module-gconf.so
.nofail
load-module module-gconf
.fail
.endif

Automatically restore the default sink/source when changed by the user during runtime

load-module module-default-device-restore

Automatically move streams to the default sink if the sink they are

connected to dies, similar for sources

load-module module-rescue-streams

Make sure we always have a sink around, even if it is a null sink.

load-module module-always-sink

Honour intended role device property

load-module module-intended-roles

Automatically suspend sinks/sources that become idle for too long

load-module module-suspend-on-idle

If autoexit on idle is enabled we want to make sure we only quit

when no local session needs us anymore.

load-module module-console-kit

Enable positioned event sounds

load-module module-position-event-sounds

Cork music streams when a phone stream is active

#load-module module-cork-music-on-phone

X11 modules should not be started from default.pa so that one daemon

can be shared by multiple sessions.

Load X11 bell module

#load-module module-x11-bell sample=bell-windowing-system

Register ourselves in the X11 session manager

#load-module module-x11-xsmp

Publish connection data in the X11 root window

#.ifexists module-x11-publish.so
#.nofail
#load-module module-x11-publish
#.fail
#.endif

Make some devices default

#set-default-sink output
#set-default-source input


if you autostart jackd via qjackctl, you can use/specify a post-startup and post-shutdown script that starts/stops the pulseaudio deamon.
works very well here but it is a kind of a hassle to set up.

cheers!

I still wouldn’t mind built in PA driver for Renoise.

I used Pulse over Jack too. Not a problem.

I setup the startup script in jack control, and it works. But its not perfect. I mean, the audio works great! (I dont have a RT kernel and the latency is fantastic with my guitar), but I need to stop Jack, close firefox, start it again, every time I want to see a video in youtube, for example.
Is the modification in in /etc/pulse/default.pa a better option?

Sounds like an equivalent situation in Windows where you have to quit your audio application using the ASIO driver before you can again use your other apps that depend on DirectSound instead.
This can be a sound-card depending issue, so that does mean that this might not be easily resolved if you have a soundcard that is simply limited in control by his drivers this way.

could be that alsa is blocking your device. you can force alsa programs to run their output to pulse.
my ~/.asoundrc file looks like this:

ALSA library configuration file

Include settings that are under the control of asoundconf(1).

(To disable these settings, comment out this line.)

#</home/lodsb/.asoundrc.asoundconf>
pcm.!default {
type pulse
}

ctl.!default {
type pulse
}

pcm.!dmix {
type pulse
}

so at least here flash&java&browser audio works. what took me longer was to get wineasio working… have a 64bit sys, had to compile wine+wineasio(-x) by hand to get everything running smoothly (for windows apps/plugs).

I don’t have PulseAudio at all. Most apps can access ALSA directly so I don’t see why another layer of sound mixing is ever needed. Honestly, I think the world would be a better place if the developers of PulseAudio dropped it and shifted their efforts into bringing OSS project back to life (implementing suspend support, MIDI and usb-audio) - it’s portable, it’s efficient and well documented, unlike ALSA.

Back on the topic. I’m on Arch, so I had no problems with configuring the system without PulseAudio.

My flash/browser/mp3s and wineasio (needed in reaper, I suppose I cant load wine-vst´s in Renoise) works, the problem is that I have to close everything before open Jack.
I will try your alsa configuration.
I dont find .asoundrc, where it is?

i’m running jack all the time on my system…i’ve got a jack audio driver for flash, jack backend for alsa, and native jack drivers for just about everything else (mplayer, vlc, xmms2)…i have pulseaudio installed with the jack backend, but honestly pulseaudio is just a gigantic pain whenever something uses it, so I avoid it.

I use Linux on my notebook. I mainly use it for non-Renoise purposes, and I use it on battery power quite often. I think that in my case running ALSA through JACK would affect battery consumption very noticeably, am I right?

I really dont know, I dont have a notebook. I will need to experiment and tell.
I´m actually running a new RT kernel, pulse audio through Jack, with very good latency. My soundcard is onboard, nothing especial.

eh, I don’t think so…I still manage to get about 4 hours of battery life with my E6400 even running jack. it does use more CPU, but it’s negligible (firefox uses more CPU than jack).