Bug Report "Desktop Audio Device" & VB-Audio: Wrong devices

I'm on 18.0.1 - Win7x64.

I've got VoiceMeter Banana and the three virtual cables installed.

Bug #1:
I've noticed that under Settings->Audio->Desktop Audio Device, the listed entries are the inputs for the virtual cables and for VoiceMeter. It should be listing the outputs for these devices, not the inputs, yes?

"Desktop Audio Device 2" has the same dropdown list problem.

Interestingly, the three Mic input dropdowns list the correct output devices for the virtual cables and VoiceMeter.

Note: Since I've set VoiceMeter as the default output device, setting "Desktop Audio Device" to Default actually works correctly.

Bug #2:
If I set VoiceMeter's A2 output to one of the virtual cables, and then select that virtual cable as a Mic device, when the game I'm playing generates sound (such as background music), that sound stutters pretty badly.
 

Yurlyn

Member
Bug #1 is not a bug. The inputs are like your Speaker outputs. In my setup (also using VM Banana) my Winamp's output goes into VoiceMeeter as an output as if it was outputting to Speakers. But for VM that is an input, in this case the first virtual input channel of VM. The hardware inputs of VM take your recording devices in Windows as should but the virtual outputs of VM are called inputs to Windows because they act as line-in/mic devices. This is just merely the naming thing of the devices according to Windows and you can change it in your sound settings of Windows if it confuses you but with the logic above I'd recommend leaving it as is.

Bug #2: VM's A outputs are all hardware and can not be set to route to VM itself. The B outputs are the only virtual outputs (they go into OBS's Mic/Auxiliary inputs in the settings, not the desktop audio inputs). Could you tell me if under the Playback sound settings of Windows any of the VoiceMeeter inputs are set to default device?
 
Okay, perhaps I'm mis-understanding the labeling here. OBS's "Desktop Audio Device" is suppose to be a device from which OBS receives audio, to be mixed and streamed, yes?

I guess what confuses me the most is why is there a difference in the VB devices listed between the "Desktop Audio Device" and the Mic input devices? Since (I believe) both are inputs into OBS, why are the VB-cable listings different between them?

As to VM's A outputs - if they are only hardware outputs, why can I select "WDM: Cable-A Input" for the device? Seems to me that should allow me to feed Cable-A from, say, VM's A2 output, and then select "Cable-A Output" in OBS's "Desktop Audio Device".

I've set VM to be the default Playback and Recording devices under Windows. I must do this for games/apps that doesn't allow specific playback devices to be selected - that way they open the "default" device (VM's VAIO Input), and I can control it in VM.

To be clear: Setting the "Desktop Audio Device" to "Default" does work (since VM is the default Playback and Recording device). I just don't understand why I can't select a virtual cable instead.
 

Yurlyn

Member
Yes, Desktop Audio Device is generally set to the default audio device of Windows, so every sound Windows will make will go through that device. The default device is also used by your browser and by your games. But you could also set the Desktop Audio Device to Windows' default communication device in case you have the output for it (in this case any VM input could do).
You could in short say that the Desktop Audio Device is from the computer to you and the Mic/Auxiliary Device is from you to the computer.

About VM's A outputs, that is weird :o Unless that's put in the last updates or something. I'm 2 minor updates behind. But no, because the A channels are sending to devices used as outputs. If you are able to send it to Cable-A (is that how you named it?) then it goes back into VM. What you'd need to do is send the output to a B output channel and don't set the Desktop Audio Device but the Mic/Auxiliary Device. If you set the Desktop Audio Device to a VoiceMeeter input channel you're going to bypass VoiceMeeter. OBS would basically be capturing what goes into VoiceMeeter and not what comes out so you'll lose what control you wanted with VM. You can test this by muting VoiceMeeter's virtual inputs and all outputs, virtual or not. OBS will still continue to detect sound.

Here is a little schematic of my setup.
Red arrows: Point of origin = End
Blue arrows: Internal connections
Green arrows: Set up by me
 

Attachments

  • OBS VM My Setup.png
    OBS VM My Setup.png
    479.3 KB · Views: 530
I'm using VM Banana 2.0.3.3, which I believe is the latest version. The virtual cables "Cable-A" "Cable-B" and "Cable" (the third one I got after donating money) are from VB, and (from what I understand) are just audio I/O "devices". They are suppose to be able to be used to route audio between apps, and are not tied specifically to VM. VM appears to be able to utilize those "cables", if so selected, but they are not "hard-wired" into VM. Looking at your setup PNG, it doesn't appear that you've installed the VB Cable devices.

I did confirm that I can select my Blue Spark Digital Mic as the first hardware input for VM, route it to B1, and in OBS's Mic selection, choose VM's B1 "output", and that works perfectly. My voice is picked up and processed through VM, sent to OBS, and captured/streamed just fine.
 

Attachments

  • VB Audio.PNG
    VB Audio.PNG
    35.8 KB · Views: 217

Yurlyn

Member
Oh I see, I did indeed not install the VB stuff since VM is all I need and has a great interface unlike my experience with VB before VM.

And great that it works :D I also use VoiceMeeter as an extra noise gate before the noise gates of TeamSpeak, Discord, and OBS's. And I've made my voice a bit more bass-y so I sound manlier :P
Also, you can mess around with the Macro Buttons program that came with VM to change your voice on the fly without having to open VM. Cool for some effects ^^
 
Well if you install the VB cables, you'll be able to see what I'm talking about regarding the Desktop Audio Device dropdown listing the wrong "ends" of the VB cables, and using a VB cable out of VM to OBS's Mic input causes stuttering audio. I still think these are bugs in OBS.
Thanks for the help Yurlyn.
 
Last edited:
Solution for Bug #2:
Okay, for anyone who may be experiencing the same stuttering problem when using a VB cable between VoiceMeeter and OBS's Mic input, here's the answer:
Go to VM's System Settings/Options, and in the Buffering section, bump up the samples to at least 768 for WDM. (Or for KS, if you're using KS for streaming.) Apparently the default of 512 samples is just not enough. You may need to try different values to find the best setting given your PC's hardware.

I still consider Bug #1 to be valid: I understand now that the "Desktop Audio Device" is suppose to refer to a Playback device (so it can capture what the speakers are getting), but I still believe for VB Audio devices (VM and the VB Cables) it should list the outputs, not the inputs. Or perhaps list both and let the user decide?
 

Yurlyn

Member
No problem ^^

Ah right, yeah I remember that. Sometimes the sample rate is a bit messy. Some of my A channels did that so I switched to MME for those. Worked as well.

Well, it's still not a bug. It's just from what perspective you are looking. If you look from OBS it may seem a bit weird but OBS abides by what Windows has listed in what category. But in this case you have to look from VB's or VM's perspective.as it's basically a hardware mixer. Just because you can split the audio going towards the mixer between the mixer and another piece of hardware doesn't mean that the signal to mixer becomes an output. It will stay an input.
 
Top