Request: Additional 'Aux Send' / monitor channel, or 'Virtual Audio Output'

As more and more people are looking to livestreaming to connect with their communities in today's reality, new services are cropping up to serve those needs. Many in the OBS Studio community are looking to incorporate those services while maintaining OBS Studio as an integral part of their workflow.

Many are finding themselves outputting OBS Studio to another service for the stream (such as StreamYard) and are struggling with how to get audio and video to these services under these scenarios while retaining the functionality, look, and feel they would have enjoyed under OBS Studio alone.

While OBS Virtual Cam provides a solution for the video, there is no built-in solution for an 'OBS Virtual Output' for audio. While Voicemeeter/Virtual Audio Cable can provide the solution for those who plug mic/instrument inputs directly into their PCs and/or monitor their audio directly from within OBS Studio, those who rely on external mixers for monitoring (or in-ear monitoring in our case) are left without a good solution for monitoring audio sources playing directly from within OBS.

Here is our setup:
  • Behringer Xenyx X2442 USB Mixer going into PC via USB
  • In OBS Studio:
    • Mixer added as Audio Source in scene and is set to 'Monitor and Output'
    • Video added as Media Source in same scene and is set to 'Monitor and Output'
    • Monitoring device set to Voicemeeter VAIO
    • OBS Virtual Cam enabled
  • In StreamYard
    • Cam source set to OBS Virtual Cam
    • Mic source set to Voicemeeter VAIO
  • Our guests and viewers can hear all sources set to 'Monitor only' or 'Monitor and Output'
  • We hear ourselves directly through our mixer via in-ear monitors
  • We hear our guests' audio in StreamYard via Voicemeeter out to our USB Mixer (again via in-ears)
(note that in this scenario, audio set to 'output' from OBS Studio is meaningless as it is not being captured or recorded anywhere)

Here we have only 2 choices, neither of which are ideal:
  1. Send input sent to Voicemeeter VAIO back out to USB Mixer in Voicemeeter and hear all sources set to 'Monitor and Output' or 'Monitor Only' in OBS Studio and hear a delayed echo (not conducive to conversation or live musical performance)
  2. Not hear any audio from media sources in OBS Studio but with no echo (not ideal but the better of the 2, for us anyway)
If OBS Studio provided a second audio monitor channel (similar to a second Aux send), you could simply select all sources except the USB Mixer audio source for monitoring and send that back via the second virtual input channel in Voicemeeter.

What would also absolutely work for this scenario would be the ability to capture the audio that would otherwise be going to the 'output' of OBS Studio. If OBS Studio had a 'Virtual Output' plugin similar to the 'Virtual Cam' plugin, then that would also be a great solution.
 

kwilinsi

New Member
Ironic that I should find a post so comprehensively listing the precise features I've been googling around for, and made on the same day that I've been searching. I agree that having a VirtualCam equivalent for audio in OBS would be amazing.

In my scenario, I'm trying to use OBS to mix audio and video sources and stream it to Discord. I can achieve the video either through the VirtualCam plugin and telling Discord to look for it as a webcam, or if I want Discord to show "going live" then by enabling the "Windowed Projector" of the video output and having Discord screencapture that. Here it works great because I get to use studio mode to make changes and view the video preview seen by the people watching the stream.

The problem occurs when I try to configure audio. I'm capturing audio in OBS in three ways: my headset microphone, pre-loaded vlc playback of video and audio files, and the vb-audio.com virtual audio cable (which I installed reluctantly but I find reasonable because it's so lightweight) used to capture specific program outputs. To capture certain applications' audio signals and not others, I use the Windows 10 sound settings, scroll to the bottom for "App volume and device preferences" and switch the apps I wish to stream to the virtual audio cable input as their default output device (instead of my headset, where all other sounds are targeted).

From here, I can set all sound devices to "Monitor and Output" or "Monitor" (there's no difference) in the OBS advanced audio properties panel. I then set my OBS monitoring device to a second vb-audio.com virtual audio cable (A), and treat that as my microphone in Discord.

This setup allows me to control the audio and visuals in obs and have them stream over Discord. However, I run into a problem: even though everyone else can hear the output from OBS, I can't, because it's routed through a virtual audio cable that isn't connected to my headset. And even if I managed to split that audio signal into both the virtual audio cable and my headset audio with something like voicemeter, I would end up hearing an echo of my own voice mixing in OBS at a noticeable delay.

What I need to do is send OBS's entire audio output directly into Discord, just like the video, and use the "Monitor and Output" tool to let me hear only certain devices in my headset. As far as I know there is no way to do this, meaning I'm stuck mixing audio solely by watching visual indicators of decibels in the OBS audio mixer (luckily this works somewhat, since I know how all the audio sources sound already).

I'm pretty sure this doesn't exist, but I would love to be enlightened with regard to a plugin or setting that lets me send some OBS audio sources to one output device and some sources to another, which at the moment can only be achieved by actually sending your OBS stream to something like YouTube and using the monitoring tools on your local end.
 

bcarp

New Member
I had exactly this question last week and I think I've just found a solution.

NDI Virtual Input is an alternative to OBS-VirtualCam which also deals with audio. It's free, but you have to sign up. You don't need all the tools for this purpose, I've just used Virtual Input and Studio Monitor (just to easily verify what is present on the output of the Virtual Input).

Virtual Input takes the main audio output from OBS (the same audio that would be sent to a stream or recording), leaving you free to use the audio monitor output path for exactly that - monitoring.

From the advanced audio properties window you can set sources to go to the main output only (Monitor Off), both outputs (Monitor and Output) or just the local monitor output (Monitor Only (mute output)).

In the destination application you select NDI as both the audio and video source. If needed you could bring the audio back from the application through a virtual cable into OBS and set as a monitor source only.

Hope that helps somebody!
 

bcarp

New Member
If OBS Studio provided a second audio monitor channel (similar to a second Aux send), you could simply select all sources except the USB Mixer audio source for monitoring and send that back via the second virtual input channel in Voicemeeter.

What would also absolutely work for this scenario would be the ability to capture the audio that would otherwise be going to the 'output' of OBS Studio. If OBS Studio had a 'Virtual Output' plugin similar to the 'Virtual Cam' plugin, then that would also be a great solution.

This would be a great addition though too.
 
I had exactly this question last week and I think I've just found a solution.

NDI Virtual Input is an alternative to OBS-VirtualCam which also deals with audio. It's free, but you have to sign up. You don't need all the tools for this purpose, I've just used Virtual Input and Studio Monitor (just to easily verify what is present on the output of the Virtual Input).

Virtual Input takes the main audio output from OBS (the same audio that would be sent to a stream or recording), leaving you free to use the audio monitor output path for exactly that - monitoring.

From the advanced audio properties window you can set sources to go to the main output only (Monitor Off), both outputs (Monitor and Output) or just the local monitor output (Monitor Only (mute output)).

In the destination application you select NDI as both the audio and video source. If needed you could bring the audio back from the application through a virtual cable into OBS and set as a monitor source only.

Hope that helps somebody!

I already have NDI Installed but I never knew about the NDI Virtual Input...can't wait to try this!! I'll report back here if it works.

THANKS SO MUCH!!
 
Initial testing says...IT WORKS! Can't wait to try this out in a live environment!! Until OBS includes some deeper audio option, this could be the perfect solution in the meantime.

Thanks again!
 

sproutmagnet

New Member
this is exactly what I need. I downloaded the software and was hoping to see it in the tools section of OBS but I couldn't see it. is there something else I need to do first? thanks
 

kireime

New Member
this is my scenario and it works, but a second monitor output or an equivalent VirtualCam plug-in for audio solves sooner and better
 

Attachments

  • scenario.jpg
    scenario.jpg
    232.8 KB · Views: 282

LearninforCSZ

New Member
I'm just made an account to chime in on this to let everyone know what I've found on this.

I've been trying to resolve the same type of situation as the original poster (though using just a Focusrite 2i2 so less complicated I admit) on a way to get around monitoring without a terrible echo.

I've found a combo of Voicemeeter Banana and VB Audio Cable works well but NDI Virtual output does not. It's okay but I found that it produced some unstable audio quality and needed to be boosted in the NDI Virtual input but not anything I would consider good in a professional setting.

Another thing that could be helpful with the mixer that might be helpful I've found is this: https://github.com/Andersama/obs-asio - Allowing OBS to see individual inputs from a mixer instead of just a stereo mix down. I'm not sure on the Behringer but I have had individual inputs come in on my Focusrite.

The biggest thing I've noticed is its better to monitor things in Voicemeeter than in OBS itself. The other thing I've noticed is that at least in Windows, it's important you set VoiceMeeter Input on Playback as the default device (I put it for default device and communication device), without it and running it through the Focusrite as the default added about a 1.1 second delay between the sound and the video, where there was none with it being the default.

In this case, I bring in any audio from the mixer as either the ASIO device or just Audio input. I can bring in other audio either through OBS or for my testing, I used Spotify to come in by setting in Windows 10 to have the output of the program use the VB Audio Cable to send to OBS as a different input source.

From there I still had VoiceMeeter Input (VAIO) set as Monitor. In this case I could have my mic in the scene but there I have it set to monitor off. Everything, I wanted to monitor and send out, I send to monitor and output. That way everything still works in the scene for it streaming or recording.

Now in VoiceMeeter, you can set the hardware to use the mixer. The Focusrite has a direct monitor which I prefer to use instead but I still want it's output as well as in the stream. So for hardware input in VoiceMeeter, select the Focusrite/Mixer as Input but DESELECT A1 but keep it out to B1. A1 then can set to mixer headphones or other headphones or whatever you use to monitor.

Anything sent out to B1 can then be used as the source like the VirtualCam and have the mic being in two places at once without echo while still having it stream out as well. In the case of the original poster and didn't want to have their mic heard by the stream, they would just not add it to OBS but add it to VoiceMeeter to mix out to any guests if needing to give any direction. This route with VoiceMeeter Banana you have two outputs so you could use one to go out to a service with normal audio like you'd have in OBS (any sources as monitor only or monitor and output) and another where you could mix in your mic to send out to a different application depending on the capabilities of your mixer. So far I can only speak to my Focusrite but I know VoiceMeeter does allow for other ASIO hardware mapping if you wanted something in VoiceMeeter and not OBS.

All of this I could set up with monitoring both myself with no echo, keep the stream going as normal, and be able to output to Zoom with high quality audio.

The one nifty trick I've noticed with the NDI virtual input that could be useful is that you can put a filter on a scene that will be available that can be different then your main scene. Sadly the audio still is only the active scene playing but could be useful if you want your performers to see something else than the main audience can see.
 

LiveTV

New Member
I like the creative work-arounds that I am seeing here but I think it is important to keep requesting *simple* native functions in OBS to offset the need for *complex* work-arounds! I like the initial suggestion of "aux sends" as a simple function because it will have so much use in other ways and avoid lots of kludge. It's such a hassle to restore everything to normal when I want to start a brand new configuration for a different project or just do a simple normal Zoom call after I've been streaming through it a day before. Additionally, work-arounds usually burn up precious resources.

OBS developers would save a lot of headaches if they would take a long look at production equipment that has evolved over many decades. I deal with production switchers mostly. It blows my mind that something so simple yet powerful as a keyer is not implemented in OBS, similar software, or even video editors the way it is done on switchers. Instead we see "blending modes" more like what we see in paint programs. The ability to key using a fill and a matte from independent sources (not necessarily married as video and alpha channels in one source) with adjustable clip and gain is huge! What I'm afraid of seeing is incremental addition of features as they are needed but not a comprehensive, well organized theory behind the design of OBS. The risk is that features will manifest as more and more piecemeal and not lean, mean, sub-systems that are both simple and efficient for the user and the computer.
 

joel_b

New Member
Just to outline what I've been doing as another creative workaround for this.

I run OBS on a Mac, as an input to Zoom. I use Obs Virtual Webcam for the video.
I then virtually split the stereo audio monitor output from OBS into two mono outputs, giving me two discrete audio channels of output from OBS.

To do this:
  • I use Loopback Audio (Windows equivalents exist) to take the left channel of OBS output to both L+R inputs of one virtual audio device (used for my main Zoom input) and the right channel of OBS to both L+R for a different virtual audio device (used for my monitoring headphones).
  • I then use the Rematrix plugin filter in OBS for my audio sources, setting the those audio source I want to go to zoom to the left channel and those just to my headphones to the right channel. I have one source I want to send to both, so leave it going to both channels.
The only downsides of this approach are that my recorded video files from Obs have the audio panned as set by Rematrix, but I can correct that afterwards using ffmpeg, or a video editor. And this setup also requires additional routing in Loopback, after the OBS signal chain, to route to the audio devices.
I've also experimented using OBS surround sound options - giving 4 (or more) channels of monitor output. The same trick with the Rematrix plugin works here too, but again records each audio track in the mkv file with surround sound number of channels. As I'm fine with mono input to zoom and my headphones, the stereo option works just fine.

Hope this is useful. I would love OBS to support a 'monitoring device' option per audio source, or per 'audio track'. Something like this would simplify my setup.
 

yonkiman

New Member
A similar solution that seems to work well: VirtualAudioStream. $29 USD. OBS monitor output goes to "Stream 1", route Stream 1 to my local audio device for monitoring/sending to local PA system, and set the Zoom Microphone input to "Stream 1" to send the audio to Zoom. Seems to be working great, no latency that I can detect.
 

kiwifilm

New Member
Here's a solution that give you audio aux outputs out the yin-yang!


It's an extremely versatile and configurable filter plugin for OBS.

This can be useful in different use cases:
  • monitoring a source on multiple devices
  • monitoring audio without the delays of syncing to video
  • separate monitoring audio levels per source and device
You can link it to follow the settings in Audio Meter or unlink it and have independent control of each monitor output - yes, you can apply muliple filters to a single input source, and so can send monitor audio feeds to as many out destinations as your system has and will allow, each with individual audio level/mute control, or linked to the mixer settings...

Check it out...
 
Top