Building Max apps

davehuntaudio@btinter's icon

I have recently been attempting to build audio apps from Max 8 patches. In the past this has worked fairly painlessly and been very useful. Now it seems nearly impossible. The app opens, but will not pass audio, even if granted access to the microphone and thus system audio. The build operation will not pass *~, or mc.*~ or similar arithmetic operations, but only their verbal equivalents times~ and mc.times~.

Obviously much of this is because of Apple's decision to require "signing" of every application on recent operating systems, which means having to become a recognised developer and getting the app approved. I have come across a mention of a Cycling '74 License for Max-Generated Code for Export, which seems to be mostly relevant to RBNO.

These seems to be very little documentation as to how to achieve a working app for private or free usage.

Dave Hunt

Source Audio's icon

You must configure standalone inspector correctly in first place.

Then adhoc sign standalone, open terminal and :

sudo xattr -cr dropapphere

then

codesign -s - -f dropapphere

or for pre macOS 13

codesign -s - --deep -f dropapphere

davehuntaudio@btinter's icon

Hi SOURCE AUDIO

Thanks for that.

I had come across it before, but it didn't work. I've been mostly working on an iMac running OS10.14.6, simply out of convenience. The commands you give don't work on 10.4.6. I have used this to build apps many times, though not recently. There have been upgrades to later versions of Mac OS and Max since I last built an app.

Your answer sent me to try on a M2 Mac Mini running the latest version of OS14. It worked, on a Max app made in 10.14.6 which now opens passing multi-channel audio. It keeps asking whether I allow use of the microphone. It was running from an external disk, so will try moving it to Applications.

The above signed app does not work with on the 10.14 iMac. It loads, and responds, but does not pass audio.

Do you know of similar Terminal scripts for older Mac OS's ?

Are there any specific things to set in the 'standalone' object before building the app ?

Should the 'Bundle Identifier' be the default "com.mycompany.myprogram", or something else ?

Thanks for your help,

Dave

Source Audio's icon

bundle indentifier should be set so that it reflects name of you app.

and you should also set preferences to reflect your app.

On 10.14.6 - Mojave - I don't know why should it not work.

It could depend on max version that you use to build the app.

can you post more infos ?

davehuntaudio@btinter's icon
Source Audio's icon

I will check that, but don't have mojave installed right now.

only below or higer...

One can force audio access for app (TCC.db) only if SIP is disabled.

can you disable SIP ?

and you are sure it is max 8.5.6 and not 8.6.5 ?

davehuntaudio@btinter's icon

Yes, I can disable SIP. I'll try that later.

Yes, Max is 8.5.6 on my iMac, OS 10.14.6.

8.6 upwards requires OS 10.15.

I have Max 8.6.5 on my M2 Mac Mini.

Source Audio's icon

8.6 works well on older systems, only node script and rnbo do not.

I use it on high sierra without problems.

I just tested max 8.5.7 ( did not have 8.5.6 at hand)

standalone on mojave 10.14.6.

With only adc~, meters~ and dac~ .

It asked for mic permissions, was granted and it just works.

Also when one restarts max.

Mojave has gatekeeper and SIP disabled.

Shane's icon

Hi all,

I know there are lots of threads on this topic and the proper use of "codesign," but this seems to be the most recent.

Running MacOS Sequoia 15.2 on an M3 MacBook Pro, I am getting error messages when running codesign:

denson@ART-KMQ7DGXK23 Desktop % codesign -s - -f Bride-minutes-2025-01-22.app
Bride-minutes-2025-01-22.app: replacing existing signature
Bride-minutes-2025-01-22.app: bundle format unrecognized, invalid, or unsuitable
In subcomponent: /Users/denson/Desktop/Bride-minutes-2025-01-22.app/Contents/Frameworks/JitterAPI.framework  

If I run the command multiple times, it returns similar errors for various components of Max: MaxAudioAPIImpl.framework, MaxLuaImpl.framework, MaxAudioAPI.framework...

Any tips on how to solve this?

Thanks in advance!

Shane's icon

Anyone have any ideas about why this is happening, and more importantly: how I can get around these errors?

Thanks in advance!