I'm gonna just say "screw it", set up the audio that sounds right to me, then listen to make sure it's not clipping or anything. I'm running a GoXLR Mini and a Shure SM7B mic and with the amount I spent, I'm really bummed out that my audio sucks.
If there's any way at all you can dumb down what you're talking about and explain more simply how to set levels properly, I'd REALLY appreciate it! In the meantime, I'm going to look up what Unity gain is and try to figure this out more.
Thanks much!
First recommendation, and probably one of the things making it harder to understand, is regarding your mic. The SM7B needs
a ton of gain. The GoXLR is right on the edge of being able to drive it properly, if memory serves, so you MAY have to turn your gain ALL the way up and still not be able to set it correctly. It's strongly advised to grab something like a Cloudlifter CL-1 or Triton FetHead to handle the initial boost. Then your mixer/interface will be able to dial in the gain more cleanly.
'Unity' just means 'the same level it came in at'. So no amplification, and no attenuation. Just kick the signal through at the same level without messing with it. Each time you bump it up or down, you lose a little bit of the range you could potentially have. On most mixers this is marked somehow, usually with a 0 or U on rotary knobs, or square brackets around linear slides. In the Windows Sound->Recording properties, Levels for the device, unity is 50.
'Gain staging' means setting your microphone's input gain to be as close to clipping as possible without clipping. Note that gain levels and fader levels are NOT the same thing. A lot of pro-audio newbies use gain as a 'second volume knob', which it isn't. Think of gain as your 'mic calibration', while the fader is for adjusting the volume in the mix.
Generally you want to set your gain as close to the mic as possible, and not mess with it after that until as late in the chain as is feasible. Only amp once, if possible.
On a normal mixing desk, you 'solo' the input you're staging (set the fader to unity, mute all other channels, or just watch the 'clip' light if so-equipped which should be pre-fader), then clap into the mic so it outputs the loudest it's going to hear/capture. You tweak the gain up until the input starts to clip, then back it off until it JUST BARELY doesn't. This will ensure that your input has the full range of the mic to work with. (There are other, more accurate ways to gain-stage a mic, but go beyond the scope of a home livestreamer setup; the clap-test is close enough.)
Unfortunately, I don't have a GoXLR so can't really get into specifics on how to set it up on that hardware.
After that, you set your Sound->Recording->Right-click device->Properties->Level to 50. You CAN amp here, using something like Audacity to get an accurate level reading if you so choose. Again clap-test with everything at unity, get as close to clipping without clipping.
If you leave it at 50, in OBS apply a Gain filter as the first filter on the source, and spitball it as close as you can (since OBS, again, lies on the volume meter). Remember that touching the end of the meter in OBS is NOT clipping. It's -2dB. Clipping in OBS is when the entire bar turns SOLID RED.
After this, use the sliders in OBS to set the volume level of your voice versus your desktop audio device.
I'd also recommend looking into the audio filters OBS provides. Strongly recommend a compressor (makes loud sounds quieter when they go past a certain loudness), and an expander (makes quiet sounds quieter, eliminating low-level background noise).