COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 03-26-2017, 03:27 AM   #1
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default AAX building and resource.h editing

Hi,

I started to build AAX version and i have some questions.

1.How about deployment target,language and SDK version?

2.How should i edit resource.h for AAX?

There is Pro Tools stuff.

// ProTools stuff

#if (defined(AAX_API) || defined(RTAS_API)) && !defined(_PIDS_)
#define _PIDS_
const int PLUG_TYPE_IDS[2] = {'EFN1', 'EFN2'};
const int PLUG_TYPE_IDS_AS[2] = {'EFA1', 'EFA2'}; // AudioSuite
#endif

What should i do with this one?

For example my plugin's name is FILTEQ.And plugin's unique id is "Fil1".How should i change pro tools stuff according to this info?

Thanks.
Tunca is offline   Reply With Quote
Old 03-26-2017, 03:46 AM   #2
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

I'm using earlevel's branch.

C Language Dialect = c11
C++ Language Dialect = C++11
C++ Standart Library = libc++
SDK = 10.7
Deployment Target = 10.7

I'm getting some semantic issues.
Tunca is offline   Reply With Quote
Old 03-26-2017, 11:17 AM   #3
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

Quote:
Originally Posted by Tunca View Post
1.How about deployment target,language and SDK version?
Not sure what you're asking, but I think the answer is mostly what you want to target. Except I'm using C+11 features, so the language version needs to be that (as you point out in your next message). I'm targeting 10.8 and later on Mac, I think Win 7 on that side, and 64-bit only (no problem building 32-bit, but that wasn't the requirement).

2.How should i edit resource.h for AAX?

There is Pro Tools stuff.

// ProTools stuff

#if (defined(AAX_API) || defined(RTAS_API)) && !defined(_PIDS_)
#define _PIDS_
const int PLUG_TYPE_IDS[2] = {'EFN1', 'EFN2'};
const int PLUG_TYPE_IDS_AS[2] = {'EFA1', 'EFA2'}; // AudioSuite
#endif[/QUOTE]
The AudioSuite IDs aren't used, apparently. Its use is commented out (not by me). Maybe that's because it doesn't need separate IDs in the native implementation? I enabled AudioSuite, it works in my plugin the last I checked, testers didn't complain.

The plugin type IDs are used in things like the chunk. My plugin is a native version of my old TDM plugin, so I needed to keep the IDs the same. So, in the case of my mono-mono, mono-stereo, stereo-stereo plugins:

Code:
 const int PLUG_TYPE_IDS[] = {'11EF', '12EF', '22EF'};
...
#define PLUG_MFR_PT "Mega Corp"       // when you sort effects by manufacturer, this name is used
#define PLUG_NAME_PT "Mega Delay\nMegD"    // Full and shortened versions of plugin name
#define PLUG_TYPE_PT "Delay"
#define PLUG_DOES_AUDIOSUITE 1

#define PLUG_CHANNEL_IO "1-1 1-2 2-2"
The example resource indicates that the manufacturer name can have shortened versions, and the IPlug code seems to try to implement that, but it's wrong, as I pointed out in the forum before. There is precisely one manufacturer name, though there can be many plugin name strings (progressively shorter names, separated by newlines, to accommodate control surfaces).
earlevel is offline   Reply With Quote
Old 03-26-2017, 11:23 AM   #4
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

Quote:
Originally Posted by Tunca View Post
I'm using earlevel's branch.

C Language Dialect = c11
C++ Language Dialect = C++11
C++ Standart Library = libc++
SDK = 10.7
Deployment Target = 10.7

I'm getting some semantic issues.
Could you elaborate on "semantic issues"?

OK, regarding your previous question about SDK and deployment target (OS version): People often have this wrong. The SDK is usually the latest SDK. That's why Xcode doesn't ship with a pile of older SDKs, just the latest. The idea is that you then choose a deployment target. You can have an SDK of 10.11 but a deployment target of 10.7. Sometimes there are issues that make it easier to drag in an old SDK, but that's not the general idea. People seem to think that if you're targeting 10.8, you must go find a 10.8 SDK.
earlevel is offline   Reply With Quote
Old 03-26-2017, 11:25 AM   #5
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Thanks earlevel!

Now i understand PT stuff in resource.h but still can't build.

Here is my Build Settings.I guess my setting are ok.

http://i.hizliresim.com/lddmZr.png
Tunca is offline   Reply With Quote
Old 03-26-2017, 11:28 AM   #6
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Quote:
Originally Posted by earlevel View Post
Could you elaborate on "semantic issues"?

OK, regarding your previous question about SDK and deployment target (OS version): People often have this wrong. The SDK is usually the latest SDK. That's why Xcode doesn't ship with a pile of older SDKs, just the latest. The idea is that you then choose a deployment target. You can have an SDK of 10.11 but a deployment target of 10.7. Sometimes there are issues that make it easier to drag in an old SDK, but that's not the general idea. People seem to think that if you're targeting 10.8, you must go find a 10.8 SDK.
Now i setting deployment target and sdk but now i have linker error.

http://i.hizliresim.com/4PPX97.png

Last edited by Tunca; 03-26-2017 at 11:33 AM.
Tunca is offline   Reply With Quote
Old 03-26-2017, 11:25 PM   #7
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

Quote:
Originally Posted by Tunca View Post
Here is my Build Settings.I guess my setting are ok.
That looks fine.
earlevel is offline   Reply With Quote
Old 03-26-2017, 11:51 PM   #8
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

Quote:
Originally Posted by Tunca View Post
Now i setting deployment target and sdk but now i have linker error.
Not enough info, but the first line, "MakePlug()..."—are you including IPlug_include_in_plug_src.h in your plugin source file? That's where MakePlug comes from.

Can you compiled your plugin as a standalone, or other format?
earlevel is offline   Reply With Quote
Old 03-27-2017, 12:56 AM   #9
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Quote:
Originally Posted by earlevel View Post
Not enough info, but the first line, "MakePlug()..."—are you including IPlug_include_in_plug_src.h in your plugin source file? That's where MakePlug comes from.

Can you compiled your plugin as a standalone, or other format?
IPlug_include_in_plug_src.h in source file.Everything is ok.Yes,i can compile other formats.But when i try to compile AAX,getting linker error.

Also i can't compile IPlugEffect in your branch,too.Getting same linker errors.

Last edited by Tunca; 03-27-2017 at 01:05 AM.
Tunca is offline   Reply With Quote
Old 03-27-2017, 07:01 AM   #10
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Now getting only 9 linker error.There were 49 errors...

http://i.hizliresim.com/m3kdgY.png

Last edited by Tunca; 03-27-2017 at 07:10 AM.
Tunca is offline   Reply With Quote
Old 03-27-2017, 09:22 AM   #11
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

Quote:
Originally Posted by Tunca View Post
Also i can't compile IPlugEffect in your branch,too.Getting same linker errors.
There is no attempt in my repository to make it a stand-alone release. It's a branch that is home to my changes. I issued pull requests to wdl-ol for most of it, at least in the beginning, until I figured out that it wasn't being actively maintained. I started development with the assumption that AAX was implemented, but it ended up that it had holes. I almost certainly would have gone with JUCE if I'd known. Sorry, you're mostly on your own.
earlevel is offline   Reply With Quote
Old 03-27-2017, 10:39 AM   #12
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Quote:
Originally Posted by earlevel View Post
There is no attempt in my repository to make it a stand-alone release. It's a branch that is home to my changes. I issued pull requests to wdl-ol for most of it, at least in the beginning, until I figured out that it wasn't being actively maintained. I started development with the assumption that AAX was implemented, but it ended up that it had holes. I almost certainly would have gone with JUCE if I'd known. Sorry, you're mostly on your own.
Thanks man.I will figure it out...
Tunca is offline   Reply With Quote
Old 03-27-2017, 10:47 AM   #13
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Hey guys!

I really need help.Can you tell your way?

Thanks.
Tunca is offline   Reply With Quote
Old 03-27-2017, 11:08 AM   #14
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

I think that you need to enable c++11 in your main settings.
Youlean is offline   Reply With Quote
Old 03-27-2017, 11:15 AM   #15
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

http://forum.cockos.com/showpost.php...4&postcount=18
Also use libc++
Youlean is offline   Reply With Quote
Old 03-27-2017, 11:33 AM   #16
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Quote:
Originally Posted by Youlean View Post
Thanks for advice.

I tried your branch but even i can't compile vst or au with it.Looks like complicated.I had to add all cario files' paths.

But i will try it again.

EDIT:

I just tried your version.Asking me "ycairo.h" and some others,too.I'm writing path but now asking me "#include FT_FREETYPE_H" i can't find it...

Last edited by Tunca; 03-27-2017 at 11:43 AM.
Tunca is offline   Reply With Quote
Old 03-27-2017, 12:09 PM   #17
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

Quote:
Originally Posted by Tunca View Post
Now getting only 9 linker error.There were 49 errors...
These kind of errors are usually from linking code compiled with libc++ and libstdc++. Make sure you link everything with libc++.

You're down to basic common linking errors, not particularly wdl/IPlug related. You're better off in most cases to just do a web search for hints, where a huge number of people have dealt with linking errors like these.

Except the MakePlug error. Again, this pretty much boils down to including IPlug_include_in_plug_src.h in your plugin source file (your plugin's main .cpp file, where your override to Plug is), as far as I can see.
earlevel is offline   Reply With Quote
Old 03-27-2017, 12:13 PM   #18
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Now i can build AAX.

C Language Dialect = C99

C++ Language Dialect = C++11

C++ Standard Library = libstdc++ (GNU C++ standard library)

Base SDK = 10.12

Deployment Target = 10.7

I can't try cause my ilok broken and waiting new one.But i sent to my friend to try PT Dev version.I hope it will work...

Also everything is ok with my settings?
Tunca is offline   Reply With Quote
Old 03-27-2017, 01:13 PM   #19
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

I think it will be better to use libc++ instead libstdc++. Search why...
Youlean is offline   Reply With Quote
Old 03-27-2017, 01:25 PM   #20
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Quote:
Originally Posted by Youlean View Post
I think it will be better to use libc++ instead libstdc++. Search why...
I searched "libc++ vs libstdc++" and everyone prefers "libc++".

I trying to compile with libc++ but getting linker errors.Can't solve this...
Tunca is offline   Reply With Quote
Old 03-27-2017, 01:34 PM   #21
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Changed CLANG_CXX_LANGUAGE_STANDARD = c++0x to CLANG_CXX_LANGUAGE_STANDARD = c++11.

Set everything to compiler default.And build successful.

Is this better then selecting libstdc++?
Tunca is offline   Reply With Quote
Old 03-27-2017, 02:32 PM   #22
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

Quote:
Originally Posted by Tunca View Post
Changed CLANG_CXX_LANGUAGE_STANDARD = c++0x to CLANG_CXX_LANGUAGE_STANDARD = c++11.

Set everything to compiler default.And build successful.

Is this better then selecting libstdc++?
c++0X became c++11 when approved (it took a long time, it was expected to be approved in 200X). libc++ is the libstdc++ (gcc) replacement, for LLVM. In other words, libc++ is old, not to be used with LLVM unless some old thing just won't work without it.
earlevel is offline   Reply With Quote
Old 03-28-2017, 06:10 AM   #23
Tunca
Human being with feelings
 
Join Date: Apr 2016
Posts: 264
Default

Now i figured out Mac.

But i have problem about Windows.

I guess,first of all i have to build AAX Library,right?
Tunca 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 06:02 AM.


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