Can this shitty program stop randomly changing input devices to the Default one?

mrakgr

New Member
I am fucking pissed off right now.

I spent the last 25m talking into the camera in a casual fashion, letting things come on their own and when I added the clip to the timeline, it turns out there was no audio. I took a look at the OBS, and sure enough the bar was grayed out. It only became green once I switched the input device to my MIC.

This wasn't the first time this happened.

Couple of weeks ago, I did a week worth of screencasting on my Youtube channel only for there to be no audio. I had to turn the entire thing into a timelapse while putting some random music in the background.

Now instead of programming, I am writing this post and need to take a break so I can stop being so angry.

...

More constructively, I am trying to investigate this now and it's weird. I cannot actually disable the audio input by switching back to Default.

Sometimes it simply switches to Default and becomes disabled, and I can get it to work by selecting the specific mic that I have. After that I see that it's taking in input from the mic based on the bar. That is the case right now.

Is maybe updating OBS that is causing this? Or maybe restarting the computer? I am not sure. I'll try the later, but it's probably not it.

I am looking at the recording right now and I see that when I started it, the MIC bar was in fact green. I tried pasting a screenshot to show you, but the forum file limit is too low.

I'll try disabling it and turning the computer on and off.
 

mrakgr

New Member
No, I can't figure it out. Maybe an occasional update somewhere is causing the MIC to be set to null under the hood. Merely restarting or fiddling with enabling or disabling the input sources is not enough to trigger this error.
 
In my experience, sometimes Windows Updates cause USB audio devices to be re-enumerated and assigned different IDs. OBS identifies the devices by ID, and can't find the device, so you get no audio. Annoying, but it doesn't happen often (at least on our setup), and easily fixed.

To avoid this messing up a stream, we
1) postpone Windows Updates to the max limit (about 30 days), and manually do the update at a convenient time before that date
2) after the update, verify that everything works. Then postpone updates for next time.
 

koala

Active Member
More constructively, I am trying to investigate this now and it's weird. I cannot actually disable the audio input by switching back to Default.
Some info about audio device selection and activation, may be you're able to relate this to your situation.

At OBS startup, OBS will do this:
  • if you have some audio device set as "default" and not directly configured with the device name, OBS will determine the current Windows default audio device and use this for the rest of the OBS session (or if you manually change it to something else). If you plug in or switch on some new device, and this device becomes the Windows default device, OBS will not follow this. It will stick with the previously determined device.
  • if you configured some audio device directly with the device name, OBS will try to initialize and use this device. If it's present, it will use this device. If it's unable to initialize, this source will stay silent and inactive.
About such a silent and inactive audio device:
  • if you have such an inactive source and its device is switched on or plugged in while OBS is already running, OBS tries to initialize the device. If it's able to do this, this source becomes active and will be used by OBS from now on. If it's not able to initialize this device, the source stays silent and inactive.
  • if you open the properties of such an inactive source while it is inactive, OBS will show "[Device not connected or not available]" if it is configured in Settings > Audio > Global Audio Devices. However, if you configured the source as audio input capture source, it will show "Default" in the source properties. If you now leave the property window of the audio input capture source by clicking "OK" (and not "Cancel"), it will save this "Default" as device name instead of keeping the silent and inactive device name. OBS will determine the default Windows device in this moment and use this device for this source for this session and will automatically determine the default Windows audio device on subsequent OBS starts. The original device assignment is lost.
What you should do to avoid speaking into a mic that's not used by OBS:
  • always use global audio sources and no audio input capture/audio output capture sources unless you have sources you want to appear only in some but not in all scenes.
  • connect and switch on every mic device before you start OBS. If in doubt, restart OBS before using some mic you just switched on or plugged in
  • always leave property/configuration windows with "Cancel", never with "OK" (unless you want to actually save a change you made, of course).
  • make it a habit to check every mic meter in OBS if it's really picking up sound from your mic by snapping your fingers in front of that mic or tap it until you see the bar. Don't start recording/streaming unless you verified the meter.
 

mrakgr

New Member
Thanks for the replies.

Instead of the input devices being keyed to an underlying id which is unstable, why not use the device name instead? On my rig both the Default and the Microphone(AT2020USB-X) point to the same input device, and are the only input devices, so in no circumstance should the input fail to go through in OBS. Would this be hard to implement?

After losing a week worth of audio recordings, I've learned to check, but I missed it one time which inspired me to write this post. It shouldn't be necessary for the user to be on guard so much.
 

Lawrence_SoCal

Active Member
Sorry, I get being frustrated, but your reply indicates you have NO IDEA how Operating Systems work.
Your issue isn't the application (OBS Studio, in this case), but the OS. And there are lots of REAL good reasons common name is NOT used as authoritative (think multiple of same device) [look up lots of prior threads on basically same issue].
So, if you want Microsoft (in this case, but issue is NOT unique to MS,) to change how they operate their Operating Systems kernels, feel free to contact them and let us know when they agree to change OS low-level h/w interface design (the base approach predates Windows, btw)

In your case, you've learned that any USB device can get re-enumerated after a reboot. so, it is up to you to check/confirm applications still point to same USB device. You could say 'But I don't have to do this with other apps' and you'd be right. BUT, (if true) you aren't also using application that need such low level device control (no, you may not be doing something that requires a Device lock, but some features of OBS Studio do) that requires a bit more specificity.

Again, I get your frustration... but you are using a free, open-source tool, which is quite flexible and powerful, designed for user interactive compositing, that requires a LOT more user attention than a typical hand-holding application.
 
Top