On Tue, May 11, 2010 at 4:34 PM, Luka Princic // Nova deViator
<nova(a)deviator.si> wrote:
Ng Oon-Ee <ngoonee(a)gmail.com>om>:
> Replace JACK entirely with Pulse, become the only
audio server
> game in town? ;-)
Yeah, world domination is ALWAYS on the agenda I'm sure. Which is
why Pulseaudio automatically suspends its control of a sound card
with jack2 requests control =)
Maybe in some version of PulseAudio you have. The one I used to
have here did not. So I removed it. Simpler that way. I guess I
still consider PulseAudio unnecessary for any purpose.
For reference (not specifically directed to you), more recent versions
of Pulse (not sure exactly which) and jack2 (jackdmp) cooperate in
that form. Recent distributions should have it sorted, unless they're
using jack1.
AFAIK, suspending PA works with qjackctl, not directly with
jackd. just by running qjackctl, PA suspends. if you run it from the
terminal, you'll see "Suspending PulseAudio". this means PA is
suspended even if jack is not running - only qjackctl. this also means,
jack CAN run while PA is running. i do this frequenlty as i start jack
from the command line using firewire audio interface.
jackd -v -R -t1000 -dfirewire -r44100 -p128 -n3
so i can do pro-audio through fw and still have flash movies playing in
firefox. and hearing them.
it is also simple to suspend PA on the command line, something like:
pasuspender -- jackd -R -t1000 -d alsa -r44100 -p512 -n3
There's a few mechanisms at work here. One is qjackctl basically
calling pmsuspender when it starts. In my mind, a quick hack which
works, but doesn't take into account slightly more complex systems
(like the fact that I may not want PA on my internal sound card to
suspend when running JACK on my external sound card).
The one which I was referring to is how jack2 (jackdmp in some
circles) communicates with PA via dbus and requests control of a sound
card. So, for example, if PA is currently running on my external sound
card and jack2 starts up, PA will just cork itself (pause) on THAT
sound card and give up control to jack2, which will then return that
control when it stops.