>BlackHole is a modern MacOS virtual audio driver that allows applications to pass audio to other applications with zero additional latency. 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.
That's not true of JACK, and it would be both a shame and little bit silly if Blackhole hasn't learnt from JACK's design. JACK doesn't use a pattern of server->client->server->client->server, each client wakes up the next one, so the pattern is server->client->client->client->server, with zero additional latency.
BlackHole Audio Driver
21–30 of 68 posts
Re: BlackHole Audio Driver
#22I hope this works for my usecase, as everything I have attempted so far either results in silence or completely mangled audio. 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…
Just start QuickTime Player and choose New Screen Recording, surely?
Re: BlackHole Audio Driver
#23I hope this works for my usecase, as everything I have attempted so far either results in silence or completely mangled audio. 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…
Just start QuickTime Player and choose New Screen Recording, surely?
Re: BlackHole Audio Driver
#24Re: BlackHole Audio Driver
#25>BlackHole is a modern MacOS virtual audio driver that allows applications to pass audio to other applications with zero additional latency. 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.
That's not true of JACK, and it would be both a shame and little bit silly if Blackhole hasn't learnt from JACK's design. JACK doesn't use a pattern of server->client->server->client->server, each client wakes up the next one, so the pattern is server->client->client->client->server, with zero additional latency.
Re: BlackHole Audio Driver
#26Re: BlackHole Audio Driver
#27Earlier quoted context omitted.
That's not true of JACK, and it would be both a shame and little bit silly if Blackhole hasn't learnt from JACK's design. JACK doesn't use a pattern of server->client->server->client->server, each client wakes up the next one, so the pattern is server->client->client->client->server, with zero additional latency.
How does JACK handle audio devices linked in a cycle?
Re: BlackHole Audio Driver
#28This is cool. Will have to compare it with the rogue amoeba software. If you are looking for a commercial alternative they have audio hijack and loopback which are excellent and latency free.
Re: BlackHole Audio Driver
#29Based on a quick scan through the code, there are a lot of mutexes there, e.g. for reference counts, that could be replaced with atomics.
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.