ExistentialAudio / BlackHole

BlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency.
GNU General Public License v3.0
15.02k stars 581 forks source link

FaceTime is blocking BlackHole. #702

Open drgrib opened 1 year ago

drgrib commented 1 year ago

Please Confirm

macOS Version

macOS 13 Ventura

BlackHole Build(s) Affected

Describe the bug

I have a Multi-Output Device set up in Audio MIDI Setup with BlackHole 2ch and MacBook Pro Speakers. Recording audio through Quicktime with BlackHole 2ch as the audio source works fine for Chrome with YouTube videos. My microphone is also at full volume.

This whole configuration also works fine with the FaceTime app open on MacOS. However, the moment I join a call (with 2 other people in my test case), my microphone and speaker volume plummet to barely audible. To confirm, the people on the call told me they could barely hear me. I have checked the recorded audio that QuickTime got from the call and it is at the same low volume.

Changing back to Use This Device For Sound Output on the MacBook Pro Speakers restores all volume but obviously negates my ability to record system audio directly.

Reproduction Steps

  1. Use This Device For Sound Output on Multi-Output Device with BlackHole 2ch
  2. Join FaceTime Call

Expected Behavior

Normal volume for microphone and speaker during FaceTime call with BlackHole 2ch available as recording device for QuickTime.

Screenshots

MultiOutputDevice
devinroth commented 1 year ago

You’re absolutely right. I just tested and got the same result. Although this isn’t a BlackHole bug but rather a FaceTime bug.

The question is, why would the microphone not work when BlackHole is set as the output. I have a feeling either Apple is blocking the use of Virtual Audio Devices or they are doing something with echo cancelation that causes this.

I’ll look into it but there is probably nothing I can do to fix it. I might be able to find a hack. On Jan 29, 2023 at 7:17 AM -0800, Chris Redford @.***>, wrote:

Please Confirm

• I have read the FAQ and Wiki where most common issues can be resolved • I have searched Discussions to see if the same question has already been asked • This is a bug and not a question about audio routing or configuration, which should be posted in Discussions

macOS Version macOS 13 Ventura BlackHole Build(s) Affected

• 2 channel • 16 channel • 64 channel • other/custom build

Describe the bug I have a Multi-Output Device set up in Audio MIDI Setup with BlackHole 2ch and MacBook Pro Speakers. Recording audio through Quicktime with BlackHole 2ch as the audio source works fine for Chrome with YouTube videos. My microphone is also at full volume. This whole configuration also works fine with the FaceTime app open on MacOS. However, the moment I join a call (with 2 other people in my test case), my microphone and speaker volume plummet to barely audible. To confirm, the people on the call told me they could barely hear me. I have checked the recorded audio that QuickTime got from the call and it is at the same low volume. Changing back to Use This Device For Sound Output on the MacBook Pro Speakers restores all volume but obviously negates my ability to record system audio directly. Reproduction Steps

  1. Use This Device For Sound Output on Multi-Output Device with BlackHole 2ch
  2. Join FaceTime Call

Expected Behavior Normal volume for microphone and speaker during FaceTime call with BlackHole 2ch available as recording device for QuickTime. Screenshots — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

devinroth commented 1 year ago

First test I did was change kAudioDeviceTransportTypeVirtual to kAudioDeviceTransportTypeUSB and that allowed the microphone to work. But I still couldn't hear the other participants. Then I changed kDriver_Name to something other than BlackHole and it works. That means that Apple is not only blocking virtual audio devices, but they are also specifically blocking BlackHole. I'm flattered that I've made such a big impact that Apple has taken the time to hard code BlackHole into FaceTime so they can block it from functioning.

drgrib commented 1 year ago

Wow. That is crazy. So that means if you try to find a way around this, you are basically taking on Apple directly to unblock something they specifically tried to block. Thanks for the speedy investigation. Do you have thoughts on what you will do? Try to find a workaround or just accept that they want BlackHole blocked? I could switch to using web based video chat.

devinroth commented 1 year ago

As it happens, I’m working on a program that that would prevent this from happening. A simple way to capture audio from apps without needing to use a multi output or BlackHole. Still a work in progress and won’t be free. I’m thinking $25 would be a good price point. I’ll need beta testers if you’re interested. On Jan 29, 2023, 3:20 PM -0800, Chris Redford @.***>, wrote:

Wow. That is crazy. So that means if you try to find a way around this, you are basically taking on Apple directly to unblock something they specifically tried to block. Thanks for the speedy investigation. Do you have thoughts on what you will do? Try to find a workaround or just accept that they want BlackHole blocked? I could switch to using web based video chat. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

drgrib commented 1 year ago

That's awesome. I don't think I'll have the extra time to commit to beta testing, unfortunately, but I will likely be a customer of the product. It would definitely be nice to not have to fiddle with my Audio Midi Setup to activate this feature.

devinroth commented 1 year ago

Sounds good. On Jan 29, 2023, 5:39 PM -0800, Chris Redford @.***>, wrote:

That's awesome. I don't think I'll have the extra time to commit to beta testing, unfortunately, but I will likely be a customer of the product. It would definitely be nice to not have to fiddle with my Audio Midi Setup to activate this feature. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

gooru2u commented 1 year ago

I also have been dabbling with this setup. I'm using MacOS 12.6.3 and managed to get my calls to work using Blackhole. The unfortunate thing though it won't work using a Multi Output device. I have to put the app outputting the audio to only use Blackhole. In my case, this doesn't allow me to hear my feedback of my own voice with what I'm trying to accomplish. However, I am able to hear the person on the other side of the call just fine. So it works sort of for my situation.... like others have said, Multi Output works with other apps no problem from my testing. In case anyone is wondering, I'm using GarageBand to send my vocal to FT, and also a regular phone call using Blackhole and it worked as described above.

BTW....I would be willing to Beta test, I'm always interested in audio related stuff.

devinroth commented 1 year ago

Cool. Well I'm not quite at a point where I have something ready for beta but I just setup a discord channel for it when it's ready. So come on over and I'll message the channel when I have it ready. https://discord.gg/pmWKPcxhgt

devinroth commented 1 year ago

I just posted an alpha build on discord for anyone interested.

FelikZ commented 1 year ago

@devinroth does this mean that blackhole is abandoned in favour of a potentially new paid software or you are not affilicated with ExistentialAudio?

devinroth commented 1 year ago

Huh? Not at all.

On Mar 17, 2023 at 6:11 AM -0700, Oleksii Shevchenko @.***>, wrote:

@devinroth does this mean that blackhole is abandoned in favour of a potentially new paid software or you are not affilicated with ExistentialAudio? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

Therianulf commented 1 year ago

Just wanted to stop by and say that FaceTime isn't the only app effected, Voice Memos is also affected. Pretty big middle finger from apple.

devinroth commented 1 year ago

Haha. Well I have a work around with this new app we’re building. Dipper. https://discord.gg/pmWKPcxhgt

Devin On Apr 1, 2023 at 7:29 PM -0700, Benjamin Larson @.***>, wrote:

Just wanted to stop by and say that FaceTime isn't the only app effected, Voice Memos is also affected. Pretty big middle finger from apple. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

sgbotsford commented 8 months ago

You’re absolutely right. I just tested and got the same result. Although this isn’t a BlackHole bug but rather a FaceTime bug.

I know that apple prevents any app from directly recording phone calls. The rumour was that it was to keep the phone from being used in "both parties must agree to record" jurisdictions.

With Voice Memo and FaceTime affected, see if they use a common audio library. I'm not a programmer other than a touch of perl hacking. Can you determine what libraries an app is linked against in a way that will help?

If other sound apps are not affected see if FT uses a library that the unaffected ones doesn't.

Might also be interesting to see if this happens with earlier OS builds, see if you can find out a specific time when this change happened.

devinroth commented 3 months ago

A user noticed that the 64ch version works fine. To anyone experiencing issues they using the 64ch version as a workaround.

thevolcanomanishere commented 3 months ago

I tried 64ch and still have the same problem 🚨