vim, git, aws and other three-letter words

Software Development Notes

OBS Setup for macOS

Purpose

Have OBS working with Google Meet and Zoom to be able to:

  • Record the meeting
  • Share both microphone audio and desktop audio in the meeting
  • Apply OBS filters to the microphone audio to reduce noise

Prerequisites

Setup

How it works for audio:

Input (microphone, desktop) -> OBS
-> (sends audio to) -> BlackHole (monitoring device)
-> (used as input) Google Meet, Zoom, etc.

For video, it is simpler: just click "Start Virtual Camera" in OBS and use it as a video input in Google Meet.

On the OBS side:

  • Add an audio source (for example, an external microphone)
clipboard-20261003T192236.png
clipboard-20261003T192418.png
  • Add filters for the audio input
clipboard-20261003T192446.png

Add more audio sources if needed. For example, add desktop audio to play music or show apps with sound on your desktop. This source can be muted/unmuted dynamically in OBS.

Install VB-Cable or BlackHole

Configure OBS to send audio to BlackHole:

  • OBS (in the system top menu) -> Preferences -> Audio -> Monitoring Device
  • Set "Monitoring Device" to "BlackHole" or "VB-Cable"
clipboard-20261003T192526.png

Change the mode for audio inputs to "Monitor and Output":

  • Click the gear button at the bottom of the "Audio Mixer" block
    • or click the three dots near any input in the "Audio Mixer" and select "Advanced Audio Properties"
  • Change "Audio Monitoring" to "Monitor and Output"
clipboard-20261003T192546.png

Current UI: the "monitor" button (the headphones icon) is under each channel, in the bottom right corner. The dialog above is also available.

clipboard-20261003T192603.png

Note: if you don't want to record macOS audio (such as music playing in the background), turn off monitoring for the source such as "macOS Audio Capture" (set to "Monitor Off" in the dialog or click the headphones icon in the audio mixer pane to deactivate it).

In Google Meet: use "BlackHole" as the audio input:

clipboard-20261003T192623.png

Noise cancellation settings:

  • I am using a Boya mini 2 as the microphone, with its noise cancellation on (it does not filter out everything)
  • OBS noise filter takes care of most of the remaining background noise
  • Google Meet noise cancellation is off

OBS settings:

  • Select the "Audio Input Capture" in the "Sources" pane
  • Click "Filters" in the toolbar above
  • Add "Noise Gate"
    • Close Threshold = -72 dB
    • Open Threshold = -66 dB
    • Attack Time = 25 ms
    • Hold Time = 200 ms
    • Release Time = 150 ms
  • Add "Noise Suppression"
    • Method = RNNoise (good quality, more CPU usage)
clipboard-20261003T192651.png
clipboard-20261003T192710.png

How to test the setup:

  • Start a Google Meet call on macOS
  • It is good to have some external voice source near the microphone, such as an audiobook playing out loud on another device
  • Copy the link and open it on yet another device
    • Use headphones here, so you can hear clearly what's going on on the other side (the one we test)
    • A phone or tablet is good here, since you can walk around
  • Now the Mac transmits sound, and you can listen to it on another device. Make sure that the audio source near the microphone sounds good and that no external noises are picked up
  • You (or someone else) can walk around and actually make some noises (for example, bang a cup on a table or a fork on a plate).
  • If everything is working well, you should not hear these noises in your headphones.

References

Note on aggregate devices: some guides use aggregate devices, but that is not necessary. It is possible to create an aggregate device (that is, BlackHole + headphones) and then use it as the monitoring device in OBS, but I haven't noticed any difference.

Q: How exactly do aggregate devices work?

Q: OBS Studio has the "Mic/Aux" channel by default; is it necessary to add an audio source explicitly?

  • I was not able to actually get anything from Mic/Aux, and also I can't add filters for it, so maybe this is something separate.

Related: Reddit comment

  • This is a really tough situation and one I share with my wife, who is sitting four-ish feet away from me.
  • Here are the things I did to reduce my voice on her end:
    • 1. Get a Dynamic Microphone and mount it to your desk using a boom arm so that the speaking side (usually the top) is pointing to you and away from your BF. I bought her the Tonor TD510 USB/XLR Mic and it is SURPRISINGLY good for the $60 price point.
      • 1b) Make sure the microphone is close to you, and with close I mean for a Dynamic Microphone you should be able to practically kiss it (4-6 inches) and for a condenser mic (which you have now) you should have it about 8-10 inches away at the most. Closer is better.
      • 1c) With your microphone so close you are probably a LOT louder, So turn your Gain (the knob on the Wave or the buttons on the Tonor) right down until your normal streaming voice hits the top of the green or right in the yellow. (-15 to 10dB)
    • 2) In OBS it is time to set up some filters, starting with Noise Suppression. Pick the filter you think works best - I prefer RNN Noise over RTX for example - such that your voice stays clear and unmuddied while removing as much noise from your BF as possible.
    • 3) After noise suppression, get your BF to play a game and be loud about it. Look at what levels on your microphone he hits. If this is -45dB or lower this is great, because that means that you -should- be able to top that with your own voice.
      • 3b) Speak as loud as you normally do into your mic, then pretend you have a little intimate moment with your viewers and give them a whisper. Check what the lowest is you get while you whisper. If that is under -20dB you may want to add a little Gain filter and just up it 3-5dB, but make sure it is below your Noise Suppression. Suppress first, then add gain.
      • 3c) If that is well clear of your BF then you -could- add a Noise Gate on top of the noise suppression to just remove your BF entirely -unless- you are speaking too.
    • 4) Now it is time to test your highs: Talk as if you are normally streaming - and really check the dB on this one - , then get excited, get scared, scream for a bit. It will probably be WAY too loud (peaking or high reds). Now we are going to add a compression filter. Set the ratio to 4:1 and set the attentuation to 3-5dB under your normal speaking voice dB.
      • 4b) Now speak again at your normal volume and use the make-up gain slider to -just- hit the yellow if you need to. Just make sure not to push it too far (don't add anything more than 6dB).
    • 5) Add one last filter: A Limiter. Set it to -3dB. This will cut you off completely if you are about to peak. It is a really good idea to have because it is great for your viewers if you don't make their ears bleed.
  • And that's it. Give it another test: Whisper, Talk, Scream. You should never hit below -20dB while whispering and never clip (fill the whole dB bar) when screaming. If you have any questions, feel free to drop them below.

Tags: obs mac