Consider for a moment – if you start JACK and then get no sound from PulseAudio, you will have the same problem if scsynth starts JACK. That is, the issue is the pulse/jack configuration. The issue is not the manner in which JACK is being started.
Some will disagree, but this is the way I have configured all of my Linux systems for some 10 years now.
-
qjackctl → Setup → Misc → turn off D-Bus everything.
-
sudo pico /etc/pulse/client.conf
(or you can use another editor instead of pico) and add:
autospawn = no
daemon-binary = /bin/true
This is to prevent PulseAudio from starting automatically.
-
Edit ~/.pulse/default.pa
and make sure it includes:
load-module module-native-protocol-unix
load-module module-jack-sink channels=2
load-module module-jack-source channels=2
load-module module-null-sink
load-module module-stream-restore
load-module module-rescue-streams
load-module module-always-sink
load-module module-suspend-on-idle
set-default-sink jack_out
set-default-source jack_in
-
Create a bash script somewhere start-pulse.sh
(I put it in ~/share/pulse-jack-scripts/
but the location doesn’t matter):
#!/bin/bash
pulseaudio --start
pactl load-module module-jack-sink channels=2
pactl load-module module-jack-source channels=2
pacmd set-default-sink jack_out
pacmd set-default-source jack_in
-
Create another bash script somewhere stop-pulse.sh
(preferably same location):
#!/bin/bash
pulseaudio --kill
-
In qjackctl → Setup → Options, add the start-pulse script as a script to execute after startup, and add the stop-pulse script as a script to execute before shutdown.
After this, when you boot your system, you might not get any audio from any app (unless it can fall back to ALSA directly, which some apps do). But after you start JACK, then JACK apps can connect to the JACK server, and a PulseAudio server will also be started, connected to JACK.
So the only difference to my user experience from “normal” users is that I have to click the Start button when I want audio, and Stop when I’m finished with the session.
Apart from that, I’m running both JACK and Pulse all the time.
(Probably some people will tell you this is too complicated and not modern enough. I’m just reporting what works for me. It is a bit complicated, but you set it up only one time per OS install and then shouldn’t have to touch it again. I’m aware that it’s a bit of a “nuclear option” but I haven’t had good experiences with D-Bus trying to switch audio systems automagically – so I just don’t use it. This way, I have control over what’s running.)
You connect JACK client apps via JACK. The JACK server is not its own client.

“system” is audio hardware. So, audio hardware → PA input source, and PA audio output → audio hardware.
When you boot scsynth, then you will see scsynth as a JACK client app. You want to mix scsynth’s output with the computer’s hardware input (“system:capture”) and pipe them both to PulseAudio’s audio input. The mixing happens transparently – you only need to add a connection from scsynth to PulseAudio JACK Source.

hjh