COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 08-08-2017, 04:29 PM   #1
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: York, UK
Posts: 942
Default CMake

Hi all,

I'm thinking of consolidating various cool stuff from other people's branches of Iplug, and things that I have developed separately that I haven't released yet, into the next version of WDL-OL (although it might be called something different since the scale of changes may break backwards compatibility).

The duplication script in WDL-OL is a fairly neat and convenient way of quickly starting a project, and if you know what you're doing updating isn't so bad. I like the fact that beginners have ready-made projects and layout as part of the download, but having a project generator would be great, and would mean that people can use different IDEs. I've never really been into CMake, but It seems to be more more widely used these days, and particularly powerful with continuous integration.

How do people feel about moving over to CMake? Perhaps I should leave the existing examples folder and duplicate script as an option. Cmake seems a bit daunting for beginners, and I think one of the main appeals of WDL-OL/IPlug Is that plug-in implementation is pretty simple, and IDE Projects are set up well, unlike for example the VST SDK, which often has very outdated examples.

Any thoughts?

oli
__________________
VirtualCZ | pMix | Endless Series | WDL-OL | Linkedin | Patreon
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 08-08-2017, 09:44 PM   #2
pipelineaudio
Mortal
 
pipelineaudio's Avatar
 
Join Date: Jan 2006
Location: Wickenburg, Arizona
Posts: 11,392
Default

Would it help to consider someone like me? Not a programmer by any stretch but someone who can learn and definitely follow directions.

Would CMake make things more possible for me or is it just the updates where things get changed so its no longer compatible with the documentation?

Im going to go look at Cmake, not sure what it is
__________________
REAPER Shirts are Back! - https://shop.spreadshirt.com/pipelineaudio/
pipelineaudio is offline   Reply With Quote
Old 08-09-2017, 04:10 AM   #3
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 419
Default

Quote:
Originally Posted by olilarkin View Post
Hi all,

I'm thinking of consolidating various cool stuff from other people's branches of Iplug, and things that I have developed separately that I haven't released yet, into the next version of WDL-OL (although it might be called something different since the scale of changes may break backwards compatibility).
I think that more logical name would be IPlug since WDL is much more than building plugins.

Quote:
The duplication script in WDL-OL is a fairly neat and convenient way of quickly starting a project, and if you know what you're doing updating isn't so bad. I like the fact that beginners have ready-made projects and layout as part of the download, but having a project generator would be great, and would mean that people can use different IDEs. I've never really been into CMake, but It seems to be more more widely used these days, and particularly powerful with continuous integration.
I hate these scripts. While your clone script works great I couldn't make other mac scripts work...
I have not used CMake but I am not sure if we need it. We could make app that will generate projects with WDL and then we can constantly update and improve it since we know WDL. This shouldn't be that hard, maybe couple days of work. (how hard can it be )

Quote:
How do people feel about moving over to CMake? Perhaps I should leave the existing examples folder and duplicate script as an option. Cmake seems a bit daunting for beginners, and I think one of the main appeals of WDL-OL/IPlug Is that plug-in implementation is pretty simple, and IDE Projects are set up well, unlike for example the VST SDK, which often has very outdated examples.
Indeed, if you want IPlug to compete with JUCE only benefit we can bring to the table if simplicity since JUCE is beating IPlug hard when it comes to features.
__________________
Website: https://youlean.co, Facebook: https://www.facebook.com/itsYoulean/
Youlean is offline   Reply With Quote
Old 08-09-2017, 08:37 AM   #4
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: York, UK
Posts: 942
Default

not personally trying to compete with JUCE (in fact I just bought JUCE :-) and I've been using it for many projects). It's nice to have a free alternative, and there's quite a bit of code sitting on my hard drive and on other peoples IPlug forks that could be consolidated
__________________
VirtualCZ | pMix | Endless Series | WDL-OL | Linkedin | Patreon
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 08-09-2017, 08:41 AM   #5
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: York, UK
Posts: 942
Default

ps do you have a more complete cairo example? e.g. with moving controls etc?
__________________
VirtualCZ | pMix | Endless Series | WDL-OL | Linkedin | Patreon
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 08-09-2017, 09:02 AM   #6
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 419
Default

Quote:
Originally Posted by olilarkin View Post
hat could be consolidated
That would be great. We all should share our forks. In that way we could all benefit from it.
__________________
Website: https://youlean.co, Facebook: https://www.facebook.com/itsYoulean/
Youlean is offline   Reply With Quote
Old 08-09-2017, 09:05 AM   #7
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 419
Default

Quote:
Originally Posted by olilarkin View Post
ps do you have a more complete cairo example? e.g. with moving controls etc?
I could make more complete example. Tell me what you would like me to add?
__________________
Website: https://youlean.co, Facebook: https://www.facebook.com/itsYoulean/
Youlean is offline   Reply With Quote
Old 08-09-2017, 09:51 AM   #8
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: York, UK
Posts: 942
Default

just something with a few controls, sliders, displays, knobs would be cool.
__________________
VirtualCZ | pMix | Endless Series | WDL-OL | Linkedin | Patreon
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 08-09-2017, 09:52 AM   #9
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 419
Default

Quote:
Originally Posted by olilarkin View Post
just something with a few controls, sliders, displays, knobs would be cool.
OK, I will do that until end of the month.
__________________
Website: https://youlean.co, Facebook: https://www.facebook.com/itsYoulean/
Youlean is offline   Reply With Quote
Old 08-09-2017, 10:38 AM   #10
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: Holland
Posts: 2,797
Default

I have used CMake a few times, but for me it does little. Then again, I usually type my own makefiles, which for my own IPlug version seem to work on every VS version so far, with little to no changes.

When using WDL-OL I just used the existing VS projects, which mostly worked fine (I believe I had to convert them to a newer VS version at some point, but no real problems there). So I'd say there is no real need for CMake.
Tale is offline   Reply With Quote
Old 08-11-2017, 06:46 AM   #11
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: York, UK
Posts: 942
Default

Youlean. I tried your latest beta of loudness meter. Very impressive! I have to say the text rendering in Cairo is vastly better on windows lo dpi than juce. Noticed resizing has some issues in ableton 9 on OS X
__________________
VirtualCZ | pMix | Endless Series | WDL-OL | Linkedin | Patreon
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)

Last edited by olilarkin; 08-11-2017 at 07:17 AM.
olilarkin is offline   Reply With Quote
Old 08-11-2017, 10:40 AM   #12
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 218
Default

CMake...offhand, I don't know what perils are in store for iLok implementers, but doesn't seem it would be fun to sort out...just a first guess.
earlevel is offline   Reply With Quote
Old 08-11-2017, 10:42 AM   #13
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: York, UK
Posts: 942
Default

sorry I don't understand
__________________
VirtualCZ | pMix | Endless Series | WDL-OL | Linkedin | Patreon
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 08-11-2017, 12:54 PM   #14
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 218
Default

Quote:
Originally Posted by olilarkin View Post
sorry I don't understand
Have you implemented PACE Fusion for iLok?
earlevel is offline   Reply With Quote
Old 08-11-2017, 01:14 PM   #15
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 6,557
Default

Quote:
Originally Posted by earlevel View Post
CMake...offhand, I don't know what perils are in store for iLok implementers, but doesn't seem it would be fun to sort out...just a first guess.
CMake is just a solution/project file generator, though. So it should be possible to later edit the Visual Studio and XCode projects to deal with whatever BS iLok requires. That wouldn't be any different compared to how to WDL/IPlug currently works, right?
__________________
For info on SWS Reaper extension plugin (including Xenakios' previous extension/actions) :
http://www.sws-extension.org/
https://github.com/Jeff0S/sws
--
Xenakios blog (about HourGlass and λ) :
http://xenakios.wordpress.com/
Xenakios is online now   Reply With Quote
Old 08-12-2017, 09:14 AM   #16
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 419
Default

Quote:
Originally Posted by olilarkin View Post
Youlean. I tried your latest beta of loudness meter. Very impressive! I have to say the text rendering in Cairo is vastly better on windows lo dpi than juce. Noticed resizing has some issues in ableton 9 on OS X
Thanks! Text drawing is handled with freetype back end. Cairo text draw is as bad as others on windows.

Indeed there are some problem with resizing on mac in some specific hosts and I don't know how to fix it since I am really not that familiar with objective c, but I hope I will figure it out soon.
__________________
Website: https://youlean.co, Facebook: https://www.facebook.com/itsYoulean/
Youlean is offline   Reply With Quote
Old 08-12-2017, 10:31 AM   #17
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 218
Default

Quote:
Originally Posted by Xenakios View Post
CMake is just a solution/project file generator, though. So it should be possible to later edit the Visual Studio and XCode projects to deal with whatever BS iLok requires. That wouldn't be any different compared to how to WDL/IPlug currently works, right?
Well, I was guessing that Oli was talking about using it as such (solution/project generator), from his comments about the Python script, but when I looked at CMake, it also seems capable of more. It looked like it had the potential of making things difficult, so I was stating my concern regarding PACE Fusion.

For instance, I look at the docs..."CMake is a cross-platform, open-source make system. CMake is used to control the software compilation process using simple platform-independent and compiler-independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice." If you stop at "CMake generates...workspaces", just use that capability, that's one thing, but the other stuff would definitely be pertinent to Fusion. Not that you couldn't do it, just that a) it requires a good understanding of the Fusion system, because you'll be running outside the PACE documentation and tutorial examples, which is already tough enough, and b) PACE changes things at will.
earlevel is offline   Reply With Quote
Old 08-12-2017, 10:43 AM   #18
MSK
Human being with feelings
 
Join Date: Jan 2017
Posts: 33
Default

Quote:
Originally Posted by Youlean View Post
Thanks! Text drawing is handled with freetype back end. Cairo text draw is as bad as others on windows.

Indeed there are some problem with resizing on mac in some specific hosts and I don't know how to fix it since I am really not that familiar with objective c, but I hope I will figure it out soon.
Youlean, would you be willing to elaborate on how you're displaying text in your branch? I've just been using cairo_show_text and I've noticed that the spacing between characters looks a bit off. This is on OS X 10.7 - 10.12.

MSK
MSK is offline   Reply With Quote
Old 08-12-2017, 11:20 AM   #19
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 419
Default

Quote:
Originally Posted by MSK View Post
Youlean, would you be willing to elaborate on how you're displaying text in your branch? I've just been using cairo_show_text and I've noticed that the spacing between characters looks a bit off. This is on OS X 10.7 - 10.12.

MSK
Take a look at ycairo_text class.
__________________
Website: https://youlean.co, Facebook: https://www.facebook.com/itsYoulean/
Youlean is offline   Reply With Quote
Old 08-12-2017, 12:17 PM   #20
MSK
Human being with feelings
 
Join Date: Jan 2017
Posts: 33
Default

Quote:
Originally Posted by Youlean View Post
Take a look at ycairo_text class.
Awesome thanks. Looking at the class, only thing that isn't clear to me is how to set the font, what would the member calls look like for that?

MSK
MSK is offline   Reply With Quote
Old 08-12-2017, 12:32 PM   #21
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 419
Default

Quote:
Originally Posted by MSK View Post
Awesome thanks. Looking at the class, only thing that isn't clear to me is how to set the font, what would the member calls look like for that?

MSK
I would suggest you to use create_global_font_from_path from ycairo base and to put it in the plugin constructor, then you will be able to use ycairo text with that font in any ycairo text instance. You can also use similar method in ycairo text. You can also use font from memory but you will need to declare font in resource.h and .rc for windows.

Btw, I am on vacation so I probably won't be able to reply you anymore until I get back.
__________________
Website: https://youlean.co, Facebook: https://www.facebook.com/itsYoulean/
Youlean is offline   Reply With Quote
Old 08-12-2017, 02:21 PM   #22
MSK
Human being with feelings
 
Join Date: Jan 2017
Posts: 33
Default

Quote:
Originally Posted by Youlean View Post
I would suggest you to use create_global_font_from_path from ycairo base and to put it in the plugin constructor, then you will be able to use ycairo text with that font in any ycairo text instance. You can also use similar method in ycairo text. You can also use font from memory but you will need to declare font in resource.h and .rc for windows.

Btw, I am on vacation so I probably won't be able to reply you anymore until I get back.
Great, I'll give it a go. Thanks Youlean!

MSK
MSK is offline   Reply With Quote
Old 08-13-2017, 07:29 AM   #23
OrkDadin
Human being with feelings
 
OrkDadin's Avatar
 
Join Date: Apr 2008
Location: Germany
Posts: 81
Default

I haven't used wdl-ol at all, yet, so I cannot comment on the current system. But in general I like CMake and think that it's becoming more and more a standard of how projects are build. So there is a +1 from my side!
__________________
OrkDadin 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 08:40 PM.


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