Hacker News new | past | comments | ask | show | jobs | submit login
Software audio routers (danmackinlay.name)
112 points by irsagent 8 months ago | hide | past | favorite | 41 comments



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)


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.


This comment sums up how impenetrable software audio feels to me.


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.


> 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 they do, but it's yet another XKCD 927 case.


I'm not talking about making something different after the damage has been done, I'm talking about the design process itself.


A walk in the park in relation to, say, AI, or just web frontends/frameworks ;)


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.

https://give.academy/downloads/2018/03/03/ODeusASIOLinkPro/


Alternatively if you have a simple DAC you can just route an output back to an input and record in any free DAW. It simplifies things so much.


Should have (2017) in the title. We have Pipewire on Linux now.


Yeah, the article contains a 2023 update, but still no mention of pipewire


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?


On Windows many use VoiceMeeter with OBS for basic audio mixing.


> BlackHole is new and I have not tried it yet.

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/


There is a world of difference between the quality and robustness of the rogue amoeba software and VB software on windows.

I hate how much audio software on windows lacks.


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


I have been repeating something since 2014:

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.


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

[1] https://jackaudio.org/faq/jack_on_windows.html


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)?


You can set up routing between PulseAudio an JACK manually, with pulseaudio-jack.


I've been using BlackHole on MacOS for the last few days. So far it's been great!


Missing the most powerful on Windows, Voicemeeter.


It's such a shame the ASIO Link Pro project died with the author (according to hearsay) and no source is available to pick it up.

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.


What about a laddish environment with the Kx studio tools? Pipewire?

Some glaring omissions, IMO.


Add PulseAudio. Patching is not as explicit as JACK, but you can stream across the network with it.


Have to agree, the article is lacklustre.

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


Missing Audinate Dante


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.


I’ve had positive experiences with SoundFlower on Mac. I remember jack on Linux with early Ardour being a nightmare


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?


Written 6 years ago.


I thought loopback could pass an application's audio back to itself even in 2017, maybe I'm misremembering


You are not misremembering, it could/can still do this.


Also Virtual Audio Cable (VAC) for Windows https://vac.muzychenko.net/en/


I recently discovered Helvum for Pipewire and suddenly it was easy to configure my audio setup the way I needed.


Helvum is great, but if you need to recall patch configurations, raysession is even better.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: