|
09-11-2017, 09:59 AM
|
#1
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
AudioUnits & High Sierra
it seems that apple are finally removing the Carbon Component Manager from their products in 10.13. This has been warned since the 10.7 sdk which introduced a new entry point for audiounits.
As far as i can tell this means current IPlug plugins won't load in garageband or logic on 10.13 although they show up in auval, making me think other hosts might be ok.
Thanks to some funding, I have implemented AudioComponent support in wdl-ol and will roll it in shortly.
https://developer.apple.com/library/...76/_index.html
https://developer.apple.com/library/...47/_index.html
just a heads up that you may want to delay any updates until you can include this!
|
|
|
09-11-2017, 10:28 AM
|
#2
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Thanks Oli. I was planning looking at this though I know very little about how AU works in IPlug.
|
|
|
09-11-2017, 11:54 AM
|
#3
|
Human being with feelings
Join Date: Apr 2012
Posts: 279
|
Thanks for taking care, Oli!
|
|
|
09-11-2017, 12:44 PM
|
#4
|
Human being with feelings
Join Date: Feb 2014
Posts: 63
|
Just did some tests in the latest 10.13 beta, with a couple of my iPlug AUs.
Neither shows up at all in auval, or Reaper64 or Garageband. That includes a plugin from a couple of years ago using basic WDL-OL and one using my fork of WDL-OL with Carbon completely removed.
Both plugins validate in auval and load in all hosts on 10.12.
Last edited by gstuff; 09-11-2017 at 12:49 PM.
|
|
|
09-19-2017, 10:26 AM
|
#5
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
initial work and modifications to IPlugEffect here:
https://github.com/olilarkin/wdl-ol/tree/audiocomponent
as you will see I have modified
IPlugAU.h
IPlugAU.cpp
IPlugAUViewFactory.mm
IPlug_include_in_plug_src.h
IPlugEffect Example
notable changes:
- there are 2 new elements in resource.h
#define PLUG_FACTORY IPlugEffect_Factory
#define PLUG_COPYRIGHT "Copyright 2017 Acme Inc"
- now I have to use a python script to generate the Info.plist file, because there are elements from resource.h that need to go in the plist file, this is called from a new build phase in the xcode project, but you could also generate the plist files manually
- I also want to make the script edit the .exp file, but I have a small bug that I haven't been able to fix yet, so if you’re manually updating the.exp file you need to add e.g. _IPlugEffect_Factory
- you need to compile against 10.7 SDK+ for audiocomponent entry point support. I recommend 10.9+
any feedback/testing much appreciated (with pre 10.7 SDK etc also)
I don't have a 10.5/10.6 machine so unable to test if it still works there.
had to comment out some stuff here https://github.com/olilarkin/wdl-ol/...ugAU.cpp#L1481
which may cause issues.. need to think more about that
If anyone wants to test compiled .component here it is
https://www.dropbox.com/s/tzr0uqyy7j...onent.zip?dl=0
Last edited by olilarkin; 09-19-2017 at 11:02 AM.
|
|
|
09-19-2017, 01:29 PM
|
#6
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Thanks Oli. I tried your plugin and it works here on SIera. I will check what is going on in code later.
Why we need to have copyright macro now? In previous versions we changed that manually in plist file...
|
|
|
09-19-2017, 01:32 PM
|
#7
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
BTW, I am really happy that you are still working on WDL. Thanks for that!
|
|
|
09-19-2017, 01:57 PM
|
#8
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
to compile with this new "audio component" entry point, we need an entry in the plist file which changes depending on the channel config etc. If you compile against the 10.6 or lower sdk, you end up with a plug-in that doesn't validate if that thing exists in the plist file. So I made a python script to generate the plist file automatically based on the settings in resource.h and config.xcconfig. if you know what you're doing you can still generate these things manually, but I prefer it if beginners have as few hurdles as possible. On the flipside this means the forum is not full up of people saying "oh it doesn't work straightaway it's rubbish". I expect everyone will compile against more recent sdks anyway but I did this just in case.
sometimes it's nice to write something unique in the copyright string so I added that thing but you don't have to, as I said you can do it manually
https://github.com/olilarkin/wdl-ol/...plists.py#L227
|
|
|
09-19-2017, 02:42 PM
|
#9
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by olilarkin
to compile with this new "audio component" entry point, we need an entry in the plist file which changes depending on the channel config etc. If you compile against the 10.6 or lower sdk, you end up with a plug-in that doesn't validate if that thing exists in the plist file. So I made a python script to generate the plist file automatically based on the settings in resource.h and config.xcconfig. if you know what you're doing you can still generate these things manually, but I prefer it if beginners have as few hurdles as possible. On the flipside this means the forum is not full up of people saying "oh it doesn't work straightaway it's rubbish". I expect everyone will compile against more recent sdks anyway but I did this just in case.
sometimes it's nice to write something unique in the copyright string so I added that thing but you don't have to, as I said you can do it manually
https://github.com/olilarkin/wdl-ol/...plists.py#L227
|
OK, thanks!
|
|
|
09-19-2017, 11:18 PM
|
#10
|
Human being with feelings
Join Date: Sep 2009
Posts: 623
|
Thanks for this update. I'll give it a spin. When is 10.13 supposed to go live?
|
|
|
09-20-2017, 08:51 AM
|
#11
|
Human being with feelings
Join Date: Feb 2011
Posts: 171
|
Thank you for your work Oli, I'll try to port a test plugin on the new AU interface and test it on High Sierra (it's finishing installing as I'm typing...)
High Sierra is set to be released on 25th September, but I have a release of a new plugin set for the 22nd so i don't know if i'll be able to test it before that date.
We'll issue a mail to our customer telling them to not upgrade to 10.13 before we update our AU.
Hopefully the tests can be carried over in a couple of days.
Saverio
|
|
|
09-20-2017, 09:44 AM
|
#12
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
if anyone has a 10.5/6 system to try that IPlugEffect on please let me know
|
|
|
09-20-2017, 01:08 PM
|
#13
|
Human being with feelings
Join Date: Feb 2011
Posts: 171
|
Quote:
Originally Posted by olilarkin
if anyone has a 10.5/6 system to try that IPlugEffect on please let me know
|
I have found a 10.6 disk and I'll install it now on my test machine.
In the meanwhile I've tested the component you built (and attached to the previous post) with the High Sierra Beta, it validates with oval and works fine both in Reaper and GarageBand.
I don't have Logic Pro X on this machine but we can be pretty confident that it'll work there too.
Saverio
|
|
|
09-21-2017, 01:11 AM
|
#14
|
Human being with feelings
Join Date: Feb 2011
Posts: 171
|
Ok I've tested the component you built with 10.6 and it doesn't work there.
I've only used auval, but it says that the component cannot be found. I think we need to set the minimum requirement to 10.7 now.
Saverio
|
|
|
09-21-2017, 03:49 AM
|
#15
|
Human being with feelings
Join Date: Feb 2011
Posts: 171
|
*** BREAKING NEWS***
At least with the High Sierra latest beta I've downloaded yesterday, it seems that our old audio units validate with auval and are correctly loaded by Reaper.
It's good to have au v2 support, but there's no rush in releasing updated plugins.
Saverio
|
|
|
09-21-2017, 04:36 AM
|
#16
|
Human being with feelings
Join Date: Feb 2011
Posts: 171
|
Quote:
Originally Posted by HoRNet
*** BREAKING NEWS***
At least with the High Sierra latest beta I've downloaded yesterday, it seems that our old audio units validate with auval and are correctly loaded by Reaper.
It's good to have au v2 support, but there's no rush in releasing updated plugins.
Saverio
|
UPDATE:
In GarageBand at least the old audio units appear in the plugin menu and validate, but if you try to add them to a track it says that you cannot use the plugin, I'm still waiting for the Logic Pro download to finish, i'll test it too and report.
Saverio
|
|
|
09-21-2017, 02:18 PM
|
#17
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
Sigh, I've had other reports of very weird behaviour with the developer preview. If they don't deprecate it in the final release they probably will in the next version, so we are going to need this stuff at some point!
|
|
|
09-21-2017, 02:19 PM
|
#18
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
Like most big companies do I would recommend your uses not to upgrade immediately!
|
|
|
09-21-2017, 04:27 PM
|
#19
|
Human being with feelings
Join Date: Feb 2011
Posts: 171
|
Quote:
Originally Posted by olilarkin
Like most big companies do I would recommend your uses not to upgrade immediately!
|
That's for sure. I was just carrying some tests to see how the current au behave, I have some more DAWs to test and i'll keep doing the tests tomorrow on Logic Pro, Studio One and Digital Performer.
BTW the IPlugEffect you built work flawlessly everywhere, including GB!
|
|
|
09-22-2017, 07:37 AM
|
#20
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
with auval, you can add -comp to open from the component manager entry point. This works fine on my 10.12 machine for the IPlugEffect, it hits a breakpoint there. It also hits the factory breakpoint without -comp. Not sure why this wouldn't also work on 10.6.
|
|
|
09-23-2017, 03:30 AM
|
#21
|
Human being with feelings
Join Date: Feb 2014
Posts: 63
|
With your dropbox build and the -comp flag, I get AU VALIDATION FAILED in 10.13:
Code:
auval -v aufx Ipef Acme -comp
--------------------------------------------------
VERIFYING SPECIAL PROPERTIES:
VERIFYING CUSTOM UI
Cocoa Views Available: 1
IPlugEffect_View
PASS
DEFAULT PRESET: 0, Name: -
HAS FACTORY PRESETS
ID: 0 Name: -
VERIFYING CLASS INFO
ERROR: -3000 IN CALL ClassInfo::GetProperty() call doesn't work when it is supposed to.
TESTING HOST CALLBACKS
PASS
* * FAIL
Last edited by gstuff; 09-23-2017 at 03:51 AM.
|
|
|
09-23-2017, 04:03 AM
|
#22
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
interesting! looks like i might need to do some work on OSStatus IPlugAU::GetState(CFPropertyListRef* ppPropList)
|
|
|
09-24-2017, 12:19 PM
|
#23
|
Human being with feelings
Join Date: Nov 2014
Location: Leiden, the Netherlands
Posts: 36
|
Hi guys,
I just wanted to share some more test results with you. My partner in crime Nathan, installed High Sierra on one of his machines and tested a few of our wdl-ol based plug-ins (see: www.soundspot.audio). He tested them in Logic Pro X 10.0.0 as well as the current 10.3.2. In short:
- Installed a few of our releases.
- They didn't show up in Logic.
- Restarted the machine.
- Plug-ins now show up and work fine.
We will repeat this test for Garage Band and Reaper soon. @Oli: your test AU didn't show up on High Sierra overhere. We'll look into that as well. In any case great you have looked into this so quickly!
Regards, JD and Nathan
|
|
|
09-25-2017, 03:09 AM
|
#24
|
Human being with feelings
Join Date: Aug 2015
Posts: 1
|
Hey,
I can confirm we're seeing full detection (Apple Logic latest with latest beta aka GM Beta) after restart.
Here is the weird behavior I've seen:
- Copy components to our High Sierra machine (17A362a)
- Launch Logic X Pro 10.3.2
Result: some (most) new components aren't being auval'ed or even scanned.
* even manually trying to auval didn't find them (-50) only as -32 (bit).
- Restart machine
- Launch Logic X
Result: plug-ins now being scanned.
However auval & Logic X still showed Resource (rsrc) based components just fine after restart.
The product we've tested is 32 Lives which is a "wrapper" providing seamless communication between 32-bit hosted plug-in to host.
I was able to load nice old 32-bit plug-ins and yet to see true regression in those terms from Sierra 10.12.
(however those are very early testings and again with GM Beta and not final release...)
|
|
|
09-25-2017, 04:20 AM
|
#25
|
Human being with feelings
Join Date: Feb 2014
Posts: 63
|
Can confirm there's some odd audio unit caching behaviour in High Sierra, that's solved by a restart. Had me pulling my hair out till i discovered it.
The AU target's cache clearing script probably needs to be updated - the relevant cache paths being:
~/Library/Preferences/com.apple.audio.InfoHelper.plist
~/Library/Caches/AudioUnitCache
|
|
|
09-25-2017, 06:32 AM
|
#26
|
Human being with feelings
Join Date: Feb 2011
Posts: 171
|
It took a while to test all of our 30+ plugins, but i can can confirm that they all load fine in logic pro x with high sierra and they seems to have no issues.
I'll test them deeply (especially the one that use IPC because you never know with Apple...)
So far the only host that doesn't load any old AU is GarageBand
Saverio
|
|
|
09-25-2017, 09:45 AM
|
#27
|
Human being with feelings
Join Date: Nov 2014
Location: Leiden, the Netherlands
Posts: 36
|
Hi All,
Nathan and I did a few more tests:
- In GarageBand our AU plug-ins get scanned, but an error message occurs when trying to open them: "The Audio Unit 'myPlugin' could not be loaded for your project, and may need to be updated. Contact the developer for an updated version or further assistance."
- However, we repeated the GarageBand test with some well known plug-in brands, and none of their AUs seem to open in GarageBand on High Sierra.
- A freshly installed 64bit Reaper doesn't even open in High Sierra on our machine. Error: "The operation can't be completed because one or more required items can't be found (error code - 43)"
- Ableton Live works fine, including opening and using our AU plug-ins.
Regards, JD and Nathan
|
|
|
09-26-2017, 02:27 AM
|
#28
|
Human being with feelings
Join Date: Feb 2011
Posts: 171
|
Quote:
Originally Posted by JD Young
Hi All,
- A freshly installed 64bit Reaper doesn't even open in High Sierra on our machine. Error: "The operation can't be completed because one or more required items can't be found (error code - 43)"
|
Reaper 5.50c works fine on my High Sierra, and our AU loads fine too in Reaper
Saverio
|
|
|
09-28-2017, 03:49 AM
|
#29
|
Human being with feelings
Join Date: Nov 2015
Location: Germany
Posts: 82
|
Has anybody already updated to the offcial release of High Sierra and tested the old AU compatibility ?
Is it still necessary to reboot after installation of an AU plug-in ?
Is auval, Logic, Ableton & Reaper still working ?
Is GarageBand still unable to load the old AUs ?
|
|
|
09-28-2017, 06:00 AM
|
#30
|
Human being with feelings
Join Date: Sep 2009
Location: France
Posts: 18
|
Quote:
Originally Posted by HoRNet
Reaper 5.50c works fine on my High Sierra, and our AU loads fine too in Reaper
Saverio
|
Not using WDL here, but Reaper seems the most forgiving of AU hosts out there, so it's probably best not to rely on it to test for full compatibility.
You really need to test with auval to be sure, also that's what Logic uses.
With High Sierra you should test both with and without the '-comp' flag, which tells auval to look for the new 'component' entry point.
|
|
|
09-28-2017, 11:14 AM
|
#31
|
Human being with feelings
Join Date: Feb 2014
Posts: 63
|
The weird thing with testing in auval with the -comp flag, is that some plugins (including the one Oli posted) fail, yet still load in Garageband - which means Garageband is finding the component while auval isn't.
Reaper_64 v5.32 loads the older Carbon entry point AUs and new component ones, while Garageband only supports the new.
OSX 10.13 (17A365)
Garageband 10.2 (4769.13)
AU Validation Tool 1.6.1a1 (2013!, comes with 10.13)
Code:
auval -v aufx Ipef Acme -comp
AU Validation Tool
Version: 1.6.1a1
Copyright 2003-2013, Apple Inc. All Rights Reserved.
Specify -h (-help) for command options
--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'Ipef' - 'Acme'
** As Component **
--------------------------------------------------
Manufacturer String: AcmeInc
AudioUnit Name: IPlugEffect
Component Version: 1.0.0 (0x10000)
* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
FATAL ERROR: didn't find the component
Last edited by gstuff; 09-28-2017 at 11:23 AM.
|
|
|
09-28-2017, 04:24 PM
|
#32
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
I really wonder if someone is forgetting to update the version number with auval
|
|
|
09-29-2017, 12:36 AM
|
#33
|
Human being with feelings
Join Date: Mar 2010
Posts: 42
|
Quote:
Originally Posted by JD Young
Hi All,
Nathan and I did a few more tests:
- In GarageBand our AU plug-ins get scanned, but an error message occurs when trying to open them: "The Audio Unit 'myPlugin' could not be loaded for your project, and may need to be updated. Contact the developer for an updated version or further assistance."
- However, we repeated the GarageBand test with some well known plug-in brands, and none of their AUs seem to open in GarageBand on High Sierra.
|
I'm experiencing the same thing, both with my own plugins and with plugins from other manufacturers (Eventide, Exponential Audio, SoundToys). All of these work fine in Logic Pro X and Live, but generate the error message in GarageBand. Are there any 3rd party Audio Units that are known to work in GarageBand / High Sierra?
EDIT: I should note that all of my plugins are built with the OSX 10.8 SDK, with 10.6 as the target. They all have the proper Audio Component stuff in the plist, so I don't think this is the issue here.
Sean Costello
Last edited by valhalladsp; 09-29-2017 at 01:01 AM.
|
|
|
09-29-2017, 09:00 AM
|
#34
|
Human being with feelings
Join Date: Sep 2009
Location: France
Posts: 18
|
It seems GarageBand doesn't use auval. My plugin logs the host and it doesn't report being scanned by auval under GB, while it does under Logic.
The strange thing is that my plugin validates fine in Sierra both with and without '-comp', while it fails under High Sierra with '-comp'.
I guess AU relies on some other stuff built into the OS (the 'Component Manager' I think), but I could not find anything related to a change regarding this matter in the High Sierra release notes.
There's only this doc I could find pertaining to the issue https://developer.apple.com/library/...37/_index.html but it's not of much help.
|
|
|
09-30-2017, 03:42 AM
|
#35
|
Human being with feelings
Join Date: Feb 2011
Posts: 171
|
Well the plugin that oli built loads in garage band so looking at what it does may help understanding the issue
Saverio
|
|
|
10-05-2017, 01:42 AM
|
#36
|
Human being with feelings
Join Date: Nov 2015
Location: Germany
Posts: 82
|
I've auval tested Olis uploaded component on my older OS 10.11.6 machine. I installed the component, cleared the AU cache and rebooted my machine, here are the results.
auval -strict -de -v aufx Ipef Acme
-> everything ok
auval -strict -de -v aufx Ipef Acme -comp
-> still shows warnings about
2017-10-05 10:36:15.161 auvaltool[701:5404] 10:36:15.160 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.
and
WARNING: AU implements MusicDeviceSendMIDI but is of type 'aufx' (it should be 'aumf')
WARNING: AU implements MusicDeviceSendMIDI but returns false from AudioComponentInstanceCanDo
both with -32 give
ERROR: Cannot get Component's Name strings
ERROR: Error from retrieving Component Version: -50
* * FAIL
--------------------------------------------------
TESTING OPEN TIMES:
FATAL ERROR: didn't find the component
So, first question: is this a 64 bit and Cocoa only build ?
And why I'm still getting the warnings with the -comp flag ? Maybe I didn't clear the cache correctly...
|
|
|
10-05-2017, 03:53 AM
|
#37
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
So, first question: is this a 64 bit and Cocoa only build ?
yes. sorry should have said
And why I'm still getting the warnings with the -comp flag ? Maybe I didn't clear the cache correctly...
not sure about the MusicDeviceSendMIDI warning, but the other one is because it still has component manager entry point
|
|
|
10-05-2017, 05:36 AM
|
#38
|
Human being with feelings
Join Date: Nov 2015
Location: Germany
Posts: 82
|
Great ! I'm one step away from migrating my projects to your additions in IPlugAU. I have updated IPlugAU.h/IPlugAU.cpp/IPlugAUViewFactory.mm and have manually added the new entries to the plist. When I add the new line (with the underscore) into the exp file I get an error from the linker. Any idea ? From where this function should be exported ?
Undefined symbols for architecture x86_64:
"_MyPlugIn_Factory", referenced from:
-exported_symbol[s_list] command line option
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
|
|
|
10-05-2017, 05:45 AM
|
#39
|
Human being with feelings
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
|
|
|
|
10-05-2017, 06:03 AM
|
#40
|
Human being with feelings
Join Date: Nov 2015
Location: Germany
Posts: 82
|
Quote:
Originally Posted by olilarkin
|
Nope :-) but now I have defined it and it compiles & links fine. After clearing the cache and a reboot I'm getting with auval the following error:
/usr/bin/auval: line 11: 666 Segmentation fault: 11 arch -x86_64 /usr/bin/auvaltool "$@"
what do you think ? With -comp it still works fine... it's the right moment to say that you are really doing an awesome work here for years now and thank you for your quick responses.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 10:15 PM.
|