BlackHole Audio Driver
github.com
github.com
After hunting agressively on Google I was stoked when I found Apple's native, in-house solution: AU Lab.
It's actually really clutch.
https://www.apple.com/apple-music/apple-digital-masters/
https://www.apple.com/apple-music/apple-digital-masters/docs...
I don't think this is quite true. Each time the signal path crosses into the BlackHole Audio Server Plugin, it suffers an additional `AudioServerPlugInIOCycleInfo::mNominalIOBufferFrameSize` amount of latency.
Sadly this derailed my plans to use it as a free audio transcripter... (but there's better alternatives and a workarounds)
$ say -v Samantha -o out.aiff "Hello World"
$ open out.aiff say -v "com.apple.speech.synthesis.voice.custom.siri.helena" hi
It'll error out mysteriously with the message `Open speech channel failed: -86` sudo !!
https://xkcd.com/149/There are alternatives like loopback and soundflower but this is free, OSS, works on all modern Mac OS and hardware.
All I want on my M1 is to be able to screen record my Zoom calls(full desktop recording) outside of the Zoom application itself.
This is because I want to, as a general review tool for myself, be able to refer back to meetings. My memory has gone to hell in recent years. I want to be able to record my meeting, tag my notes with the recording name, and if I need to refer to a specific recording, throw a speech to text processor at the audio and search.
Consider that 99.9% of people are able to function pretty well without having to refer back to a full recording of every meeting they’ve ever had. What’s their secret? They just pay attention and take notes the first time through.
Is it possible you have some very specific requirements that no one else does? Maybe, but I’ve landed on the idea that this a really a form of procrastination — where the “paying attention” part of the process is being pushed off until sometime later, and really just makes more work in the long run.
No. Recording meetings may be a form of procrastination for you, but recordings can be valuable for a bunch of reasons. Tools like Otter and Gong make it trivial to transcribe and scan meetings, and to jump to associated audio if need be.
> They just pay attention and take notes the first time through.
Some of us are running those meetings, are focused on the conversation instead of note-taking, and don't have extra staff for note-taking.
Additionally, I do take notes, and I keep a summary work journal to track what I did and key insights. My daily log is typically about 6-7 bullet points for my own use, but may reference JIRA tickets or other links with more information that is intended for others to consume as well.
As for my meetings, I take notes for actions and key ideas, but each meeting is typically less than 5-6 bullet points, unless it results in a lot of sub tasks to a larger one.
I don't want to review ever meeting, in fact, I don't want to review any meetings. The goal of the recording is to have the record that I can refer back to if needed. Which, incidentally is about 5% of my meetings. So 95% will never be looked at again. And that 5%, I'm not going to replay the entire meeting, Im going to use something like Otter.ai to process the audio into text with time stamps, that way I can skip to the relevant bits.
So creating more work? Not at all.
The actual work is done in a few dozen lines of code (see BlackHole_DoIOOperation at https://github.com/ExistentialAudio/BlackHole/blob/master/Bl...). The rest is just setting up the object model for the OS to provide metadata about the device.
BlackHole is a modern macOS virtual audio driver that allows applications to pass audio to other applications with zero additional latency.
Would be good to know if this can do it all and replace multiple solutions each needing their own low level drivers.
Anyone tried both this and Loopback? Any thoughts on relative functionality, ease of use and reliability?
Has anyone found an easy way to route the audio to the speakers as well as through Blackhole? I use Ableton to do this, which works but feels like overkill and isn’t much good if I’m trying to tell someone else how to use it who doesn’t have Ableton. There used to be a little Apple app in some kind of extra tools zip which would route any input to any any output but it doesn’t work on newer macOS.
https://github.com/ExistentialAudio/BlackHole/wiki/Build-wit...
Just change around some variables: `kDevice_Name`, `Manufacturer_Name`, `kPlugIn_BundleID`, `kBox_UID`, `kDevice_UID`, `kDevice_ModelUID`, and then the Blackhole.driver folder it spits out after build.
You can also go up to 16 (or more?) channels instead of the stock 2, which is great for multiple participants in a jacktrip session, among other things.
https://github.com/ExistentialAudio/BlackHole/wiki/Change-th...
That one is slightly out of date. The new variable name is `kNumber_Of_Channels` for number of channels.
You can have a dedicated Blackhole audio device for each thing you want to mix and then stitch them together into an aggregate audio device (on Macs). Now you can use this aggregate device inside something like Ableton live, and then you route and mix audio from different sources.
Then you can send your Ableton mix to something like OBS Studio for example. Or even use different sets of return channels for different mixes to different places, like one for your monitors, one for OBS/live stream, one for your headphones for monitoring what you're playing perhaps.
Multiple Blackholes + aggregate audio device = A+ happy audio routing
It is one of the few things I have found that “just works” on a PC compared to a Mac.
I am glad this exists, thank you!
I do a lot of audio work with Macs, and even use blackhole on occasion, but typically something as simple as capturing audio from multiple sources can be done natively with a simple aggregate device.
Where would I go to find info on setting this up natively? I've looked before but clearly missed something.
[1]: https://obsproject.com/forum/resources/mac-desktop-audio-usi...
I want to use a daw to handle my audio for the online TTRPG's processing voice and playing back cues for when I am DM's
This functionality should be part of the core of windows audio - which given the rise in remote working improving the frankly crap widows audio should be a priority.
Reference: https://vb-audio.com/Voicemeeter/banana.htm
For better performance and stability they should consider changing the mutex to an os_unfair_lock and maybe find a way to avoid dispatch_async to a global queue. And I’m not convinced the locking is correct around/within the dispatch_async blocks. But it might be fine.