Post

Replies

Boosts

Views

Activity

Logic Pro cannot load v3 audio unit with framework compiled with Swift 6
Sequoia 15.4.1 (24E263) XCode: 16.3 (16E140) Logic Pro: 11.2.1 I’ve been developing a complex audio unit for Mac OS that works perfectly well in its own bespoke host app and is now well into its beta testing stage. It did take some effort to get it to work well in Logic Pro however and all was fine and working well until: The AU part is an empty app extension with a framework containing its code. The framework contains Swift code for the UI and C code for the DSP parts. When the framework is compiled using the Swift 5 compiler the AU will run in Logic with no problems. (I should also mention that AU passes the most strict auval tests). But… when the framework is compiled with Swift 6 Logic Pro cannot load it. Logic displays a message saying the audio unit could not be loaded and to contact the developer. My own host app loads the AU perfectly well with the Swift 6 version, so I know there’s nothing wrong with the audio unit. I cannot find any differences in any of the built output files except, of course, the actual binary code in the framework. I’ve worked for hours on this and cannot find a solution other than to build the framework in Swift 5. (I worked hard to get all the async code updated and working with Swift 6! so I feel a little cheated!) What is happening? Is this a bug in Logic? Is this a bug in Swift 6 compiler/linker? I’m at the Duh! hands in the air, tearing out hair stage! ( once again!)
1
0
289
Jul ’25
How to inform Logic Pro that AU view does not have a fixed aspect ratio?
I have an AUv3 that passes all validation and can be loaded into Logic Pro without issue. The UI for the plug in can be any aspect ratio but Logic insists on presenting it in a view with a fixed aspect ratio. That is when resizing, both the height and width are resized. I have never managed to work out what it is I need to do specify to Logic to allow the user to resize width or height independently of each other. Can anyone tell me what I need to specify in the AU code that will inform Logic that the view can be resized from any side of the window/panel?
0
0
45
Apr ’25
v3 AudioUnit, itself an audio unit host cannot see v3 audio units when hosted "out of process"
Back at the start of January this year we filed a bug report that still hasn't been acknowledged. Before we file a code level support ticket, we would love to know if there’s any one else out there who has experienced anything similar. We have read documentation (and again repeatedly) and searched the web over and still found no solution and this issue does look like it could be a bug in the system (or our coding) rather than proper behaviour. The app is a host for a v3 audio unit which itself is a workstation that can host other audio units. The host and audio unit are both working well in all other areas other than this issue. Note: This is not running on catalyst, it is a native Mac OS app. ( not iOS ) The problem is that when an AUv3 is hosted out of process (on the Mac) and then goes to fetch a list of all the other available installed audio units, the list that is returned from the system does not contain any of the other v3 audio units in the system. It only contains v2. We see this issue if we load our AU out of process in our own bespoke host, and also when it loads into Logic Pro which gives no choice but to load out of process. This means that, as it stands at the moment, when we release the app our users will have limited functionality in Logic Pro, and possibly by then, other hosts too. In our own host we can load our hosting AU in-process and then it can find and use all the available units both v2 and v3. So no issue there but sadly when loaded into the only other host that can do anything like this ( Logic Pro at the time of posting) it won't be able to use v3 units which is quite a serious limitation. SUMMARY v3 Audio Unit being hosted out of process. Audio unit fetches the list of available audio units on the system. v3 audio units are not provided in the list. Only v2 are presented. EXPECTED In some ways this seems to be the opposite of the the behaviour we would expect. We would expect to see and host ALL the other units that are installed on the system. “out of process” suggests the safer of the two options and so this looks like it could be related to some kind of sand boxing issue. But sadly we cannot work out a solution hence this report. Is Quin “The Eskimo” still around? Can you help us out here?
3
0
1.5k
Apr ’23
Auv3: Some "out of process" behaviour appears broken on the Mac.
Using latest version of Ventura on an M1 iMac... 2 issues I've noticed when an Auv3 is loaded Out Of Process... 1 - When using tokenByAddingRenderObserver: The provided block is never called if an Auv3 is loaded out of process. 2: When loaded In process an Auv3 audio unit that is itself a host for other audio units can see all the audio units in the system. That is all v2 units and all v3 units. When loaded Out of Procress and the same v3 unit can only find the v2 units when querying. The system appears to be hiding the installed v3 units. This seems like the reverse of what I would expect. When sandboxed (out of process) why are other V3 units hidden from inspection? I've filed bug reports on these ages ago but had no response. I'm particularly interesting in issue #2 above as it makes a big difference when our AU host unit is running in Logic which only allows loading out of process. When loading into our own host app we can load the au in-process and it works nicely, able to host any other unit installed on the system.
0
0
912
Mar ’23
AUParameterNode defaultValue ??
We're seeing the following when running auvaltool It seems AUParameterNode cannot be constructed with a default value and has no option to set default values via property or method so what does this mean? .... Does it mean we ALSO have to iterate all the parameters using the old fashioned long winded toolbox calls ? Or does it mean nothing at all? The "Will fail in future auval version" is worrying! Values: Minimum = 5.000000, Default = 0.000000, Maximum = 300.000000 Flags: Expert Mode, Readable,  WARNING: use -strict_DefP flag * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Parameter's Published defaultvalue does not fall with [min, max] range  * * This will fail using -strict option. Will fail in future auval version  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *   -parameter PASS
2
0
1.8k
May ’22
AUv3 running "in-process" resolves different URLS to required directories depending on which Host is hosting the AU
This seems to be a sandboxing issue but the solution is not so obvious ...  Our sandboxed Audio unit extension requires a permanent folder in which to store a database which can be used by all instances of the AU. Where can we store the database in a directory so that the AU can find it regardless of which host app it's running in ? The AU supports loading in-process. The problem we have is that when the AU is running in-process in a sandboxed host app URLs to the usual directories ( ~documents, shared, app support etc ) all resolve to the sandbox container.   But when the AU is hosted in a non-sandboxed host  ( ie. Logic Pro )  the URLs resolve to the actual user folder.  (~/users/xxx/documents etc  ) How can the AU automatically obtain a URL that will always resolve to the same place, will be permanent, wont be hidden from the user AND still remain “legal” for distributing in the App Store?   …   thanks!
1
0
1.6k
May ’22