Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New OSX binary release #129

Open
sletz opened this issue Jun 15, 2020 · 19 comments
Open

New OSX binary release #129

sletz opened this issue Jun 15, 2020 · 19 comments

Comments

@sletz
Copy link
Member

sletz commented Jun 15, 2020

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.

@falkTX
Copy link
Member

falkTX commented Jun 15, 2020

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.

@sletz
Copy link
Member Author

sletz commented Jun 15, 2020

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 ?

@falkTX
Copy link
Member

falkTX commented Jun 15, 2020

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

@sletz
Copy link
Member Author

sletz commented Jun 15, 2020

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.

@falkTX
Copy link
Member

falkTX commented Jun 15, 2020

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)

@sletz
Copy link
Member Author

sletz commented Jun 15, 2020

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.

@falkTX
Copy link
Member

falkTX commented Jun 15, 2020

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

@sletz
Copy link
Member Author

sletz commented Jun 15, 2020

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.

@falkTX
Copy link
Member

falkTX commented Jun 15, 2020

@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

@sletz
Copy link
Member Author

sletz commented Jun 15, 2020

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
Copy link
Member Author

sletz commented Jun 15, 2020

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

@sletz
Copy link
Member Author

sletz commented Jun 15, 2020

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.

@falkTX
Copy link
Member

falkTX commented Jun 15, 2020

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?

@sletz
Copy link
Member Author

sletz commented Jun 15, 2020

  • 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/

@falkTX
Copy link
Member

falkTX commented Jun 15, 2020

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)

@sletz
Copy link
Member Author

sletz commented Jun 15, 2020

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

@falkTX
Copy link
Member

falkTX commented Jun 15, 2020

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?

@sletz
Copy link
Member Author

sletz commented Jun 15, 2020

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

@falkTX
Copy link
Member

falkTX commented Jun 17, 2020

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants