I am currently working on a Max4Live device that uses the live descriptors from the toolbox. I don’t have a problem with the library itself, but with sharing the device so that it works on both Windows and Mac.
I work on Windows, and freezing the device and sharing it with other Windows users works fine. However, if someone on macOS uses it, the externals get quarantined. So I borrowed a Mac (running Mojave, fwiw) and recompiled the device. However, another user (which doesn’t use Mojave) got an error saying that the embedded externals are not compatible with his architecture.
Since I know very little about the Macintosh, I was wondering if I should create a device for each macOS architecture, in addition to a Windows version?
This seems a bit cumbersome, so I think I’m missing something.
I’m not a user of M4L so I don’t know how, but I know we are signing our externals so that should not be an issue, and that @rodrigo.constanzo and @jamesbradbury and others have distributed devices publicly successfully. Maybe there is a cheat sheet somewhere?
I’ve distributed quite a few M4L externals with them in and not heard back any issues. It’s possible that all the people will have already done the quarantine thing due to having Max installed, or using other external-dependent M4L devices, so other than offering some instructions on how to upgrade the internal Max to 8.3 (which I think Live already does automatically), I just distribute the M4L devices ‘as is’.
Hey @jpjpjp I feel like that what you are explaining is odd, as the externals are signed and should behave as you want them too even if they get frozen in a device. I’m going to try and recreate the problem and see if it happens. I have a few machines here I can test on.
This may be unrelated to their operating system and will emerge if they are using an old laptop though I feel like we actually turned AVX512 off by default so that more machines could run FluCoMa by default. Will have to dig somewhat deeper.
I’m using Windows 11 x64 and Max 8.5.3, and I tried to freeze the device with the pre-release (1.0.6), and also the 1.0.5 from the package manager. I open the device from Ableton with the full MaxMSP version to be able to freeze it. Same errors in both cases
I am able to reproduce this. It happens when you freeze the device from Windows and try to open it on Mac but not the other way around. It’s a problem perhaps with Max for Live and how bundling works or something we need to do. I’ll investigate further and get back to you.
So after some preliminary investigating it seems that it is something to do with how arm64 unpacks the externals from the collective inside the .amxd. If you look inside the internals of the Max application you will find a folder at a similar location here:
If you look inside there you will find the externals. If you try and delete them manually with rm -rf it will throw a permission error.
So it’s decidedly not a FluCoMa error but you’ve actually caught a pretty gnarly bug that no-one else has seemed to report. Nonetheless, don’t make a ticket – someone at c74 is already aware and looking into it further For now, it kinda works if you delete those externals inside the mxt folder with administrative permissions.
Thanks a lot for for investigating this and contacting Cycling!
So far I’ve worked around the problem by recreating the device directly on Mac as you said, but next time I’ll try to have those externals deleted. I froze it on a macOS Monterey v12.6.1 (Intel Core), and it seems to work everywhere now.
I don’t know if it’s relevant or related but I had the same problem. freezing on
Win10 and then all the zlib warnings on Mac. But as a first measure I updated Max + Live and tried to freeze again and that already solved the problem for me.