Hey all
On macOS, I used to download a package named JackOSX for installing JACK (which seems to be the JACK1 implementation). Since a while now, the prominent source to get JACK seems https://jackaudio.org where you get JACK2 installers for macOS (and other platforms).
Pd downloaded from Miller's site doesn't see the JACK2 server on macOS. However, when I build a Pd.app against JACK2, I end up with a Pd that works with both, JACK1 and JACK2. To me it looks like the official builds are built against JACK1.
Is there a reason to stick with JACK1, when building against JACK2 seems to support both? I'm not totally sure how far that support goes. I know about some instances where Pd.app built against JACK2 didn't see the JACK1 server. I didn't figure out why this was the case on one such system, but not on others.
Anyway, my impression is that someone installing JACK on macOS now is more likely to find JACK2 than JACK1.
Roman
There is already an issue open with some more background information:
https://github.com/pure-data/pure-data/issues/1190
Sorry for the noise.
Roman
On Fri, 2021-07-30 at 10:23 +0200, Roman Haefeli wrote:
Hey all
On macOS, I used to download a package named JackOSX for installing JACK (which seems to be the JACK1 implementation). Since a while now, the prominent source to get JACK seems https://jackaudio.org where you get JACK2 installers for macOS (and other platforms).
Pd downloaded from Miller's site doesn't see the JACK2 server on macOS. However, when I build a Pd.app against JACK2, I end up with a Pd that works with both, JACK1 and JACK2. To me it looks like the official builds are built against JACK1.
Is there a reason to stick with JACK1, when building against JACK2 seems to support both? I'm not totally sure how far that support goes. I know about some instances where Pd.app built against JACK2 didn't see the JACK1 server. I didn't figure out why this was the case on one such system, but not on others.
Anyway, my impression is that someone installing JACK on macOS now is more likely to find JACK2 than JACK1.
Roman
On 7/30/21 10:23, Roman Haefeli wrote:
Hey all
On macOS, I used to download a package named JackOSX for installing JACK (which seems to be the JACK1 implementation). Since a while now, the prominent source to get JACK seems https://jackaudio.org where you get JACK2 installers for macOS (and other platforms).
Pd downloaded from Miller's site doesn't see the JACK2 server on macOS. However, when I build a Pd.app against JACK2, I end up with a Pd that works with both, JACK1 and JACK2. To me it looks like the official builds are built against JACK1.
i think so, and i think that this is intentional (and good).
jack1 and jack2 are mostly binary compatible, but afaik jack1 is "more" compatible, that is: if you link against jack1, you are guaranteed to be able to run against both jack1 and jack2, but not the other way round. if you are not using any advanced features of jack(2) (and Pd does not), than it shouldn't really matter against which one you compile.
this is the reason why e.g. all Debian packages that use JACK (i mean *all* Debian packages that use JACK, not just Pd-related ones) compile against jack1, as this guarantees binary compatibility with whichever jack-server is actually running (JACK1 or JACK2), whereas building against JACK2 might enable some non-compatible features in the application (and thus forcing everything to JACK2).
Is there a reason to stick with JACK1, when building against JACK2 seems to support both? I'm not totally sure how far that support goes. I know about some instances where Pd.app built against JACK2 didn't see the JACK1 server. I didn't figure out why this was the case on one such system, but not on others.
Anyway, my impression is that someone installing JACK on macOS now is more likely to find JACK2 than JACK1.
i don't think so.
afaict, the problem is rather how JACK2 ships the libraries. JACK1 shipped a framework that is used by Pd's build system. JACK2 does not ship such a framework and thus it can obviously not be found by Pd (resulting in no-jack-support).
so the bug could be considered to be in the JACK2 distribution package.
in the end it doesn't really matter against which JACK we are building. what does matter however, is that JACK support in the *binary* is purely optional.
if your Pd version (that is built against JACK1) cannot find the running JACK2 server, this is unfortunate. but if your Pd version (that is built against JACK2) refuses to load on a system that doesn't have JACK installed (whatever version), i think this is much more serious.
but i think this is covered in [1190] already.
gfmsadr IOhannes
On Fri, 2021-07-30 at 11:13 +0200, IOhannes m zmölnig wrote: On 7/30/21 10:23, Roman Haefeli wrote:
Anyway, my impression is that someone installing JACK on macOS now is more likely to find JACK2 than JACK1.
i don't think so.
Ok. Where are you getting JACK for macOS from? Should we point Pd users to some specific resource to get JACK from so that it works with Pd?
afaict, the problem is rather how JACK2 ships the libraries. JACK1 shipped a framework that is used by Pd's build system. JACK2 does not ship such a framework and thus it can obviously not be found by Pd (resulting in no-jack-support).
My understanding (or rather: experience, I don't really understand the details) is that the framework isn't needed anymore.
so the bug could be considered to be in the JACK2 distribution package.
in the end it doesn't really matter against which JACK we are building.
My experience is this: When I download JACK from where I think I'm supposed to get JACK from, Pd from Miller's site doesn't talk to it. Maybe I'm doing something what a normal user wouldn't do, but I'd like to know what. Right now what is available isn't compatible.
what does matter however, is that JACK support in the *binary* is purely optional.
if your Pd version (that is built against JACK1) cannot find the running JACK2 server, this is unfortunate. but if your Pd version (that is built against JACK2) refuses to load on a system that doesn't have JACK installed (whatever version), i think this is much more serious.
Absolutely. However, my experience contradicts this.
Building a Pd.app like this:
./autogen.sh
./configure \
--enable-jack \
--disable-jack-framework
make -j
make app
creates a build that runs with:
This is on 10.15.7. I don't have access to other macOS versions right now and I fully support being cautious. But contrary to your statement that JACK1 is more 'compatible', the Pd.app I get from Miller's site doesn't run with JACK2, which I believe is what users normally install these days. The site http://www.jackosx.com mentioned in INSTALL.txt doesn't exist anymore.
I don't know how the official Ardour6.app is built, but it works with both JACK1 and JACK2, and also with no JACK installed (in case this has any relevance).
Roman
On 7/30/21 12:09, Roman Haefeli wrote:
On Fri, 2021-07-30 at 11:13 +0200, IOhannes m zmölnig wrote: On 7/30/21 10:23, Roman Haefeli wrote:
Anyway, my impression is that someone installing JACK on macOS now is more likely to find JACK2 than JACK1.
i don't think so.
Ok. Where are you getting JACK for macOS from? Should we point Pd users to some specific resource to get JACK from so that it works with Pd? o
sorry, that was a reply in the wrong line.
i did not want to make any assumptions about which version of JACK people are more likely to find. (most likely is *is* JACK2, as you wrote)
gmsard IOhannes