Audio setup unstable and Jack messages inside post window

Hi everyone,
I don’t know if this is the right place to discuss this. Since the problem I am about to expose is partially related to SuperCollider, I think this might still be an interesting topic in case anyone has encountered similar problems.

I’ve been working with Linux Ubuntu Studio 18.04.5 LTS for several years now.
I’ve always used jack (via qjackctl) and the pulseaudio jack-sink and jack-source modules.
Possibly also a2j_midid (controlled via a2j_control) to convert midi streams.

In recent months, I am noticing some instabilities in my audio setup.
In particular, I find that I am sometimes forced to kill jackdbus and restart the jack server to allow the audio to work properly.

When I open “Patchage” (or launch the pactl list modules command), I see that the jack-sink and jack-source modules are instantiated twice. I don’t know if this is the cause of the conflicts and malfunctions, the fact is that some time ago this did not happen and the audio setup worked correctly.

Probably the cause of this was some clumsy installation of some software component that I am now unable to identify.

The interesting thing in my opinion is that, ever since these malfunctions occurred, SuperCollider also started to behave strangely. The post window started to list, in addition to messages coming from the server or the interpreter, also messages that are related to jack (messages are shown every time I play an audiofile with an external player, every time I open a standalone plugin, every time I open a DAW, etc…) which is quite annoying to me.

This is the output in the post window following a server boot with s.boot:

Booting server 'localhost' on address 127.0.0.1:57110.
Faust: supercollider.cpp: sc_api_version = 3
Faust: FaustJPverbRaw numControls=11
Found 407 LADSPA plugins
Faust: supercollider.cpp: sc_api_version = 3
Faust: FaustGreyholeRaw numControls=7
VSTPlugin 0.5.4
read cache file /home/nicola/.VSTPlugin/cache.ini
Jack: JackClient::SetupDriverSync driver sem in flush mode
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_SuperCollider
Jack: Clock source : system clock via clock_gettime
Jack: JackLibClient::Open name = SuperCollider refnum = 9
JackDriver: client name is 'SuperCollider'
Jack: JackClient::PortRegister ref = 9 name = SuperCollider:in_1 type = 32 bit float mono audio port_index = 15
Jack: JackClient::PortRegister ref = 9 name = SuperCollider:in_2 type = 32 bit float mono audio port_index = 16
Jack: JackClient::PortRegister ref = 9 name = SuperCollider:out_1 type = 32 bit float mono audio port_index = 17
Jack: JackClient::PortRegister ref = 9 name = SuperCollider:out_2 type = 32 bit float mono audio port_index = 18
Jack: jack_set_graph_order_callback ext_client f5413960 client f5413960 
SC_AudioDriver: sample rate = 48000,000000, driver's block size = 1024
Jack: JackClient::Activate
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackClient::kBufferSizeCallback buffer_size = 1024
Jack: JackClient::Init : period = 21333 computation = 100 constraint = 21333
Jack: JackPosixThread::AcquireRealTimeImp priority = 5
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 2
Jack: JackClient::kActivateClient name = SuperCollider ref = 9 
Jack: JackClient::Connect src = system:capture_1 dst = SuperCollider:in_1
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 4
Jack: JackClient::kGraphOrderCallback
Jack: WaitGraphChange...
JackDriver: connected  system:capture_1 to SuperCollider:in_1
Jack: JackClient::Connect src = system:capture_2 dst = SuperCollider:in_2
JackDriver: connected  system:capture_2 to SuperCollider:in_2
Jack: JackClient::Connect src = SuperCollider:out_1 dst = system:playback_1
JackDriver: connected  SuperCollider:out_1 to system:playback_1
Jack: JackClient::Connect src = SuperCollider:out_2 dst = system:playback_2
JackDriver: connected  SuperCollider:out_2 to system:playback_2
SuperCollider 3 server ready.
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 4
Jack: JackClient::kGraphOrderCallback
JackDriver: max output latency 42,7 ms
Requested notification messages from server 'localhost'
localhost: server process's maxLogins (1) matches with my options.
localhost: keeping clientID (0) as confirmed by server process.
Shared memory server interface initialized

Instead, this is the output I read in the post-window when I play an audiofile with audacious

Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 4
Jack: JackClient::kGraphOrderCallback
Jack: JackClient::ClientNotify ref = 10 name = audacious notify = 1
Jack: JackClient::RemoveClient name = audacious, ref = 10 
Jack: JackClient::kRemoveClient fName = SuperCollider name = audacious
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 4
Jack: JackClient::kGraphOrderCallback
Jack: JackClient::ClientNotify ref = 10 name = audacious notify = 0
Jack: JackClient::AddClient name = audacious, ref = 10 
Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_audacious
Jack: JackClient::kAddClient fName = SuperCollider name = audacious
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 4
Jack: JackClient::kGraphOrderCallback
Jack: WaitGraphChange...
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 18
Jack: JackClient::ClientNotify ref = 9 name = SuperCollider notify = 4
Jack: JackClient::kGraphOrderCallback

How can I solve it?
How can I investigate to find out what the source of the malfunction is and eliminate it?
Which debugging procedure do you think could be the right one to follow?

Thank you for your support.


PS.

Below is the script I am currently using after starting jack (from inside the Qjackctl):

`pacmd load-module module-jack-source; pacmd load-module module-jack-sink; a2j_control ehw; a2j_control start;`

This, on the other hand, is the script I use after his arrest:

`killall jackd`

Some images of my current Qjackctl setup:




I don’t have an answer for you, but it does look like it’s 100% a JACK issue. The odd messages in SC are caused by the JACK problem; they aren’t the cause of it.

I don’t trust jackdbus and I’ve disabled it in every Ubuntu system I’ve used for some 10 years now.

hjh

1 Like