Skip to content

Commit 6ac9bd5

Browse files
committed
Daemon - increase robustness of linux jack manipulation
Increase waiting time to improve chances of things being ready. Also, do this in a thread so it doesn't affect overall boot time of the app.
1 parent 9165140 commit 6ac9bd5

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

app/server/ruby/bin/daemon.rb

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ def initialize
145145
STDOUT.flush
146146

147147
# Boot processes
148+
148149
Util.log "Booting Scsynth"
149150
@scsynth_booter = ScsynthBooter.new(ports)
150151

@@ -624,25 +625,28 @@ def run_pre_start_commands
624625
def run_post_start_commands
625626
case Util.os
626627
when :linux, :raspberry
627-
Kernel.sleep 1
628-
# Note:
629-
# need to modoify this to take account for @num_inputs and @num_outputs.
630-
# These might not always be set to two channels each.
631628
if @jack_booter
632-
#First clear up any pulseaudio remains of module-loopback source=jack_in
633-
`pactl list short modules |grep source=jack_in| cut -f1 | xargs -L1 pactl unload-module`
634-
`pactl load-module module-jack-source channels=2 connect=0 client_name=JACK_to_PulseAudio`
635-
`pactl load-module module-loopback source=jack_in`
636-
`pactl load-module module-jack-sink channels=2 connect=0 client_name=PulseAudio_to_JACK`
637-
`jack_connect PulseAudio_to_JACK:front-left SuperCollider:in_1`
638-
`jack_connect PulseAudio_to_JACK:front-right SuperCollider:in_2`
639-
`jack_connect SuperCollider:out_1 JACK_to_PulseAudio:front-left`
640-
`jack_connect SuperCollider:out_2 JACK_to_PulseAudio:front-right`
641-
else
642-
`jack_connect SuperCollider:out_1 system:playback_1`
643-
`jack_connect SuperCollider:out_2 system:playback_2`
644-
`jack_connect SuperCollider:in_1 system:capture_1`
645-
`jack_connect SuperCollider:in_2 system:capture_2`
629+
Thread.new do
630+
Kernel.sleep 5
631+
# Note:
632+
# need to modify this to take account for @num_inputs and @num_outputs.
633+
# These might not always be set to two channels each.
634+
635+
#First clear up any pulseaudio remains of module-loopback source=jack_in
636+
`pactl list short modules |grep source=jack_in| cut -f1 | xargs -L1 pactl unload-module`
637+
`pactl load-module module-jack-source channels=2 connect=0 client_name=JACK_to_PulseAudio`
638+
`pactl load-module module-loopback source=jack_in`
639+
`pactl load-module module-jack-sink channels=2 connect=0 client_name=PulseAudio_to_JACK`
640+
`jack_connect PulseAudio_to_JACK:front-left SuperCollider:in_1`
641+
`jack_connect PulseAudio_to_JACK:front-right SuperCollider:in_2`
642+
`jack_connect SuperCollider:out_1 JACK_to_PulseAudio:front-left`
643+
`jack_connect SuperCollider:out_2 JACK_to_PulseAudio:front-right`
644+
else
645+
`jack_connect SuperCollider:out_1 system:playback_1`
646+
`jack_connect SuperCollider:out_2 system:playback_2`
647+
`jack_connect SuperCollider:in_1 system:capture_1`
648+
`jack_connect SuperCollider:in_2 system:capture_2`
649+
end
646650
end
647651
end
648652
end

0 commit comments

Comments
 (0)