COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 09-11-2017, 09:59 AM   #1
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,152
Default 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!
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 09-11-2017, 10:28 AM   #2
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 652
Default

Thanks Oli. I was planning looking at this though I know very little about how AU works in IPlug.
__________________
Website | Facebook Page | IPlug-Youlean
Youlean is offline   Reply With Quote
Old 09-11-2017, 11:54 AM   #3
stw
Human being with feelings
 
stw's Avatar
 
Join Date: Apr 2012
Posts: 250
Default

Thanks for taking care, Oli!
stw is offline   Reply With Quote
Old 09-11-2017, 12:44 PM   #4
gstuff
Human being with feelings
 
Join Date: Feb 2014
Posts: 60
Default

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.
gstuff is offline   Reply With Quote
Old 09-19-2017, 10:26 AM   #5
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,152
Default

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
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)

Last edited by olilarkin; 09-19-2017 at 11:02 AM.
olilarkin is offline   Reply With Quote
Old 09-19-2017, 01:29 PM   #6
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 652
Default

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...
__________________
Website | Facebook Page | IPlug-Youlean
Youlean is offline   Reply With Quote
Old 09-19-2017, 01:32 PM   #7
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 652
Default

BTW, I am really happy that you are still working on WDL. Thanks for that!
__________________
Website | Facebook Page | IPlug-Youlean
Youlean is offline   Reply With Quote
Old 10-05-2017, 06:49 AM   #8
Mimo
Human being with feelings
 
Join Date: Apr 2015
Posts: 63
Default Silly question

Once the code fixes have been added, is it possible to compile from El Capitan without having to install High Sierra?
Mimo is offline   Reply With Quote
Old 10-05-2017, 07:10 AM   #9
Andi!
Human being with feelings
 
Andi!'s Avatar
 
Join Date: Nov 2015
Location: Germany
Posts: 79
Default

Debugging my problem in Reaper (when I add the FX) has revealed that it seems that the memory pointer that is coming to the Open/Construct methods of the IPlugAUFactory is not valid/big enough. It's the pointer mInstanceStorage, that will be set. For me the following new coding in MakePlug seems to be a problem when instantiating the object:

Code:
-    return new PLUG_CLASS_NAME(instanceInfo);
+    
+    if(memory)
+      return new(memory) PLUG_CLASS_NAME(instanceInfo);
+    else
+      return new PLUG_CLASS_NAME(instanceInfo);
Andi! is offline   Reply With Quote
Old 10-05-2017, 08:09 AM   #10
Andi!
Human being with feelings
 
Andi!'s Avatar
 
Join Date: Nov 2015
Location: Germany
Posts: 79
Default

Obviously the class name IPlugAU has to be replaced by PLUG_CLASS_NAME to heal the memory leak. Oli, could you please confirm and change that ?
I tried it on myself and AUval now successfully validates without -comp and with -comp, Logic validates it as well, Reaper doesn't crash anymore.

But I still have 2 problems:
- GarageBand doesn't find the plug-in
- The version of the plug-in is always 1.0.0 !?
Andi! is offline   Reply With Quote
Old 10-05-2017, 08:51 AM   #11
Andi!
Human being with feelings
 
Andi!'s Avatar
 
Join Date: Nov 2015
Location: Germany
Posts: 79
Default

Quote:
Originally Posted by Andi! View Post
But I still have 2 problems:
- GarageBand doesn't find the plug-in
- The version of the plug-in is always 1.0.0 !?
Both problems corrected ! I forgot to adjust the decimal version number in the plist file. It's hard to do this manually. Maybe it's really better to use the python script.
Andi! is offline   Reply With Quote
Old 10-05-2017, 11:29 AM   #12
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,152
Default

Just so nobody rushes to push out updates, at this stage it seems like it's only garage band that has issues on High Sierra with Audio Units that use the component manager. So not quite as urgent a fix as what you might think from seeing this thread...
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 10:29 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.