6 ms·
From Pro Audio perspective, it's even easier than on Windows. Not sure about Mac OS, never tried it.
by odiroot 5y ago
From Pro Audio perspective, it's even easier than on Windows. Not sure about Mac OS, never tried it.
- PaulDavisThe1st 5y agoIt's not quite as easy as on macOS, but then again, macOS doesn't offer interapplication audio routing (the "JACK part of Pipewire"), so the comparison is not entirely fair. Pretty close though.
- marcodiego 5y agoPipewire allows any app to be an element on a patchbay: https://gitlab.freedesktop.org/ryuukyu/helvum https://gitlab.freedesktop.org/ryuukyu/helvum
- PaulDavisThe1st 5y agoI know what Pipewire does ... I wrote JACK :) I was describing what macOS does not not allow, and that's routing audio between applications. When I say that, I don't mean that it is impossible - there are numerous tools (including JACK) that will allow it - but it doesn't come with just CoreAudio itself.
- marcodiego 5y agoThanks for writing Jack! I love the fact that I can play something in vmpk, render using qsynth, process in rackarrack and record directly in audacity. The routing feature alone sets Linux apart from the competition and I'm happy it influenced pipewire to implement it. Linux is already deployed in some commercial daws and it will soon be an RTOS. Hope music production will have more and better options because of this.
- PaulDavisThe1st 5y agoThere have been "RTOS" versions of Linux for more than 20 years. The current mainstream kernel already includes almost all of the RT_PREEMPT patch set that makes it more or less an RTOS if you want it to be.
- loxias 5y agoEchoing the parallel comment, if you're willing to get your hands into the guts, you can get amazing "RTOS-like" audio performance out of linux. I love pushing the limit of how low latency can get. Start with the PREEMPT_RT patches, be sure your irqs for audio are prioritized right, then experiment with pinning individual processes to specific cores, as well as locking their address space in memory.
- loxias 5y agoThanks for writing JACK! I'm curious what you think of PipeWire, feel free to be opinionated. I'm also a low level audio/midi dev (tho far less prolific, and less public) and having seen how you architect things, and your code, I'd value your opinion.
- cpuguy83 5y agoThere's a low-latency, free/OSS driver to do this. MacOS is a little confusing with it because you have to configure it in the MIDI setup utility, but it works very well. Not to mention commercial product from Rogue Amoeba which is fantastic.
- cpuguy83 5y agoAnd now I feel like an idiot for posting this having read who you are
- nitrogen 5y agoIt does help the rest of us though. I'll also mention for the same reason that there was a thing called ReWire on Windows, not sure what became of it.
- PaulDavisThe1st 5y agoRewire is fairly different. It still exists, and also existed for macOS too. But to use it, applications have to be explicitly coded to use it (and linked against the rewire SDK). That's quite different from JACK, SoundFlower, Hijack and the innumerable other inter-application audio routing systems for macOS, which can be used without the applications knowing anything about them.
- fragmede 5y agoThe functionally named but utterly undescriptive GraphEdit, which was at some point part of the DirectX SDK allowed you to build arbitrary pipelines (that normally you'd have to configure via code in your app) for input/output of multimedia data. I haven't done directX programming in over a decade though so I have no idea if it's comparable to ReWire, but GraphEdit was an unsung hero back when I was.
- PaulDavisThe1st 5y agoThe DirectX SDK in this respect is like GStreamer on Linux: it allows an application to build arbitrarily complex pipelines for data processing. Emphasis on within the application. However, it did not and does not provide for inter-application audio/MIDI routing, which is what tools like JACK, Rewire, SoundFlower, Audio Hijack and others are all about.