On Sat, 10 Oct 2015, fred wrote:
What happens (or not) if one use the active d-bus
interface option in QjackCtl ?
Maybe, with a good luck, someone in the list will invest some time to explain,
or point to a link that explains,
all those options in QjackCtl that most of us leaves alone since years,
just because doesn't know what is all about, or pass hours to test???
dbus options with jack are to do with jack2. There is a patch to allow
jack1 to be dbus controllable as well, but I don't know that any distos
ship it and Qjackctl is not designed for it.
jackdbus is the same jackd with the ability to use dbus to control it's
operation. The advantage of this is that more than one program can
interact with jackdbus. With jackd, only the program that starts it can
stop it and the parameters can only be set at start time (with the
exception of buffers which can be changed during run). With jackdbus, all
parameters can be changed including audio device during runtime and can be
changed by any program that can find the same dbus server (anything
started since session startup). This means Qjackctl can be used to start
jackdbus and then jack_control can be used to stop or maodify parameters.
I think what stops people from making more use of jackdbus is that all the
documentation and help for jack is with jackd command lines. So the new
comer will be flooded with advice that shows how to use jackd and not
jackdbus.
To start jackd with default parameters (whatever was used last time) on
the command line:
jackd
or:
jackd &
to start jackdbus:
jack_control start
To stop jackd the controlling terminal can use control c or if it was
started with the & then you have to:
killall -9 jackd
With jackdbus:
jack_control stop
A typical jackd start line with parameters would be:
/usr/bin/jackd -p1024 -dalsa -dhw:M66 -r48000 -p1024 -n2
The same thing in jackdbus might be:
jack_control ds alsa dps device hw:M66 dps rate 48000 dps period 1024 \
dps nperiods 2 start
or (if it is easier in a script):
jack_control ds alsa
jack_control dps device hw:M66
jack_control dps rate 48000
jack_control dps period 1024
jack_control dps nperiods 2
jack_control start
Now to change the device without stopping jackdbus:
jack_control dps device hw:AudioPCI sm
An interesting side note:
I have the AudioPCI installed only so I can use its MIDI port. The MIDI
port is available no matter which device is set with jackd/bus. I use
a2j_control to bridge alsa MIDI to jack MIDI (a2j_control ehw start).
Documentation:
Very little. man jack_control gives nothing, but jack_control on it's own
with give a usage message (or jack_control help). I went through using the
"get" commands to find out more. Jack_control is written in python and so:
less /usr/bin/jack_control
will allow one to see what dbus commands jack_control is sending to dbus
to control jackdbus.
Qjackctl does not at this time (maybe never) allow changing the jack
server parameters on the fly. However, a jackdbus server started with
qjackctl can be changed from command line with jack_control.
Jackdbus works much more smoothly and automatically with Pulseaudio and
the pulse-jack bridge. Pulse can be bridged to jackd (1 or 2) manually as
well, but it requires an extra script to be run each time jackd is
started.
Depending which version of qjackctl you have (mine is older), it sets
port-max lower (1024) than default (2048) and can not be set higher. Most
desktops have no reason to run any lower than default. Embedded systems
with limited memory might need something smaller... but probably also
won't run qjackctl :)
I know this is much more than the qjackctl side of jackdbus, but it does
give some of the why too.
--
Len Ovens
www.ovenwerks.net