View Single Post
  #1  
Old 12-03-2022, 02:39 PM
Darryl Ramm Darryl Ramm is offline
Member
 
Join Date: Nov 2010
Location: USA
Posts: 19,657
Default How to tell if an app/plugin is Apple silicon, Intel or a Universal Binary?

Since this is probably going to come up a lot I wanted to drop a note about identifying Intel and Apple silicon native executables and plugins.

For Applications you can select the application in the Finder and use Command-I to view the app's info, under Kind it will list "Application (universal)" for Intel and Apple Silicon support or "Application (Intel)" for Intel apps. And over time we'll start seeing Apple silicon only apps.

To see if applications are running natively on an Apple silicon based Mac you can use in the macOS Activity Monitor application, look at the "Architecture" column in the My Process window. If it sats "Intel" it is running under Rosetta 2.

The normal way to change wether a universal binary runs under Rosetta or natively is to select the .app file and type Command-I and then in the info panel check the "Open Using Rosetta" checkbox. Presumably Apple is just will be packaging this coming beta release of Pro Tools with this option already checked, and you uncheck it to run natively.

You can also use the file command in Terminal to work out if something is Apple silicon or Intel. Same as used to see if plugins were 32-bit or 64-bit in the past. But the file command has to be pointed at the actual executable image, not the .app or plugin bundle.

So as an example I'll look at the Superior Drummer 3 AAX plugin and AU plugin for Logic Pro..

$ cd /Library/Application Support/Avid/Audio/Plug-Ins
$ file Superior\ Drummer\ 3.aaxplugin/Contents/MacOS/Superior\ Drummer\ 3
Superior Drummer 3.aaxplugin/Contents/MacOS/Superior Drummer 3: Mach-O 64-bit bundle x86_64

Showing that Superior Drummer 3 is a 64-bit Intel (aka x86_64) only plugin. (Shudder, where would we have been if AMD had not invented x86_64 and helped save Intel's ass). And the matching AU plugin is...

$ cd /Library/Audio/Plug-Ins/Components
$ file Superior\ Drummer\ 3.component/Contents/MacOS/Superior\ Drummer\ 3
Superior Drummer 3.component/Contents/MacOS/Superior Drummer 3: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64]
Superior Drummer 3.component/Contents/MacOS/Superior Drummer 3 (for architecture x86_64): Mach-O 64-bit bundle x86_64
Superior Drummer 3.component/Contents/MacOS/Superior Drummer 3 (for architecture arm64): Mach-O 64-bit bundle arm64

Showing the AU version of SD3 is a universal binary supporting 64-bit Intel (x86_64) and Apple native (arm64).

And similarly using the file command, here is the Pro Tools application, today Intel only.

$ file /Applications/Pro\ Tools.app/Contents/MacOS/Pro\ Tools
/Applications/Pro Tools 2022.10.app/Contents/MacOS/Pro Tools: Mach-O 64-bit executable x86_64

And Logic Pro, a universal binary supporting Intel and Apple silicon.

$ file /Applications/Logic Pro X.app/Contents/MacOS/Logic Pro X: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64]
/Applications/Logic Pro X.app/Contents/MacOS/Logic Pro X (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/Logic Pro X.app/Contents/MacOS/Logic Pro X (for architecture arm64): Mach-O 64-bit executable arm64

The new version (currently beta, not in the current released version) of Pete Gate's very useful PT Prefs utility will display what architecture plugins are. Making this easier. See the attached screen shot.

There are only just starting to be some AAX Apple native plugins leaking in the wild (e.g. Melodyne as highlighted in that screen shot). Folks are going to have to upgrade their plugins to get native plugins.

My *expectation* (aka guess) is if you want to run natively on an Apple silicon system you will need all Apple silicon native plugins and a version of Pro Tools that also to support Apple silicon. And that Pro Tools version will not run any Intel plugins when running in Apple silicon mode, for that you'll need to run it through Rosetta (which this beta supposedly will by default) and then you won't run any Apple silicon only plugins (which likely won't exist for a while). Avid could do what Apple did with a different architecture plugins running in a different process (so it can use Rosetta just for the Intel plugins) but that's quite trickier engineering work to get to work well/reliably, requires some serious changes, and Avid are so late to this party that the Intel ecosystem is closer to going away so I'm not sure that adding all that complexity/yet more stability problems would be worth it.

The term "universal binary" might possibly be ambiguous for some of our uses. Since 32-bit executables are ancient history, Apple refer to anything that is x86-64 and arm64 as "universal"... as the beta of PT Prefs also does. That does not clarify 32-bit Intel support, but it's not clear to me if plugin vendors would still support updated plugins with Intel 32-bit and 64-bit and Apple native silicon. It does seem time to cut free and leave any customers wanting Intel 32-bit support to run old plugin versions. I'm not sure if vendors could even build those plugins with three-way support. I hope any plugin vendors still providing AAX-32 support at all spell this out clearly.

Last edited by Darryl Ramm; 12-03-2022 at 02:52 PM.
Reply With Quote