Recently, I’ve been putting in more time into streaming more consistently. One issue I’ve run into multiple times is not being able to play videos when I’m streaming, because the audio wouldn’t pass through to my viewers unless I don’t have headphones on. So today, I installed and set up BlackHole, a virtual audio driver.
I’m a complete beginner at streaming, so to me, it confused me that there’s not a button to press or a toggle to toggle to get the sound to pass through. But apparently it’s just a “thing” you have to deal with, by installing a virtual audio driver. I guess there’s a reason why we hired AV professionals to help with setting up our Town Halls!
A Twitter friend recommended “BlackHole” to help fix the issue of not being able to stream my computer’s sound. So I installed it by following the directions on their GitHub page.
You can download the installer for free by going to the Existential Audio website.
It’s available for Windows and Macs, and it’s described as: “an open source virtual audio driver that allows applications to pass audio to other applications with zero additional latency.”
I just had to download the installer, and it ran through without having to do things like installing via Homebrew.
So far, so good!
Setting up Multi Output Device
This was the “meat” of the setup. The official BlackHole Github has a good tutorial: Multi Output Device.
Basically, you add a new “Multi-Output Device” in “Audio MIDI Setup.”
I created 2 “Multi-Output Devices” that use BlackHole. One for my MacBook Speaker, and another for my Headphones.
⚠️ One thing to note is that, like it says in step 4 of the Multi Output Device tutorial, you have to make sure that “MacBook Pro Speakers” (or “Built-in Output) is on top of the list. I didn’t make sure that happened, and the first time I played a video, the computer made some very horrible sounds.
If you find that “BlackHole 16ch” is above “MackBook Pro Speakers,” then simply uncheck the “BlackHole 16ch,” which will automatically raise the “MacBook Pro Speakers” to the top. Then recheck.
Adding BlackHole as Input Source in OBS
To add BlackHole as an Audio Input Source in OBS, select the “Scene” you want to stream with, and add ( + ) a new “Audio Input Capture.”
Name the new Audio Input Capture source whatever you want. I tend to make the names very specific, so I just named it “BlackHole.”
Then select BlackHole 16ch as an audio input source.
Now, go to your Sound in System Preferences, and make sure your Sound Output is set to your brand new BlackHole Multi-Output Device.
As I mentioned before, I have one for when I have my headphones on, and when I don’t, so I have 2 options.
I’m not sure yet if this will cause issues, since the MacBook microphone will also be hearing the MacBook audio, on top of my voice.
Is it smart enough to realize certain sounds are from itself and cut it out?
Only time will tell. As far as what I can hear on my end, I don’t hear any echos.
Now, when you play music or a video on your computer, your BlackHole should react, showing that the sound is streaming!
One thing I’ve found is that when I set my microphone in OBS to my headphones, the video audio passing through from the audio becomes extremely distorted (like cavemen grunting).
It plays video audio normally when it’s my Logitech BRIO (webcam) microphone or my MacBook Pro microphone, so I don’t really know what the issue is. Some people suggested that it might be due to mismatch between my headphone sample rate and the virtual driver’s sample rate. It’ll be something I experiment with in the future!