Audio from video sources "echoing" thru Microphone likely

Greetings

This is probably a common question, but the research I did doesn't show much how to fix my problem:
1. Why does the audio echo? Probably because OBS is recording the audio from my laptop speakers.
2. Why cannot the audio from the videos I make be solid and direct from the video * without* echo AND not recording from the speakers on my laptop?

The test video I made is here:


Any idea how to cancel the audio echo and somehow ONLY allow the video source AUDIO to be played in the recording while at the same time allowing my microphone to record my voice/audio?

Using OBS 30.0.2
Linux Mint latest
 

AaronD

Active Member
If the mic can hear the speakers, it'll echo. Can't avoid that.

At least, not in general. There's a bit of processing called "Echo Cancellation", that takes its inputs from the final speakers and raw mic, and tries to output the mic minus the speakers. It's not a simple subtraction, but a tightly-tuned algorithm (or machine learning) to process the speaker signal *exactly* as the speakers and local acoustics do, and the mic as well, and then subtract *that* from the mic signal. OBS doesn't have one.

As you might guess, it works a lot better when the world that it has to work in is kept small and predictable. Like a speakerphone, or the built-in speakers and mic on a laptop. If you try to make it work across some distance in free air, it becomes a nightmare in a hurry!

For a meeting rig that I built a couple of years ago and continue to run, I have a Compressor set up on the local mic, with the TV speakers in the sidechain, and set to absolutely SQUASH that mic when the TV is active! Practically becomes a mute instead of just the turn-down that a compressor normally does. That kills the echo, but it of course has a side-effect of the local mic being completely disabled while someone remote is talking.
I also don't do that in OBS. I use a DAW for all of the audio processing in that rig (and several other rigs too), because there's a lot more going on than just that. And the tools in there are lightyears better than what OBS has anyway.

---

If you don't want to go that route, then either wear headphones (how does that look???) or live with not hearing anything else yourself while your mic is live. Everyone else will - if it's set up right - but you won't.
 
I think I fixed it by:

1. Going to "advanced audio" on each video that echos and turning Monitor off. THis makes so * me myself on my laptop* cannot hear the video, but I can see and hear the videos with my audio on the recordings.
 

AaronD

Active Member
Do you know how to:

1. Let me hear the video while I playing *with headphones* but NOT thru the laptop speaker which will cause echo?
Usually, plugging in the headphones will automatically disable the built-in speakers. That same signal just comes out a different place.

Originally, that was done with a switch in the headphone jack, and nothing else knew the difference. With nothing in the jack, the audio signal continued on to the speakers, but the presence of a plug opened that switch so that the speakers stopped.

Modern stuff still has that switch, but it doesn't carry audio anymore. It's just a logic input to tell the driver or the operating system or wherever that action actually is, to use a different DAC channel. So theoretically, you *could* use all of the destinations separately and simultaneously, if the driver supports that. Or it could be locked to the old functionality with no way to change it.

We're getting into the weeds now, of how each individual system works, so it's going to be increasingly difficult to do over the internet.
 
Greetings

1.Okay I got it working by attaching headphones AND turning each video source to "monitor and output"
2. Do you think if I get external microphone and turn OFF physical audio OR lower it that I won't get feedback form the video sources if the microphone is not too close to the speakers?
 

AaronD

Active Member
Do you think if I get external microphone and turn OFF physical audio OR lower it that I won't get feedback form the video sources if the microphone is not too close to the speakers?
You're getting into the same world as a live concert. All sorts of other sounds in the air, that you don't really care about in that particular mic, but the mic doesn't know any different. It just measures the total air wiggle in that location, with no more smarts than that.*

So, just like a live concert, you put each mic right up close to the sound that it's supposed to pick up, so that *that* sound drowns out everything else. But even so, every mic still has everything in it, just in different proportions. The bleed from something else is usually low enough to be drowned out by both the intended sound and the actual intended mic for the other sound, so it's fine for a live PA.

But sometimes we still need to block sound on stage. If you've seen some clear plastic disks around a drum set, for example, those are called "shy baffles". Their purpose is to block the direct path for the cymbal sound into the vocal mics. If you insist on having live speakers and a live mic for your rig, you might need to do something similar.
With a large acoustic space, like a concert stage, just those baffles are usually all that's needed because the other paths are so long and lossy that it hardly matters. But if you're in a small room, then the reflections off the walls, ceiling, furniture, or whatever could be a problem too.

---

* Actually, the direction matters too, but not as much as you might think. A "cardioid" mic, for example, has a null - no sensitivity - at the back, and that null is often pointed at the closest "floor wedge" speaker on stage, to reduce the tendency to feed back. (the increasing ring that sound systems do when they're turned up too high) But a cardioid's sensitivity doesn't drop off very fast until you get close to that null. In other words, the null is pretty sensitive to direction.

A "figure 8" mic has equal sensitivity in front and in back, and a "ring of null" on the sides. Also sensitive to the exact direction, so if something comes in just a little bit off of that null, you still hear it.

"Supercardioid" takes that "ring of null" and moves it towards the back, but not all the way back to a point like a cardioid does.

"Omnidirectional" is equally sensitive everywhere, with no null at all. Small mics are forced into this, just because of their size. You have to compare over some physical space to tell direction. Headsets and lapel mics are often omni for that reason, and rely solely on relative distance to reject other things...which doesn't always work.

You can point the null at the worst offender, and use that to clean things up, but don't forget that a reflection will come in from a different direction. The mic will still pick *that* up. And if you have *two* major offenders (stereo speakers, perhaps?), then it might be tricky or impossible to put *both* of them in the mic's null, even if you did choose the mic for its pickup pattern, and specifically where that null is.
 

KUCTech

Member
Not exactly the same problem, but on a Windows 11 system I recently updated OBS Studio from 30.2.3 to 31.0.1, and replaced the previous OBS-NDI module with the new DistroAV plugin. I immediately noticed the audio getting ahead of the video. (Video comes from PTZ/NDI cameras; audio is from in-house audio system) The difference was quite noticeable - more than 1 second.

The Advanced Audio Properties/Sync Offset was already set to 325ms, and I increased it to 335ms. At this point the problem went away. I don't know what was going on - the video lag was certainly more than 010ms, but the only variable that I can be sure of is the OBS Studio update and the NDI plugin change.

Cheers. . .
 
Top