Overcoming M1 limitations?

Hey!

Just joined, total n00b, no relevant experience really. I had been using some OF based software (video waaaves) on my old imac (2010, hahaha) that worked ok but couldn’t reach a stable 30fps. I bought a new M1ni hoping to leverage its power to easily get a stable 30fps.

Unfortunately, when I got xcode on the M1ni and tried to run the software, it just gives a bunch of errors.

I asked the creator of the software and they said this wouldn’t be possible until some additional development was done due to incompatibility or limitations with OF and M1. I hope I’m getting this right, because I don’t want to misrepresent what they said (if this is incorrect its my misunderstanding not theirs).

I figured it might be worthwhile to ask here to see if anyone had any additional advice or recommendations. Or, if there is any way to get this software working. Does the code just need to be gone through to debug for M1 use, or are there specific things that can’t be done on the M1 that would have been possible on intel?

The whole software suite can be downloaded at the following link if anyone is wondering exactly what the software is (Video Waaaves is specifically what I use most):

Thanks for any help. I’m running 13.1 xcode, but I’m still on Big Sur.

Hi, has that software been updated to the current openFrameworks version? Can you link to its repo?

Here’s a link to the Github, I’m not sure about the software being updated.

Is there a way I can check which version of Openframeworks is used, so I could figure out if it’s been updated?

Hi. I was able to download, compile and run that app with no modifications at all on my i7 MacBook Pro. As far as I understand OF has gotten updated to work with no problems on M1.
From a compiled app I guess you can not check that.
The source code of that app seems to be update. It all depends on the version you use to compile.
Try using the latest nightly build. you find those in openframeworks.cc/download/ at the bottom of the page.
If it does not work please post the errors you get

So, I should download Openframeworks nightly build and then add that into the app folder and delete the version there? Then just open app in xcode and click Build?

Thanks for all your help!

Nope.
Download the nightly build. Unzip. This will be you OF folder.
Download https://github.com/ex-zee-ex/VIDEO_WAAAVES_2.5_suite and unzip. Move this folder into the OF folder/apps/myApps.
you will need some additional addons.
ofxImGui
ofxMidi
ofxNDI

You can find those in ofxaddons.com.

(When downloading form github, it will usually append “-master” to the name of the repo, so rename those folder so it does not have that extra part)

Download and place those folders inside OF folder/addons/

In the OF folder there is an app called Project Generator. Drag it to your desktop and then back again to where it was. This is to circumvent some sort of security measure from apple. Open Project Generator. It will ask you where your OF folder is, double check that it is correct.
Now, drag and drop the app’s folder into the Project Generator’s window.
Clic on the update button.

Once ready it will show a popup asking if you want to open in your IDE. click that button. It will open in xcode. Now in xcode press the play button and it will compile. if everything went fine the app will open.

1 Like

I followed your instructions, but it wasn’t working. Just a blank window with no way to do anything.

I’m not sure if this problem is related to the fact that this is normally a suite of six different apps that aren’t supposed to run at the same time. I only need to run one at a time, and I only actually use three of these anyways.

When I build it though, it is from the folder of the whole suite. When I normally use these apps (on intel imac) I have to build the individual apps in xcode from a subfolder. I don’t see these folders in the suite downloaded from the github.

However, when I download the project from the developer’s website (through a link to google drive) it contains many more folders which include the individual apps separately. I notice on the github, they say that for people unfamiliar with OF to use that link and follow some workaround instructions. So, I assume these extra folders are the workaround the developer created (they are so awesome for building these tools and trying to help people, I just wish I could figure out how to get this working on M1ni).

So, I’m a bit at a loss. I also tried downloading the workaround files the developer linked to and I dragged this folder to OFfolder/myapps as you described for the github version; then I grabbed just the individual app folder in that and dragged it to the project generator just to see if maybe that could work. It crashed when I tried to build it and had two pop ups saying there was a crash and to contact the developer.

Check with the developer to make sure VIDEO_WAAAVES_2_5Debug works with this version of macOS. You may need to reinstall the application. Be sure to install any available updates for the application and macOS

Could not attach to pid : “7112”
“VIDEO_WAAAVES_2_5Debug” failed to launch or exited before the debugger could attach to it. Please verify that “VIDEO_WAAAVES_2_5Debug” has a valid code signature that permits it to be launched on “My Mac”. Refer to crash logs and system logs to for more diagnostic information.

Thanks for all your help so far! I’m willing to try whatever I can to get this working, so if you have any ideas I’m certainly all ears!

sometimes, for some reasons I dont get, Project Generator will replace the src folder of the project with the default empty one. Double check that this has not happened and that the src folder is in the xcode project.

It has five files there:

guiapp.cpp
guiapp.h
main.cpp
ofapp.cpp
ofapp.h

I also saw this in the bottom section of xcode:

dyld: Library not loaded: @rpath/libndi.4.dylib

Referenced from: /private/var/folders/hm/fbyxtlfs7n94l_1ckch982fm0000gn/T/AppTranslocation/558FD990-0CAE-46B0-8F79-CA20307143DB/d/VIDEO_WAAAVES_2_5Debug.app/Contents/MacOS/VIDEO_WAAAVES_2_5Debug

Reason: no suitable image found. Did find:

/private/var/folders/hm/fbyxtlfs7n94l_1ckch982fm0000gn/T/AppTranslocation/558FD990-0CAE-46B0-8F79-CA20307143DB/d/VIDEO_WAAAVES_2_5Debug.app/Contents/MacOS/libndi.4.dylib: mach-o, but wrong architecture

error: attach by pid ‘2012’ failed – no such process.

I wasn’t sure how to post a log file.

Hi, so that error means that NDI lib is missing or not linked. Check if ofxNDI is on its newest version (I tested it with this one ) if it is try to build and run an example of it. It might be the case that the lib included in the addon is not the M1 version. If you are able to compile and run successfully any of ofxNDI’s examples, then it means that this app’s project has something setup wrong, otherwise it is a problem to be solved within ofxNDI.

just to make sure, does ofapp.h and ofapp.cpp have code inside of it? you mentioned that it was not showing anything, it might be that it got erased or something.

ofappcpp and ofapp.h both have data.

I updated the ofNDI with the one you linked. The project failed to build this time (unlike previously when it built but was a blank window).

I tried running the ofNDI example and it failed to build.

clang: error: no such file or directory: ‘…/…/…/libs/cairo/lib/osx/cairo.a’

clang: error: no such file or directory: ‘…/…/…/libs/FreeImage/lib/osx/freeimage.a’

Command Ld failed with a nonzero exit code

looks like it might have an incorrect folder structure.
try updating the example with Project GEnerator before trying to compile it.

Ok, this time something new happened! I clicked to build, and it took me to the “spraypaint can” screen (debug navigator). And under “Thread 1” in the left panel:

0__abort_with_payload
6__dyld_start

In the middle panel:

dyld`__abort_with_payload:
0x100d76dd8 <+0>: mov x16, #0x209
0x100d76ddc <+4>: svc #0x80
→ 0x100d76de0 <+8>: b.lo 0x100d76e00 ; <+40>
0x100d76de4 <+12>: pacibsp
0x100d76de8 <+16>: stp x29, x30, [sp, #-0x10]!
0x100d76dec <+20>: mov x29, sp
0x100d76df0 <+24>: bl 0x100d74c28 ; cerror_nocancel
0x100d76df4 <+28>: mov sp, x29
0x100d76df8 <+32>: ldp x29, x30, [sp], #0x10
0x100d76dfc <+36>: retab
0x100d76e00 <+40>: ret

With a reddish-brown box:

Thread 1: signal SIGABRT

I also tried changing Build Phases > Copy Files > Destination to Executables and copied libndi.4.dylib there (these were some additional instructions on the developer’s site for opening the other project-- not the github version).

those are the assembler instructions which happen during the dynamic library load.
I think it might be that libndi was not compiled for M1. try finding and installing a version that works with M1. Currently NDI is on v5 so I dont know if this will affect or not the addon´s implementation. give it a try NDI SDK (Software Developer Kit)