Closed kylemcdonald closed 3 years ago
Most likely the projects are set to enable AVX, which cannot be emulated by rosetta 2 and you are on an M1 Mac OR you are on a very old Mac without AVX. If you build them with SSE 4.2 instead they should run in either case.
I think there is something in the config that sets this.
From your crash log I'm pretty sure you are on an M1 processor.
Amazing lead. This corresponds with what I was just noticing about some kind of datatype specific crashes. I am on an M1 Mac Mini. I will look into the SSE 4.2 flag.
You might just be able to comment out:
CLANG_X86_VECTOR_INSTRUCTIONS = avx2
in the config file
That was it! I changed this line in the Config_AHarker_Externals.xcconfig
file CLANG_X86_VECTOR_INSTRUCTIONS = sse4.2
Now it runs on my M1 Mac Mini. This patch will eventually run on another machine pre-M1 MacBook Pro, so I will look into which vector instruction set is supported by that machine and possibly re-build.
In case you're curious, it is for this piece https://vimeo.com/471300137 which will be showing in Brooklyn this month. We've been using partconvolve~ and timeconvolve~ since we made it in 2013, so every few years I am back to discover the latest Mac incompatibility 😂
Thanks for all your work & your help.
Nice! For IR-type convolution I'd advise you to install HISSTools Impulse Response Toolbox from the package manager and then using multiconvolve~ instead - it's the same code under the hood. If there are specific reasons to use the separate externals fine, but for most people they just want the zero latency convolution you can now get in a simpler form.
Thank you! The reason I'm avoiding multiconvolve~ is basically that the sound was crafted by someone who is more of a Max expert than me, and I don't trust myself yet to replace this subpatch in a truly drop-in way. The day I can no longer recompile the externals, I will absolutely switch over :)
I made that subpatch and I'm almost 100% sure that you can simply replace it with multiconvolve~ and connect whatever was connected to the right inlet to the leftmost inlet of multiconvolve~ (by default it'll just have one input).
Steps to reproduce after installing Max 8 and Xcode:
source/
intoAHarker_Externals/AH_Max_SDK
Config_AHarker_Externals.xcconfig
and changeMACOSX_DEPLOYMENT_TARGET = 11.3
andARCHS = x86_64
andSKIP_INSTALL = NO
andDSTROOT = $(SRCROOT)/../../build
AH Externals.xcodeproj
and Product>Build.AH_VectorOps.h
sayingConstant expression evaluates to 9223372036854775808 which cannot be narrowed to type 'long long'
. Click on the "Fix" button twice which will change line 387 tostatic const vSInt64 max_negative = {static_cast<long long>(0x8000000000000000), static_cast<long long>(0x8000000000000000)};
AHarker_Externals/build
folder and verify that the externals are present.AHarker_Externals/build
.And here are some working externals:
I was able to get [ macaddress ] to crash by adding a property
double param;
totypedef struct macaddress
and then adding the linex->param = 1;
insidemacaddress_new()
. Interestingly, ifparam
is an int type (long
,int
etc) then it does not crash.