/BlackHole

BlackHole is a modern macOS virtual audio driver that allows applications to pass audio to other applications with zero additional latency.

Primary LanguageCGNU General Public License v3.0GPL-3.0

BlackHole: Virtual Audio Driver

Platform:macOS GitHub GitHub Build Status Twitter Facebook

BlackHole is a modern MacOS virtual audio driver that allows applications to pass audio to other applications with zero additional latency.

Funding

Sponsor: https://github.com/sponsors/ExistentialAudio

Table of Contents

Features

  • 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.

Image of BlackHole Audio Driver

Installation Instructions

Option 1: Download Installer

  1. Download Installer
  2. Close all running audio applications
  3. Open and install package

Option 2: Install via Homebrew:

  • 2ch: brew install blackhole-2ch
  • 16ch: brew install blackhole-16ch

Uninstallation Instructions

Option 1: Use Uninstaller

Option 2: Manually Uninstall

  1. Delete BlackHoleXch.driver by running rm -R /Library/Audio/Plug-Ins/HAL/BlackHoleXch.driver NOTE: The directory is in /Library not user/Library and be sure to replace X with either 2 or 16
  2. Restart CoreAudio with terminal command sudo launchctl kickstart -kp system/com.apple.audio.coreaudiod

For more specific details visit the wiki.

Advanced Customization and Installation

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.

Guides

Logic Pro X

GarageBand

Reaper

Record System Audio

  1. Setup Multi-output Device
  2. In Audio Midi Setup->Audio Devices Right-click on the newly created Multi-output and select "Use This Device For Sound Output"
  3. Open digital audio workstation (DAW) such as GarageBand and set input device to "BlackHole"
  4. Set track to input from channel 1-2
  5. Play audio from another application and monitor or record in your DAW.

Route Audio Between Applications

  1. Set output driver to "BlackHole" in sending application
  2. Output audio to any channel
  3. Open receiving application and set input device to "BlackHole"
  4. Input audio from the corresponding output channels

Feature Requests

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.

FAQ

Why isn't BlackHole showing up in the Applications folder?

BlackHole is an audio interface driver. It only shows up in Audio MIDI Setup, Sound Preferences, or other audio applications.

How can I listen to the audio and use BlackHole at the same time?

Setup a Multi-Output Device

How can I change the volume of a Multi-Output device?

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.

Why is nothing playing through BlackHole?

  • 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

Why is audio glitching after X minutes when using a multi-output or an aggregate?

  • You need to enable drift correction for all devices except the clock source device.

What Apps Don't Work with Multi-Outputs?

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

AirPods with an Aggregate/Multi-Output is not working.

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

Can I integrate BlackHole into my app?

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.