On 12/1/21 10:27 AM, Florent Peyraud wrote:
Hi everyone.
I'm trying to streamline the integration of Rivendell 4 on lubuntu or
other debian based distros using modern tools such as systemd and
DBus. Now, qjackctl and the packages jackd2 uses Dbus to launch jack
daemon by default. This provides some cool features, notably the
handshaking with pulseaudio in order to release the alsa device from
pulse and let jack use it instead, and also the automatic connection
of pulseaudio into jack as a client.
The way qjackctl launches jack is by issuing the "/usr/bin/jackdbus
auto", then setups and actually starts jack through the DBUS interface
with /usr/bin/jack_control
I would like to mimic this behavior in order to make rivendell service
(well... caed) start Jack this way with an external scirpt, but it
fails when trying to connect jack. The logfile says "Unable to
communicate with JACK server". Obviously, the actual jack server may
take too much time to launch and it is not ready when caed tries to
connect. DBus provides a way to check the status of jack. Maybe just a
pause could be sufficient to allow jack to start before trying to
connect to it.
Would it be possible to take this way of launching jack through DBus
into account so that it can be started at boot time with caed instead
of waiting for a user session to begin ?
By the way, I tweaked systemd service for rivendell (sudo systemctl
edit rivendell) in order to start the daemons with another user
(actually the user who starts the session afterwards to use Rivendell
tools) so that I can launch qjackctl or other tools with this user and
modify the patching of clients without being forced to connect as
root, which is not recommended on ubuntu/debian. Maybe, it could be
useful to be able to select the user for each sub-service in rd.conf,
and drop privileges while starting rivendell service according to this.
Thanks a lot for your answers/ideas. Take care
Florent
The way I do works just like a charm to me, where everything integrates
an inter-operates to perfection: I'm using the jackd2 PROMISCUOUS MODE
feature to create a single, system-wide, user-interoperable, jackd
service, that act as a hub to any jack client, of any user (thus
Rivendell) on the whole system, allowing each user (the workstation
user) to manage their GUI clients and/or applications using GUI tools
and send/get audio to/from any other audio clients on the system.
In this mode, Rivendell automatically connects to the system-wide jackd
server.
In the same way, qjackctl (or any other GUI applications, jack
manager/client, etc... for instance, I use Ardour as Rivendell's mixer,
and jamin as DSP) by means of X11/dbus does automatically detect and
bind to the system-wide, shared, running jackd server... automatically.
I had posted specific setup details (Debian) before in this list if
you're interested on.
Best regards.
_______________________________________________
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev
_______________________________________________
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev