JackPilot on Mac

1,164 views
Skip to first unread message

Fred McClain

unread,
Sep 19, 2020, 6:07:55 PM9/19/20
to jacktrip-users
Hello,
I'm an OS X and iOS developer and would be interested in updating JackPilot for Catalina.

Can anyone point me to a contact to explore this further?

Thanks,
Fred 

OCH

unread,
Sep 19, 2020, 6:35:06 PM9/19/20
to jacktri...@googlegroups.com
Have you got in touch with ppll on the jack repo here: https://github.com/jackaudio/jack2 ?
Keep me posted, I'm interested in jackpilot for Catalina. 

OCH

--
You received this message because you are subscribed to the Google Groups "jacktrip-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jacktrip-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jacktrip-users/58463131-98ff-45e6-925a-6e9c2cc172e2n%40googlegroups.com.

Marcin Pączkowski

unread,
Sep 19, 2020, 7:33:36 PM9/19/20
to jacktri...@googlegroups.com
Hello Fred,

I'm not involved with Jack directly but I was looking into this myself so I thought I'd share my experience.

The issue with Jack on macOS is twofold: the implementation of JACK - CoreAudio bridge (AKA JackRouter, allowing non-native JACK applications to connect to JACK), and the JackPilot app itself. JackRouter does not really need JackPilot AFAIU, its parameters could be set using any other software (it's just a configuration file). Jack itself can be started and controlled using QJackCtl, which AFAIK builds and works on macOS, with some minor changes.

However, the main problem is that JackRouter is using AudioHardwarePlugIn API, which has been deprecated, and IIUC, this is the reason JackRouter could not be used as default audio device in the versions of macOS it still worked on. The "modern" virtual audio device API is called AudioServerPlugIn. BlackHole and others use that.

I've looked into picking up the JackRouter project, however I'm not a professional C/C++ developer and haven't gotten far with it. In the process I found a project that kind of achieves what we want - JackBridge, but with caveats. It does connect to JACK and exposes itself as a virtual soundcard using the modern API, but the number of inputs/outputs is not configurable, individual programs don't show up as individual ports in JACK, and it needs an additional "bridge" executable to run in the background. However, it does point in the right direction, I think.

When I was looking into this, I reached out to jack2 devs asking for the latest version of jackosx sources. What I've received from them, claiming to be the latest version of the source, I've put on github.

BTW from some recent information on mailing lists I got the impression that at least some JACK developers are not interested in maintaining JackRouter (but only jack itself on macOS and Windows, in addition to Linux). JackRouter could totally be developed and distributed as a separate software package, requiring JACK of course. However, someone would need to pick up its development, AFAIU for both macOS and Windows. These are likely two very different tasks, on Windows it is a virtual ASIO driver, so there's no point in doing both by the same person or as the same project. 

IMO it's not really worth maintaining JackPilot since we can use QJackCtl, but I might be wrong, and JackPilot might be the easiest thing to fix, if it just needs recompiling. JackRouter, however, needs a rewrite, and it would be a tremendous and crucial update for JACK on macOS. I'd be happy to exchange further emails about it, though what I have described is probably most information that I have on this topic.

I hope this is helpful! 
Best regards,
Marcin

OCH

unread,
Sep 19, 2020, 7:39:01 PM9/19/20
to jacktri...@googlegroups.com

Fred McClain

unread,
Sep 19, 2020, 7:51:40 PM9/19/20
to jacktrip-users
Thanks Marcin & OCH,

I'll look into the code Marcin posted and let you know my thoughts. Most likely it'll take me a couple days to get back to you.

All the best,
Fred

Stéphane Letz

unread,
Sep 20, 2020, 2:10:46 AM9/20/20
to jacktri...@googlegroups.com
Hi all,

We started the JackOSX project back in 2004 with John Petrantoni and Dan Nigrin. I wrote the JackRouter Jack/CoreAudio bridge. John Petrantoni wrote the JackPilot application and Dan Nigrin wrote the documentation and helped animating the community.

As explained at several time and places, and as Marcin just described, the JackRouter component uses obsolete API and cannot be ported directly on Catalina. Year after year Apple decided lo lock-down more and more low-level API that makes developing this kind of software more and more difficult or even impossible. I looked at JackBridge sources at some point, but at that time it what not implemented « the right way » (that is having perfect synchronous audio graph rendering) and was adding some buffer latency, which basically destroy the JACK model.

I am absolutely not sure JackRouter can be ported using the AudioServerPlugIn model. I don’t work on the JACK source code anymore since several years, and nobody in the JACK developer community seems to have the knowledge and time to even try doing that. This is clearly unfortunate but I don’t see simple solutions for now.

Stéphane
> To view this discussion on the web visit https://groups.google.com/d/msgid/jacktrip-users/CAEBNZeBbCkCrftjgQzACmk8ZJe6OfG2HwzjaXwVEezqJgpFWMQ%40mail.gmail.com.

Fred McClain

unread,
Sep 22, 2020, 5:24:15 PM9/22/20
to jacktri...@googlegroups.com
Hi,
Thanks for the very useful, if discouraging, information. My expertise in iOS/MacOS and Objective C doesn’t seem right on target but since I’ve got some spare time I’d like to take a closer look at the JackRouter problem.

Can you point me to the current JackRouter GitHub?

All the best,
Fred
> To view this discussion on the web visit https://groups.google.com/d/msgid/jacktrip-users/F8A147FE-B322-414E-AE0D-208B91C4E483%40grame.fr.


Marcin Pączkowski

unread,
Sep 22, 2020, 5:27:33 PM9/22/20
to jacktri...@googlegroups.com
AFAIU there's no "current JackRouter GitHub". JackRouter is however included in the JackOSX repo I linked previously.
m

Fred McClain

unread,
Sep 22, 2020, 5:38:01 PM9/22/20
to jacktri...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages