Difference between jackd and jackdbus

Optimize your system for ultimate performance.

Moderators: MattKingUSA, khz

Lyberta
Established Member
Posts: 681
Joined: Sat Nov 01, 2014 8:15 pm
Location: The Internet
Been thanked: 1 time

Difference between jackd and jackdbus

Post by Lyberta »

I'm using QJackCtl to start and stop JACK. For several years it started a process called jackd and I had no problems with it. But If I forget to start JACK via QJackCtl and start application that requires JACK, it started a process called jackdbus which didn't work at all and I had to kill it and start jackd via QJackCtl. But today I've looked at the task manager and found that QJackCtl starts jackdbus and that process stays in memory even if I stop JACK via QJackCtl.

How are jackd and jackdbus different from each other?

A few months back Rosegarden started complaining about JACK not working correctly but the sound and MIDI worked fine. Now I'm trying to learn MusE and it hangs when trying to add a synth.
Attachments
Untitled.png
Untitled.png (14.83 KiB) Viewed 6934 times
Pablo
Established Member
Posts: 1274
Joined: Thu Apr 17, 2008 9:57 pm
Been thanked: 3 times

Re: Difference between jackd and jackdbus

Post by Pablo »

I find jackdbus very useful for pulseaudio-jack easy integration.
If you dont need It, just disable dbus interface in qjackctl's options
tnovelli
Established Member
Posts: 277
Joined: Wed Apr 20, 2011 4:52 pm

Re: Difference between jackd and jackdbus

Post by tnovelli »

Confusing names. jackd is the original "V1" written in C language, jackdbus "V2" (with a 1.9.xx version number) is a drop-in replacement written from the ground up in C++ (EDIT: I'm wrong, it's something else). They're mostly compatible but not quite 100%. If you do a fresh KXStudio install and start JACK via Cadence, you'll get jackdbus and it'll play nice with newfangled stuff like PulseAudio (that's where dbus support comes into play).

Just start jackd with QJackCtl if that's what works for you.

You might want to look for alternatives to Rosegarden and MusE. As a programmer I can tell you they're way too complex. I don't know much about Rosegarden (it's even older than Linux) but I know the MusE developers abandoned it and moved the score editor into a separate program, MuseScore. If you don't absolutely need a score editor in your DAW, just use a popular DAW like Ardour or Qtractor.
Last edited by tnovelli on Sun Jun 11, 2017 1:25 pm, edited 1 time in total.
Pablo
Established Member
Posts: 1274
Joined: Thu Apr 17, 2008 9:57 pm
Been thanked: 3 times

Re: Difference between jackd and jackdbus

Post by Pablo »

Thanks for the clarification, falkTX, but I don't think I said anything wrong.

I understand that jackdbus in jack2 is built-in but it is optional at run time. So you may have jack2 installed (as it is nowadays the default in most distros) and make qjackctl start plain jackd.
Lyberta
Established Member
Posts: 681
Joined: Sat Nov 01, 2014 8:15 pm
Location: The Internet
Been thanked: 1 time

Re: Difference between jackd and jackdbus

Post by Lyberta »

I have jackd2 installed and when I start JACK via QJackCtl, I see only jackdbus process. There is no jackd now.
tnovelli
Established Member
Posts: 277
Joined: Wed Apr 20, 2011 4:52 pm

Re: Difference between jackd and jackdbus

Post by tnovelli »

heh, thanks @falkTX, this is even more confusing than I thought.

The jackd2 package (in Ubuntu) contains two jack servers, called jackd and jackdbus.
jackd is apparently for backward compatibility.
jackdbus is controllable via dbus (using jack_control, Cadence, QJackCtl, etc)
jackdbus is a jack server, but it's inactive until a dbus message tells it to start. When it's running you can see it using more cpu (run "ps axu | grep jack" or "htop" or whatever). It doesn't start a separate "jackd" process. You can see if it's active by running "jack_control status" or Cadence or QJackCtl.

This "jackdbus" is different from Nedko's "jackdbus" (a modified version of jackd V1). I don't know which came first.

Further reading about the different JACKs: https://github.com/jackaudio/jackaudio. ... ack1_jack2
tnovelli
Established Member
Posts: 277
Joined: Wed Apr 20, 2011 4:52 pm

Re: Difference between jackd and jackdbus

Post by tnovelli »

Lyberta wrote:I have jackd2 installed and when I start JACK via QJackCtl, I see only jackdbus process. There is no jackd now.
Ok. Go to QJackCtl > Setup > Misc tab. Uncheck "JACK DBUS Interface".
Click Ok and start Jack. It should start "jackd" now.

You might still see a "jackdbus" process. It should be inactive. "jack_control status" should report "stopped" (even though jackd is running).
You can stop jackdbus with "killall -9 jackdbus" but it'll restart if anything like QJackCtl or Cadence is sending it dbus messages.
That may or may not be a problem.
User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

Re: Difference between jackd and jackdbus

Post by Linuxmusician01 »

I wanted to ask exactly the same question: "What's the difference between jackd and jackdbus". I don't know if necro-bumping is better than starting a double post... Anyway, here goes.

I still do not exactly understand what the difference between jackd and jackdbus is. I thought that jackd starts the jack daemon (hence the name). I don't know what dbus is (I know: very, very bad for a Linux user of 15 years, ha ha). So what jackdbus is I don't know either. I read on KXStudio News on 2019-03-22 that one had better stop jackdbus (???).

On my system I have Jack2 installed. And I have to bridge Jack and PulseAudio so I can listen to a PureData tutorial on Youtube (Chrome uses PulseAudio) while I practice with PureData (which uses Jack). If I'm not mistaken the Jack-Pulse bridge/sink (whatever!) uses jackdbus. So on my computer I have 2 jack processes running: jackd and jackdbus. But why? Is one actually the jack sound server and the other only used as a sink for Pulse?

Can I start the Jack audio server without using jackd (i.e. via jackdbus)? I don't think so... And, oh, jackdbus does not have a man page!
User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

Re: Difference between jackd and jackdbus

Post by Linuxmusician01 »

Linuxmusician01 wrote:I wanted to ask exactly the same question: "What's the difference between jackd and jackdbus". I don't know if necro-bumping is better than starting a double post... Anyway, here goes.

I still do not exactly understand what the difference between jackd and jackdbus is. I thought that jackd starts the jack daemon (hence the name). I don't know what dbus is (I know: very, very bad for a Linux user of 15 years, ha ha). So what jackdbus is I don't know either. I read on KXStudio News on 2019-03-22 that one had better stop jackdbus (???).

On my system I have Jack2 installed. And I have to bridge Jack and PulseAudio so I can listen to a PureData tutorial on Youtube (Chrome uses PulseAudio) while I practice with PureData (which uses Jack). If I'm not mistaken the Jack-Pulse bridge/sink (whatever!) uses jackdbus. So on my computer I have 2 jack processes running: jackd and jackdbus. But why? Is one actually the jack sound server and the other only used as a sink for Pulse?

Can I start the Jack audio server without using jackd (i.e. via jackdbus)? I don't think so... And, oh, jackdbus does not have a man page!
Bump. Nobody?
merlyn
Established Member
Posts: 1392
Joined: Thu Oct 11, 2018 4:13 pm
Has thanked: 168 times
Been thanked: 247 times

Re: Difference between jackd and jackdbus

Post by merlyn »

I suppose to understand it it's helpful to know the difference between a daemon and D-bus.

https://en.m.wikipedia.org/wiki/D-Bus

If you go to the 'Overview' section there is a helpful diagram.
User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

Re: Difference between jackd and jackdbus

Post by Linuxmusician01 »

merlyn wrote:I suppose to understand it it's helpful to know the difference between a daemon and D-bus.

https://en.m.wikipedia.org/wiki/D-Bus

If you go to the 'Overview' section there is a helpful diagram.
Thanks for that link. So do I understand correctly that Jacks' daemon is the process and that JackDBus is an "API" (or something) through which Jackd communicates with other processes? And if so, can every process in Linux function with as well as without a D-Bus intermediate?
merlyn
Established Member
Posts: 1392
Joined: Thu Oct 11, 2018 4:13 pm
Has thanked: 168 times
Been thanked: 247 times

Re: Difference between jackd and jackdbus

Post by merlyn »

I'm using a tablet, so I'm kind of limited at the moment. falkTX explains it above :
falkTX wrote: both jackd and jackdbus implement a jack server.
one is started via command-line and having it running means the jack server is also running - jackd
the other is a user service that can stop/start the jack server dynamically - jackdbus

jackd != jack server.
jackdbus can be always running because it doesn't imply the jack server is also running.
it's only there to listen for requests on the dbus service.
Note jackd != jack server.
User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

Re: Difference between jackd and jackdbus

Post by Linuxmusician01 »

merlyn wrote:I'm using a tablet, so I'm kind of limited at the moment. falkTX explains it above :
falkTX wrote: both jackd and jackdbus implement a jack server.
one is started via command-line and having it running means the jack server is also running - jackd
the other is a user service that can stop/start the jack server dynamically - jackdbus

jackd != jack server.
jackdbus can be always running because it doesn't imply the jack server is also running.
it's only there to listen for requests on the dbus service.
Note jackd != jack server.
Then is there a way to start the Jack server w/ another program than jackd? The man page of jackd says about Jack Server:
jackd is the JACK audio server daemon
merlyn
Established Member
Posts: 1392
Joined: Thu Oct 11, 2018 4:13 pm
Has thanked: 168 times
Been thanked: 247 times

Re: Difference between jackd and jackdbus

Post by merlyn »

If jackdbus is running the JACK server can be started with

Code: Select all

jack_control start
User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

Re: Difference between jackd and jackdbus

Post by Linuxmusician01 »

merlyn wrote:If jackdbus is running the JACK server can be started with

Code: Select all

jack_control start
Wow! Thanks. So indeed, jackd != jack server. Still difficult to exactly understand the difference between jackd and jackdbus. The way I see it now it that their process can run together. Jackd is simply used to start the Jack Server without it being D-Bus aware. But if you want D-Bus (and therefore applications like PulseAudio) to be Jack Server aware then one can use jackdbus.
Post Reply