A good list. I would definitely recommend Blackhole for Mac. It is easy to recompile and create multiple virtual devices. With the OS Aggregate Device feature, you can do some good complex setups.
Another one for Windows is ASIO Link Pro, which is quite old but still works well under Windows 10.
This is something that goes back to the dark ages too. I can remember using my dad’s SE30 and sound ‘just working’, while friends with PCs were screwing around with sound card and driver issues.
I’m not a macOS guy but I was pretty surprised how woeful the default audio experience is on macOS. Coming from Linux background it was strange you need third-party tools that require you to boot into recovery.
The built in Audio MIDI app that was a holdover from the OS 8/9 days was actually quite powerful for a long time, but when the kernel extensions got locked down some of the third party options were harder to get working smoothly (across upgrades especially).
The Audio Midi manager app on macOS is still pretty great and is more or less the backend of Rogue Amoeba's Loopback.
It's always strange to me when people call Loopback expensive, because I will pay for reliability and ease of operation. I have also had very thorough help from Rogue Amoeba for a situation that involves interconnecting Google Voice and Zoom so that I can call out with Google Voice and join the person on the call to an ongoing Zoom session and it is invisible and seemless for all.
From an outsider looking in, I'm just confused why Apple hasn't purchased Rogue Amoeba (or Sherlock'd them) considering they make keystone applications for the media application landscape on macOS (unless I'm misled from the Apple podcasts I listen to).
The audio part of OBS is the one thing I’ve never really played with, but I’m wondering why it doesn’t also move into this “mux stuff” space in the same way that it has done with the virtual camera.
Switching between cameras is a godsend for calls (one for my face, and another one pointing vertically down at a blank pad of paper) but I guess there’s less demand for switching between audio in a streaming studio setting, and mixing live audio from multiple sources is a music thing, where there are much better solutions?
Some details for those here who like to know:
Dante was originally only an Audio over IP protocol, you can get PoE powered XLR to ethernet dongles and go over IP into your digital mixer which also has a Dante card and then manage the whole flow from your machine with a software called Dante controller on it. That routing is active within all machines until you change it even if the controller software is not running.
Nowadays they also have software called "Dante virtual soundcard" (which is just that) and "Dante Via" (which allows you to additionally route individual program's IO — e.g. if you want to put that computers powerpoint and Browser on different faders and send some microphone signal to the Zoom client).
All in all good stuff, but if you "just" want to route things within one machine, probably overkill.
In my experience this works perfectly fine using pipewire on linux, on MacOS Blackhole, on Windows I never needed it because my RME soundcard allows loopback recording and complex routing.
As someone who also writes blog posts about stuff I'm researching, I don't think authors owe their readers to be 100% comprehensive. It's okay to publish notes. I would be sad and discouraged to see this kind of comment. I would be stoked to see another post that responds to mine and fills in the gaps.
As a reader, I don't need it to be comprehensive either. It's great to find an entry point and I'm happy to do more research as needed.
Factual inaccuracies within: Loopback can pass multi-channel audio and devices can be set as an input and output for applications, including with other audio processing between them, in an effects loop type configuration. Why spread misinformation like this?
JACK is capitalised. I use the PipeWire implementation of the JACK API; it still has advantages over using PipeWire directly, like easier metadata and CV connections.
The NSM (Non/New Season Manager) system is best for saving and recalling the state of the graph. RaySession is a modern NSM front-end+backend.
There's also LV2; it uses RDF to define both the audio unit properties and the relations between them. If only Ingen and mod-host and Carla, with their LV2 plugin graphs, went the full hog and could be used in their (Ingen and Carla anyway) LV2 plugin forms to work as easy-to-make semi-modular software synths, that would be cool. (Part of the thought behind LV2 was to provide a session/graph saving format)
Unfortunately things like wayland end up like this too. All sorts of different systems and plugins and implementations and exceptions and arbitrary names and acronyms.
It seems like no one who designs this stuff ever says "this is too complicated, it doesn't have to be this way, we need to work on simplifying it".
I think when clever people get together and there is no adult in the room to represent people who actually have to use this stuff, no one wants to admit that it's over complicated, because that becomes an admission of not being as clever as everyone else in the room.
JACK is far from perfect but one thing worth mentioning is that the API is really stable. I have been hacking on one audio app for about 13 years; in that time the GUI toolkit has deprecated the key UI elements I use, which have bitrotted to near uselessness; the primary programming language (Python) changed incompatibly and required significant work to convert the app; the predominant audio interface technology has gone from PCI to Firewire to USB. JACK's API has not changed at all that I know of. The bits of C code I wrote years ago to set up the app and connect to the server probably have the same commits attached to them that they did over 10 years ago. Love that.
[1] makes me believe that on Windows JACK doesn't really belong in the list. As great as JACK is on Linux, on Windows its power is limited to applications with native JACK support or applications and drivers with ASIO support.
What I expect from a virtual cable is to allow me to connect any source with any sink and that is what solutions provide.
The same is true for JACK on Linux, too. (On Linux you could use PipeWire though, which can route audio to/from both PulseAudio and JACK apps, but it isn‘t JACK proper.)
> or applications and drivers with ASIO support
I guess it should be okay to assume all professional apps do support ASIO (and some support JACK natively)?
Hmm it's not that new, I guess maybe the article is old? In any case, BlackHole works very well for me on Mac (I only really use it for real time recording the system audio into Quicktime screen recordings, so have not stress tested it).
An interesting related-ish Mac app is Monkey Audio Rewind[1], which runs in the background and is always recording the last n minutes of audio, then if there's something you want to capture (e.g. you're playing around on a soft synth and some serendipitous brilliance happens), you can just go into Rewind and export that bit of audio from the buffer. It's nicely designed and seems to work well.
44 comments
[ 5.0 ms ] story [ 106 ms ] threadAnother one for Windows is ASIO Link Pro, which is quite old but still works well under Windows 10.
https://give.academy/downloads/2018/03/03/ODeusASIOLinkPro/
I hate how much audio software on windows lacks.
It's always strange to me when people call Loopback expensive, because I will pay for reliability and ease of operation. I have also had very thorough help from Rogue Amoeba for a situation that involves interconnecting Google Voice and Zoom so that I can call out with Google Voice and join the person on the call to an ongoing Zoom session and it is invisible and seemless for all.
There is value in the porcelain.
I have zero issue paying for RA software. Or any software that works well and doesnt charge me a subscription.
Switching between cameras is a godsend for calls (one for my face, and another one pointing vertically down at a blank pad of paper) but I guess there’s less demand for switching between audio in a streaming studio setting, and mixing live audio from multiple sources is a music thing, where there are much better solutions?
Nowadays they also have software called "Dante virtual soundcard" (which is just that) and "Dante Via" (which allows you to additionally route individual program's IO — e.g. if you want to put that computers powerpoint and Browser on different faders and send some microphone signal to the Zoom client).
All in all good stuff, but if you "just" want to route things within one machine, probably overkill.
In my experience this works perfectly fine using pipewire on linux, on MacOS Blackhole, on Windows I never needed it because my RME soundcard allows loopback recording and complex routing.
Some glaring omissions, IMO.
"...BlackHole is new and I have not tried it yet..."
Anyone can type that line and, having tapped the link, I am disappointed to see it (on a hackernews post).
As a reader, I don't need it to be comprehensive either. It's great to find an entry point and I'm happy to do more research as needed.
The NSM (Non/New Season Manager) system is best for saving and recalling the state of the graph. RaySession is a modern NSM front-end+backend.
There's also LV2; it uses RDF to define both the audio unit properties and the relations between them. If only Ingen and mod-host and Carla, with their LV2 plugin graphs, went the full hog and could be used in their (Ingen and Carla anyway) LV2 plugin forms to work as easy-to-make semi-modular software synths, that would be cool. (Part of the thought behind LV2 was to provide a session/graph saving format)
It seems like no one who designs this stuff ever says "this is too complicated, it doesn't have to be this way, we need to work on simplifying it".
I think when clever people get together and there is no adult in the room to represent people who actually have to use this stuff, no one wants to admit that it's over complicated, because that becomes an admission of not being as clever as everyone else in the room.
I think they do, but it's yet another XKCD 927 case.
What I expect from a virtual cable is to allow me to connect any source with any sink and that is what solutions provide.
[1] https://jackaudio.org/faq/jack_on_windows.html
> or applications and drivers with ASIO support
I guess it should be okay to assume all professional apps do support ASIO (and some support JACK natively)?
In many ways it'd been one of the most capable solutions for Windows.
The fine article looks a bit shallow not mentioning it at all.
Hmm it's not that new, I guess maybe the article is old? In any case, BlackHole works very well for me on Mac (I only really use it for real time recording the system audio into Quicktime screen recordings, so have not stress tested it).
An interesting related-ish Mac app is Monkey Audio Rewind[1], which runs in the background and is always recording the last n minutes of audio, then if there's something you want to capture (e.g. you're playing around on a soft synth and some serendipitous brilliance happens), you can just go into Rewind and export that bit of audio from the buffer. It's nicely designed and seems to work well.
[1] https://monkeyc.audio/