#
# Start Jack
#
echo
echo "Start Jack"
qjackctl &
PID_JACK=$!
sleep 5
#
# Create Bridges to/from PulseAudio
#
echo
echo "Create Bridges to/from PulseAudio"
INDEX_SINK_0=$( pactl load-module module-jack-sink channels=2 sink_name=PA_out_Playback client_name=PA_out_Playback )
INDEX_SINK_1=$( pactl load-module module-jack-sink channels=2 sink_name=PA_out_Meet_Rtrn client_name=PA_out_Meet_Rtrn )
INDEX_SOURCE_0=$( pactl load-module module-jack-source channels=2 source_name=PA_in_Mics client_name=PA_in_Mics )
INDEX_SOURCE_1=$( pactl load-module module-jack-source channels=2 source_name=PA_in_Meet_Send client_name=PA_in_Meet_Send )
INDEX_SOURCE_2=$( pactl load-module module-jack-source channels=2 source_name=PA_in_Record client_name=PA_in_Record )
#
# Remove Automatic Connections
#
disconnect_all ()
{
for CONNECTION in $(jack_lsp --connections "$1")
do
if [[ "$CONNECTION" = "$1" ]]
then
continue
fi
jack_disconnect "$1" "$CONNECTION"
done
}
disconnect_all system:capture_1
disconnect_all system:capture_2
disconnect_all system:playback_1
disconnect_all system:playback_2
#
# Save and Set Default Connections
#
PA_DEFAULT_SINK=$( pactl get-default-sink )
PA_DEFAULT_SOURCE=$( pactl get-default-source )
pactl set-default-sink PA_out_Playback
pactl set-default-source PA_in_Mics
#
# Create Bridges to/from Mic, Spk
#
echo
MIC0=hw:CARD=U192k,DEV=0
SPK0=hw:CARD=U192k,DEV=0
echo "Use MIC0: $MIC0"
zita-a2j -j MIC0 -d $MIC0 -c 2 -r 48000 &
PID_MIC0=$!
sleep 1
echo "Use SPK0: $SPK0"
zita-j2a -j SPK0 -d $SPK0 -c 2 -r 48000 &
PID_SPK0=$!
sleep 1
#
# Remove Bridges to/from Mic, Spk
#
echo
kill -TERM "$PID_MIC0"
sleep 1
kill -TERM "$PID_SPK0"
sleep 1
#
# Restore Default Connections
#
echo
echo "Unload Bridges between Jack and PulseAudio"
pactl set-default-sink "$PA_DEFAULT_SINK"
pactl set-default-source "$PA_DEFAULT_SOURCE"
#
# Remove Bridges to/from PulseAudio
#
pactl unload-module $INDEX_SOURCE_2
pactl unload-module $INDEX_SOURCE_1
pactl unload-module $INDEX_SOURCE_0
pactl unload-module $INDEX_SINK_1
pactl unload-module $INDEX_SINK_0
#
# Stop Jack
#
echo
echo "Stop Jack"
kill -TERM "$PID_JACK"
sleep 1
I do not find the missing jack_lspCreate Bridges to/from PulseAudio
Failure: No such entity
Failure: No such entity
Failure: No such entity
Failure: No such entity
Failure: No such entity
./StartJack.sh: Zeile 29: jack_lsp: Kommando nicht gefunden.
./StartJack.sh: Zeile 29: jack_lsp: Kommando nicht gefunden.
./StartJack.sh: Zeile 29: jack_lsp: Kommando nicht gefunden.
./StartJack.sh: Zeile 29: jack_lsp: Kommando nicht gefunden.
Failure: No such entity
Failure: No such entity
| lsp-plugins | Linux Studio Plugins Project (Stand-alone) | Paket
| lsp-plugins | Linux Studio Plugins Project (Stand-alone) | Quellpaket
| lsp-plugins-common | Linux Studio Plugins (Common files) | Paket
| lsp-plugins-devel | Linux Studio Plugins Development files | Paket
| lsp-plugins-doc | Linux Studio Plugins Documentation | Paket
What happens if you connect the mic to it anyway? :-)I do not know what ZOOM VoiceEngine is for – something which starts with Zoom.
Live audio delay from a mic to an app other than OBS? That's one of the things that my DAW does. Insert the delay plugin (or several) at the right spot(s) in the DAW's processing chain, and tune as needed.Maybe I should explain the issue: The issue is delay between Video and Audio. I need to adjust the audio to the OBS video output.
What happens if you connect the mic to it anyway? :-)
I assume DAW = Digital Audio Workstation.Live audio delay from a mic to an app other than OBS? That's one of the things that my DAW does. Insert the delay plugin (or several) at the right spot(s) in the DAW's processing chain, and tune as needed.
Yes.I assume DAW = Digital Audio Workstation.
I like Ardour, but as I'm sure you know, there are lots of them to choose from.Which DAW would you suggest?
sudo apt install ardour
, and then see what it takes to get some plugins. YMMV.How exact? Within 1 video frame? 1 audio sample? Only enough that a human won't notice (a small handful of frames)?I need a nearly exact synchronization between OBS and audio.
Good. That makes it easy.The audio is now before the Video output.
The DAW should do it then. You can even integrate the DAW, or at least its control, into OBS, using the Advanced Scene Switcher plugin to look for whatever trigger you want, and send the appropriate messages to the DAW:So I'm looking for the best solution, and not necessarily for integration into OBS
As exactly as a professional broadcaster is satisfied – I think that means that humans do not realize the delays.So how exact does it really need to be?
I like Ardour, but as I'm sure you know, there are lots of them to choose from.
That said, I'd shy away from using JACK in OBS. Yes, it works......as long as you never change scenes. When a scene becomes inactive, like when you switch away from it, its JACK clients disappear, and their connections with them. Then when you switch back to that scene, the JACK clients come back, but their connections don't.
I've known about that plugin for a long time, and every once in a while I think it might be useful, but it's always been for video. I never knew it did audio too! The demo never mentioned that at all.To keep JACK from disconnecting, I use the Downstream Keyer plugin, and it has the JACK input.
GitHub - exeldro/obs-downstream-keyer
Contribute to exeldro/obs-downstream-keyer development by creating an account on GitHub.github.com
This way, the JACK input never drops, and I can switch scenes freely.