SOLVED! I've managed to set up Ubuntu 10.4 to run pulseaudio over JACK. But it was a painful process. Here's what I've found. - Install pulseaudio-module-jack - Set your ~/.asoundrc to contain this: pcm.pulse { type pulse } ctl.pulse { type pulse } pcm.!default { type pulse } ctl.!default { type pulse } - Create a script ~/bin/startjack with the following contents: #!/bin/bash ############################################################# # We want to load pulseaudio AFTER jack so kill the # current instance, as it will be blocking the audio device. pulseaudio -k lsof|grep snd >/home/mrjb/bin/jack.log # Note: The following line (starting at /usr/bin, ending at -n2) # is what qjackctl generated to start up jack. nohup /usr/bin/jackd -dalsa -dhw:0 -r44100 -p1024 -n2 >>/home/mrjb/bin/jack.log & sleep 1 # restart pulseaudio. pulseaudio& # give it some time to come up before trying to load the JACK modules. sleep 2 pactl load-module module-jack-sink pactl load-module module-jack-source # Despite everything, running this script during startup did not # always seem to work- possibly due to some kind of race # condition. # Manually running the script afterwards would invariably # solve the problem, but defeats the purpose of scripting. # Because of this, I've added this fugly hack: # see if startup worked - if not, reinvoke script. if ps ax | grep -v grep | grep jackd > /dev/null then exit 0 else ~/bin/startjack fi # start-pulseaudio-x11 ######################################################## - I'm calling this as a startup script from System->Preferences->Startup applications. - Also, I disabled the regular PulseAudio startup (which only calls start-pulseaudio-x11 to redirect system beeps to pretty samples). To guarantee the order in which things are loaded, I figured I could add it to the above script, but in the end I did not. - All this and it *STILL* didn't work! It looked like pulseaudio -k wasn't killing pulseaudio, as documented. Turns out, pulseaudio respawns itself by default, so we need to tell it to stop doing that. create a file ~/.pulse/client.conf and add the following, single line in it: autospawn=no Now, when running qjackctl, it says "suspending pulseaudio". I'm not sure why it needs to do that- but I find it annoying that all audio stops playing when I want to change a JACK connection. As it turns out, in Ubuntu qjackctl is inside a wrapper script that suspends pulseaudio. The actual qjackctl is renamed to qjackctl.bin. Anyway, I changed the relevant snippet of the script /usr/bin/qjackctl to the following: elif [ $PASUSPENDER ]; then $QJACKCTL "$@"; exit 0; #echo "Suspending PulseAudio"; #$PASUSPENDER -- $QJACKCTL "$@"; By default, mplayer uses the default output device which is alsa - which plays back through pulseaudio which routes to JACK. Oh, one more thing- as my soundcard lives in userland, I want *me* to have access to the device. It's also going to be *me* starting up pulseaudio anyway. As such, it's *me* in the audio group, rather than pulseaudio, just so that it can't grab the device (or so i thought). Hope this helps someone! Best, Marc