jackaudio.github.com icon indicating copy to clipboard operation
jackaudio.github.com copied to clipboard

New OSX binary release

Open sletz opened this issue 5 years ago • 19 comments

From there https://github.com/jackaudio/jackaudio.github.com/releases/tag/v1.9.14

  • It could be interesting to precisely know which file is installed where? Could it be done? Is there an un-installer included in this new package as it was the case in the previous one?

  • I saw in a recent commit that Mach Semaphore where activated again instead of Posix Semaphore. Historically Mac Semaphore were used first and Posix Semaphore had to be used after an OSX version change in 2015 (see https://github.com/jackaudio/jack2/commits/develop/macosx/JackPlatformPlug_os.h) The commit message "Framework moved in /Library again, using posing semaphores. " is a bit enigmatic... and I don't remember the exact detail of the the need to move to Posix semaphore, but there was a real technical reason at that time. Is the move back from Posix to Mach Semaphore possible because of the fact the JackRouter component is not working anymore? Thanks for any explanation.

sletz avatar Jun 15 '20 02:06 sletz

Hi

  • It could be interesting to precisely know which file is installed where? Could it be done? Is there an un-installer included in this new package as it was the case in the previous one?

the entire jack installation is present. that means the output of ./waf install. I did not add anything besides that

  • I saw in a recent commit that Mach Semaphore where activated again instead of Posix Semaphore.

Yes, because the posix semaphores on macos are simply not implemented, so we have to use something else. I think the reason for the change was simply to get binaries building, I dont think they ever got much testing. And since your binaries for osx never got updated after some point, it was just never tested.

So I am trying to get things to work once again. This does work, but clients cannot be used more than once. I did a hack to force jack to start, but still not correct. I am looking into this right now.

falkTX avatar Jun 15 '20 02:06 falkTX

Yes, because the posix semaphores on macos are simply not implemented, so we have to use something else. I think the reason for the change was simply to get binaries building, I dont think they ever got much testing. I'm really surprised here: I obviously did the test back in 2015. I AFAICS the JackOSX package was indeed using them (the JackOSX 0.92_b3 package https://jackaudio.org/downloads/).

How to do see that " the posix semaphores on macos are simply not implemented" ? Error messages ?

sletz avatar Jun 15 '20 02:06 sletz

macos does not have sem_timedwait, which is essential for jack to work

falkTX avatar Jun 15 '20 02:06 falkTX

I remember that, but my remembering what also that it was not critical to make JACK work, or at least it could allow JACK to work in asynchronous mode only? (see https://github.com/jackaudio/jack2/blob/98c882c5a545c3dd819655c9869f6928274df8a3/common/JackAudioDriver.cpp when SuspendRefNum is used in ProcessGraphSyncMaster)

But If Mach semaphore can work again, then perfect.

sletz avatar Jun 15 '20 02:06 sletz

ah, I did not know that. we can have that as fallback, in case what I am doing does not work (ie, disable sync mode option for macos for use with the posix sem)

falkTX avatar Jun 15 '20 02:06 falkTX

the entire jack installation is present. that means the output of ./waf install. I did not add anything besides that => so an OSX framework? or a dynamic library? (.dylib file). I think it would help to have a description of that in the release page. I guess OSX users like to know which file is installed where.

sletz avatar Jun 15 '20 03:06 sletz

sure yes, I can add that. for now that was only some test package. it does not even work properly anyway.

btw, is JackPilot code made with Carbon or Cocoa? wondering if we could bring that back

falkTX avatar Jun 15 '20 03:06 falkTX

Not sure anymore, the source may still be visible from there: https://sourceforge.net/p/jackosx/code/. But the code is old, developed by J Petrantoni back in 2004.

sletz avatar Jun 15 '20 03:06 sletz

@sletz I got the semaphores to work, both async and sync mode on macos 10.15 here updated the package https://github.com/jackaudio/jackaudio.github.com/releases/download/v1.9.14/jack2-osx-1.9.14_v2.pkg

there is no qjackctl build yet, I need to setup a static qt first. starting jackd from CLI and using LMMS and Carla at the same time works.

Screenshot 2020-06-15 at 07 20 52

falkTX avatar Jun 15 '20 05:06 falkTX

Great ! In the long run using QT is probably to way to go. In this case adding some specific JackPilot preferences would be great, like this (french version here) Capture d’écran 2020-06-15 à 09 15 57 Some items are JackRouter specific and can be ignored. But "Hog mode", "Clock drift correction" "System port monitoring" could be interesting to report.

sletz avatar Jun 15 '20 07:06 sletz

BTW: why do you get this "XRUNmessages, XXX not triggered", everywhere ? Something is not working here.

sletz avatar Jun 15 '20 07:06 sletz

And please 1) add the list of all installed files 2) and a proper un-installer. Personally I don't want to mess up my current (still working even with JackRouter....) installation on OSX 10.13 when testing this new package.

sletz avatar Jun 15 '20 07:06 sletz

The xrun messages on my printscreen is just because I was doing a couple of things in the background. This is a very low-spec mac-mini using the integrated audio. I did some tests afterwards and it was fine xrun=wise.

Regarding file list, as I told you, it is just the regular jack2 files. so stuff like:

/usr/local/bin/jack_*
/usr/local/bin/jackd
/usr/local/lib/jack/
/usr/local/include/jack/

Is there source code for the extra jackosx stuff? (jackrouter plugin for example) in the same sources as jack pilot?

Also, how should we do an uninstaller? command script like you once did before?

falkTX avatar Jun 15 '20 11:06 falkTX

  • the JackOSX package was installing OSX frameworks, not dynamic libraries., that were installed in some predefined System level folder like /System/Libray/Frameworks. So I understand the new package is somewhat different, and installing it over JackOSX may cause some issues. Has anybody tested that yet?

  • JackRouter source code is on SF: https://sourceforge.net/p/jackosx/code/

sletz avatar Jun 15 '20 11:06 sletz

tbh, I don't really want to deal with previous jackosx package leftovers. I will add a note saying that old jackosx should be removed before installing this new package

(and yes, the package I made does not use macos frameworks, it has the same file types as used in linux)

falkTX avatar Jun 15 '20 12:06 falkTX

OK for notifying old JackOSX users. And since the new package loose something, probably few of them will install the new package if they are still on an OSX version that allows JackRouter bridge to work (that is before 10.15).

sletz avatar Jun 15 '20 12:06 sletz

Understandable. Is there something else that the old jackosx package provides that I should be aware of? (bdesides jackrouter plugin)

I noticed some HAL stuff, is that used at all still?

falkTX avatar Jun 15 '20 12:06 falkTX

The JackOSX package had a JackVST bridge, but I guess only few users ever used that. The main loss is JackRouter.

sletz avatar Jun 15 '20 12:06 sletz

FYI I got windows builds working, including qjackctl. No installer yet though, need to see how that is done and automate it. I did not try on a real Windows system, but at least it works via Wine (so it is faster to test while on Linux)

Obligatory screenshot :) Screenshot_20200617_012400

Some font rendering looks odd, I think it is only in Wine.

falkTX avatar Jun 17 '20 00:06 falkTX