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 or 16 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.driverNOTE: The directory is in/Librarynotuser/Libraryand be sure to replaceXwith either2or16 - 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 DevicesRight-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->Microphoneto 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 [email protected].