BlackHole is a modern MacOS virtual audio driver that allows applications to pass audio to other applications with zero additional latency.
Sponsor: https://github.com/sponsors/ExistentialAudio
- Features
- Installation Instructions
- Uninstallation Instructions
- Guides
- Advanced Customization and Installation
- Feature Requests
- FAQ
- Wiki
- Supports 2, 16 or 64 audio channels versions.
- Customizable to 256+ audio channels.
- Supports 44.1kHz, 48kHz, 88.2kHz, 96kHz, 176.4kHz, and 192kHz sample rates.
- No driver latency.
- Compatible with macOS Mavericks (10.9) to macOS Big Sur (11).
- Built for Intel and Apple Silicon.
- Download Installer
- Close all running audio applications
- Open and install package
- 2ch:
brew install blackhole-2ch
- 16ch:
brew install blackhole-16ch
- Delete BlackHoleXch.driver by running
rm -R /Library/Audio/Plug-Ins/HAL/BlackHoleXch.driver
NOTE: The directory is in/Library
notuser/Library
and be sure to replaceX
with either2
or16
- Restart CoreAudio with terminal command
sudo launchctl kickstart -kp system/com.apple.audio.coreaudiod
For more specific details visit the wiki.
There are a number of options available to customize BlackHole including number of channels, names, running multiple drivers, and latency. Visit the Wiki for details.
- Reaper to Zoom by Noah Liebman (https://noahliebman.net/2020/12/telephone-colophon-or-how-i-overengineered-my-call-audio/)
- Setup Multi-output Device
- In
Audio Midi Setup
->Audio Devices
Right-click on the newly created Multi-output and select "Use This Device For Sound Output" - Open digital audio workstation (DAW) such as GarageBand and set input device to "BlackHole"
- Set track to input from channel 1-2
- Play audio from another application and monitor or record in your DAW.
- Set output driver to "BlackHole" in sending application
- Output audio to any channel
- Open receiving application and set input device to "BlackHole"
- Input audio from the corresponding output channels
If you are interested in any of the following features please leave a comment in the linked issue. To request a features not listed please create a new issue.
- Sync Clock with other Audio Devices in development see v0.3.0
- Output Blackhole to other Audio Device
- Add Support for AU Plug-ins
- Inter-channel routing
- Record Directly to File
- Configuration Options Menu
- Support for Additional Bit Depths
BlackHole is an audio interface driver. It only shows up in Audio MIDI Setup
, Sound Preferences
, or other audio applications.
Unfortunately macOS does not support changing the volume of a Multi-Output device but you can set the volume of individual devices in Audio MIDI Setup.
-
Check
System Preferences
->Security & Privacy
->Privacy
->Microphone
to make sure your digital audio workstation (DAW) has microphone access. -
Check that the volume is all the way up on BlackHole input and output in
Audio Midi Setup
. -
If you are using a multi-output device, due to issues with macOS the Built-in Output must be enabled and listed as the top device in the Multi-Output. https://github.com/ExistentialAudio/BlackHole/wiki/Multi-Output-Device#4-select-output-devices
- You need to enable drift correction for all devices except the clock source device.
Unfortunately multi-outputs are pretty buggy and some apps just won't work with them at all. Here is a list of known ones. If you have more to add please let me know.
- Apple Podcasts
- Apple Messages
- HDHomeRun
The microphone from AirPods runs at a lower sample rate which means it should not be used as the primary/clock device in an Aggregate or Multi-Output device. The solution is to use your built-in speakers (and just mute them) or BlackHole 2ch as the primary/clock device. BlackHole 16ch will not work as the primary since the primary needs to have 2ch.
Read the discussion. ExistentialAudio#146
BlackHole is licensed under GPL-3.0. You can use BlackHole as long as your app is also licensed as GPL-3.0. For all other applications contact me directly at devinroth@existential.audio.