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).