Re: [LAU] Streaming setup with OBS and JACK

From: Joel Roth <joelz@email-addr-hidden>
Date: Wed Jul 25 2018 - 11:14:42 EEST

Hi Philipp,

On Wed, Jul 25, 2018 at 08:56:56AM +0200, hollundertee@gmx.net wrote:
> Hi,
>
> I have to apologise, this mail is going to be long, so I'll try to
> structure it a bit.
>
> Overview
> I have been live streaming on twitch for the past year, mostly games
> and purely as a hobby. The possibilities of PA and OBS for routing and
> audio processing are rather limited, I'd like to try and improve my
> setup by adding JACK to the mix.
>
> Current Setup
> 2-3 Audio interfaces. My main one is the UA-25 usb interface. There is
> another in the GPU connected via HDMI to the monitor and a usually
> deactivated one on the motherboard.
> I am mostly streaming gameplay, most if not all games rely on ALSA or
> PulseAudio, so I have PulseAudio running. In OBS I simply capture the
> UA-25 "desktop output".
> I also have it capture the UA-25 inputs, of which only one is connected
> to the microphone. There is an option within OBS to have that signal on
> both channels.
> I use the compressor plugin built into OBS with pretty much "default"
> voice/voiceover settings.
> Afterwards "desktop" and voice get mixed to a stereo signal and
> streamed.
> I monitor the "desktop" signal as it is immediate and doesn't contain
> my voice. To check whether the mix is fine I need to check either the
> outgoing or the incoming signal (which is delayed by a few seconds).
> Currently I route the incoming signal via PA to the GPU audio
> interface. To actually hear it I need to physically switch the
> headphones for the in-ears connected to the monitor.
> I do not use a cam and intend to keep it that way.
>
> Current Problems
> A) Monitoring is cumbersome because I need to switch between the proper
> headphones and the in-ears. While the in-ears aren't bad by themselves,
> the sound through GPU -> HDMI -> Monitor is pretty bad. It is barely
> enough to judge whether or not the levels are totally off.
> I'd much prefer to be able to monitor using my proper headphones at the
> push of a button.

> B) OBS comes with rather few audio plugins by default
> (https://github.com/obsproject/obs-studio/wiki/Filters-Guide) and I'm
> not convinced they are more than serviceable. The compressor is hard to
> set up, I wish it had at least some visual indication for the threshold.
>
> Possible solution
> While there are a few effects rack for Pulse Audio, like
> https://github.com/wwmm/pulseeffects, and Pulse Audio can do routing I
> don't understand PA's routing and rather use JACK. Since I haven't
> followed Linux Audio land quite as closely the last few years I have a
> few questions.
>
> 1) Can someone tell me whether the OBS jack plugin is good enough or
> does something stupid? The code can be found here:
> https://github.com/obsproject/obs-studio/tree/master/plugins/linux-jack

> 2) Is there a reliable and if possible hassle free way to get ALSA and
> PA into JACK? ALSA loopback would probably not work for programs using
> PA directly.

One way is to use PA and JACK on separate audio interfaces.

Pulseaudio can also be run above JACK.

https://github.com/jackaudio/jackaudio.github.com/wiki/WalkThrough_User_PulseOnJack

I would suggest getting as much functionality handled in the
JACK layer as possible.

> 3) I think switching around monitoring should be doable with a simple
> script calling jack_connect, provided the ports are predictably named.
> Even I should be able to do that. Is there another solution?

Another solution would be to drive both monitors, and set up
some kind of crossfader, if you need one.

> 4) Even though it's a small setup I'd need some sort of session
> management to bring up at least the jack side of things.

jackd, the JACK daemon, runs continuously. Various DAWs and
recorders can make JACK connections for signal I/O for
individual tracks. Being able to run shell scripts
on project load or track setup can be useful, too.

> 5) Finally what do you recommend as plugin host and compressor plugin
> for voice?

There are many possible plugin hosts. Some can do
glitch-free switching in and out of effects.

I'm partial to Ecasound, which is flexible enough to do I/O
with JACK and ALSA devices simultaneously (JACK usually
works with a single sound card.) Others will recommend a
compressor, there are many LADSPA and LV2 plugins available.

> Thank you in advance for your help. I can at least document the setup
> somewhere, for the next one who tries to do something like that. I
> could do that on my blog (that no one ever reads) or if you know some
> good wiki or something I can put it there.

Posting an article (or link a blog article) would be
on-topic for this list. And here is one wiki:
https://wiki.linuxaudio.org/wiki/start

cheers,

joel

> Best Regards,
> Philipp
> _______________________________________________
> Linux-audio-user mailing list
> Linux-audio-user@lists.linuxaudio.org
> https://lists.linuxaudio.org/listinfo/linux-audio-user

-- 
Joel Roth
  
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Wed Jul 25 12:15:03 2018

This archive was generated by hypermail 2.1.8 : Wed Jul 25 2018 - 12:15:03 EEST