Microphone Issues

skuld

New Member
I don't know what's happening here. But for some reason my microphone and only my microphone is choppy on stream.
It's not choppy when monitored.

I feel like it's somehow encoding the microphone incorrectly.
Video is smooth.
Audio from other sources is smooth.

But somehow just my microphone is choppy no matter how I configure it.
I tried disconnecting it from my sound card and plugging it in via USB, and it still is choppy.
I tried both global and scene audio sources.

Here is my system info, if it helps:
OS: Xubuntu 24.04 LTS (Noble)
Desktop Environment: XFCE 4.18
OBS Version: 30.1.2
Audio Device: Focusrite Scarlet 2i4 1st gen
Microphone: Shure MV7
CPU: AMD Ryzen 7800X3D
GPU: Nvidia 3900ti
Drivers: 550.67
RAM: 64GB

Any suggestions as to what may be causing this?
 

skuld

New Member
I think the problem is in the way it encodes a stereo source as mono. Seems like a bug in OBS and maybe should be looked into.
 

AaronD

Active Member
OBS (natively) can't separate channels of a device. If a device has 2 input channels, then it must be a single stereo source. If it has 8 inputs, then it must be 7.1. Etc. Always a single source per device, that takes all of that device's channels as the corresponding surround format. Nothing you can do about that.
On Windows, the ASIO plugin creates a source that lets you choose and separate channels, but that's only for Windows.

There's a hack to separate a stereo source specifically, into two semi-independent center-panned mono's: use two copies of the stereo source, both set to mono, and pan/balance them hard to either side. Again, that's a hack, that only works because OBS is backwards from pro gear. Pro gear can't use that hack - it would put a mix of both off to one side - but it doesn't have the original problem either!

It's a bit of work to set up (once), but what works well for me is to use a separate DAW for all of my audio work, so that OBS is silent except for the final finished master as its only audio source at all, and it passes that through completely unchanged. Even the Sync Delay is done in the DAW.

(DAW = Digital Audio Workstation. A complete sound studio, all in one app. That's all it does, and it does it well! You're using it for the mixing console, so if you're unfamiliar with that, it might be good to watch a few YouTubes about how those work. Probably analog first, because they tend to be simpler, and the digital tutorials tend to assume that you already know that.)

sudo apt install ardour jackd2 qjackctl
JACK is an audio routing daemon with no graphical user interface.
QjackCtl is a graphical configuration utility for JACK.
Ardour is the DAW itself, which uses JACK for its connections to everything else.
Then look up how to connect PulseAudio to JACK and vice-versa, so that OBS and Ardour can talk to each other.

(OBS technically does have a JACK source, but it only works in a scene, not global, which is where you really want to connect the DAW anyway, and it disappears from the outside world when you switch away from that scene. Then the connections don't come back, so you're left with that source being silent when you come back to that scene. Nice idea, but it should have been global, or at the very least persistent even while the scene is inactive. OBS is PulseAudio-only in the global sources, hence the bridge(s) that you need to set up between PA and JACK.)

Then *everything* connects directly to the DAW, not OBS, everything happens in the DAW, and OBS only receives the final end result to pass through unchanged. If you have something that originates in OBS, send it raw to OBS's Monitor only, so that the DAW can pick it up. You don't need the Monitor for headphones anymore because the DAW does that too.

If you need to change things in the DAW while you're looking at something else, the Advanced Scene Switcher for OBS can send Open Sound Control (OSC) messages, which Ardour can receive. Play with Adv. SS to see how to send them, and look at Ardour's documentation about what it wants to receive.

OSC's are one-time messages that take effect immediately, so if you want a fade, one way to do that is to actually control a 20kHz sine generator (or an auxiliary send that follows it on the channel strip), which then feeds the side-chain input of a gate that you put on the signal that you actually want to control. The timing controls of the gate then, create the fade.

---

If you end up beating your head against the wall with installations that don't work (been there!), you might look at Ubuntu Studio, which has everything preinstalled and already working.
You'll still need to:
  • Set up the bridges between PA and JACK
  • Set up both Ardour and OBS
  • Install Adv. SS if desired for automation
But that's a lot less than trying to install everything, and wondering what you missed that makes it not work!
 
Last edited:
Top