COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 03-12-2017, 11:39 AM   #1
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default IPlug - Youlean

Hi guys, here is the initial release of IPlug-Youlean. Some examples are removed but it will be added later.

This framework adds over WDL-OL:
-GUI resize/rescale
-GUI live edit; This could be easily added to WDL-OL too if someone wants to play with it.
-Cairo graphics support; This will allow you to use LICE + cairo in your plugin with great performance. All libs for MSVC2015 and 10.7+ XCode are included.

This framework will get many update in the future, and some API will likely be changed, but everything will be logged, so don't worry.

API change from WDL-OL:
mRECT to mDrawRECT
GetRECT to GetDrawRECT
LoadBitmap to LoadPointerToBitmap

Try it and enjoy. If you want to port your plugin to mine framework, just clone IPlugExample and the add your sources. That will be the fastest way for doing it...

https://github.com/Youlean/IPlug-Youlean

Last edited by Youlean; 06-14-2017 at 10:29 AM.
Youlean is offline   Reply With Quote
Old 03-12-2017, 12:09 PM   #2
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

great!
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 03-12-2017, 01:37 PM   #3
br_ck1
Human being with feelings
 
Join Date: Dec 2015
Posts: 39
Default

Best wishes with IPlug Youlean, following with much interest...
br_ck1 is offline   Reply With Quote
Old 03-13-2017, 05:06 AM   #4
1eqinfinity
Human being with feelings
 
Join Date: Apr 2014
Posts: 84
Default

awesome, thank you
__________________
soundcloud.com/crimsonbrain
1eqinfinity is offline   Reply With Quote
Old 03-13-2017, 08:51 AM   #5
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Cool, thanks for sharing!
Tale is offline   Reply With Quote
Old 03-13-2017, 10:49 AM   #6
snooks
Banned
 
Join Date: Sep 2015
Posts: 1,650
Default

+1, looking forward to checking out the Cairo integration! Thanks!
snooks is offline   Reply With Quote
Old 03-13-2017, 12:50 PM   #7
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Thanks guys! There are some warnings in visual studio for cairo, but it is nothing to worry about. It will be fixed in the future...
Youlean is offline   Reply With Quote
Old 03-13-2017, 10:52 PM   #8
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Big thanks for this! Will experiment and let you know how it goes :-)
Bobflip is offline   Reply With Quote
Old 03-14-2017, 06:26 AM   #9
snooks
Banned
 
Join Date: Sep 2015
Posts: 1,650
Default

Are there supposed to be pre-built Cairo libraries included? There aren't any in the master branch and no project files to build them.
snooks is offline   Reply With Quote
Old 03-14-2017, 06:41 AM   #10
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by snooks View Post
Are there supposed to be pre-built Cairo libraries included? There aren't any in the master branch and no project files to build them.
Sorry, it seams that windows libs are missing. I will reupload it tomorrow...
Youlean is offline   Reply With Quote
Old 03-14-2017, 07:03 AM   #11
snooks
Banned
 
Join Date: Sep 2015
Posts: 1,650
Default

Cool, good man!
snooks is offline   Reply With Quote
Old 03-14-2017, 04:05 PM   #12
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Ok, so I used the Cairo Windows libs in the 19th post here - http://forum.cockos.com/showthread.php?t=178581, and with those I got the IPlugEffect, IPlugCairoEffect and IPlugLiveEdit example projects compiling and running in Windows 10 with VC2015 absolutely fine - LiveEdit looks really useful btw!. The IPlugEffectGUIResize project compiles without issue, but the app isn't resizing, it currently just has an adjustable window size while the knob retains its size and place.

XCode is still bringing issues. Tried compiling the examples with 8.1, but it gives the error "linker command failed with exit code 1 (use -v to see invocation)" and "ld: library not found for -lpng16". Was using the 10.11 SDK, but tried some others and didn't get it working with those either.

Getting my existing project to compile in Windows was also problematic.

The duplicate.py script isn't renaming some of the files if you try to duplicate a project other than IPlugEffect - I tried duplicating the IPlugEffectCairoGraphics project, but it left a few of the files with the previous project name instead of the new one.


To get my existing project to compile, I went along with adding my files to a duplicated IPlugEffect and made the following changes to my code:

changed all "#include "Youlean_Cairo.h" to "#include "ycairo.h"
changed all "youlean_cairo_base" to "ycairo_base"
changed all "ycairo_prepare_draw()" to ycairo_prepare_draw(mDrawRECT)""
Went into iautogui.h and replaced all occurences of mRECT with mDrawRECT
Removed ycairo = new ycairo_base();
changed "ycairo->attach_background(pGraphics, ycairo, IColor(255, 50, 50, 50))" to "ycairo->attach_background(pGraphics, IColor(255, 50, 50, 50))"

At this point it compiled, but on running it crashed with an Assertion Failed saying "Expression: imgResourceNotFound". I'd added the ID and FN values into resource.h and copied the png to the resources/img folder, but if I try to add the png to the project, it would say 'The operation could not be completed'
Bobflip is offline   Reply With Quote
Old 03-14-2017, 04:25 PM   #13
snooks
Banned
 
Join Date: Sep 2015
Posts: 1,650
Default

Thanks both of you for the links to the libs. That's it working now.

Re the duplicate.py, Youlean wrote Youlean_W-DLicate.exe because of issues with it. Python is a PITA with version compatibility anyway. Here's the link to the thread...

http://forum.cockos.com/showthread.php?t=169429
snooks is offline   Reply With Quote
Old 03-14-2017, 04:34 PM   #14
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Ahhh, I didn't know about that, thanks for the heads up! I'll have a go on that this evening and report back.
Bobflip is offline   Reply With Quote
Old 03-14-2017, 06:18 PM   #15
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Ok, yeah that's definitely kicked things off! Thanks to you and Youlean :-)

I've solved the crashing I was getting while trying to load in my custom images, and it makes perfect sense now I found the solution. Although I had changed LoadIBitmap to LoadPointerToBitmap, I had to change:

Code:
IBitmap knob = pGraphics->LoadPointerToBitmap(KNOB_ID, KNOB_FN, kKnobFrames);
pGraphics->AttachControl(new IKnobMultiControl(this, kGainX, kGainY, kGain, &knob));
to:
Code:
IBitmap* knob = pGraphics->LoadPointerToBitmap(KNOB_ID, KNOB_FN, kKnobFrames);
pGraphics->AttachControl(new IKnobMultiControl(this, kGainX, kGainY, kGain, knob));
Basically just removing the ampersand from in front of 'knob' and adding an asterisk after 'IBitmap'. Hope this information ends up being useful to people out there!
Bobflip is offline   Reply With Quote
Old 03-15-2017, 09:30 AM   #16
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

OK. All libs are uploaded now. IPlugEffectGUIResize will be updated with more features later...
Youlean is offline   Reply With Quote
Old 03-15-2017, 10:56 AM   #17
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Do you have any thoughts on what might be preventing things things from compiling with XCode?
Bobflip is offline   Reply With Quote
Old 03-15-2017, 11:48 AM   #18
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by Bobflip View Post
Do you have any thoughts on what might be preventing things things from compiling with XCode?
There shouldn't be a problem. IPlugEffect compiles OK here. Did you tried IPlugEffect?
Youlean is offline   Reply With Quote
Old 03-15-2017, 12:13 PM   #19
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Yeah, went straight for IPlugEffect, figure it's always best to start with that and work up!
Which version of XCode and which SDK did you have selected? I've tried 8.1 on El Capitan and 6.2 on Mavericks and various iterations of SDK combinations but no luck.

I either get a bunch of parse errors with NSObject.h, NSEnumerator etc, or a linker error saying "linker command failed with exit code 1 (use -v to see invocation)" and "ld: library not found for -lpng16"
Bobflip is offline   Reply With Quote
Old 03-15-2017, 12:18 PM   #20
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by Bobflip View Post
Yeah, went straight for IPlugEffect, figure it's always best to start with that and work up!
Which version of XCode and which SDK did you have selected? I've tried 8.1 on El Capitan and 6.2 on Mavericks and various iterations of SDK combinations but no luck.

I either get a bunch of parse errors with NSObject.h, NSEnumerator etc, or a linker error saying "linker command failed with exit code 1 (use -v to see invocation)" and "ld: library not found for -lpng16"
I am using Xcode 8.3 so there might be a problem... 10.11 SDK.

The problem might be in link order. Look at this picture. lpng16 must be above all cairo stuff...

https://drive.google.com/file/d/0B1l...ew?usp=sharing

EDIT: lice.a must be at the lowest place!

Last edited by Youlean; 03-15-2017 at 12:25 PM.
Youlean is offline   Reply With Quote
Old 03-15-2017, 12:25 PM   #21
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

I grabbed the 10.11 SDK and copied into the Developer folder in XCode's Package Contents, but I guess I'd need to upgrade to Sierra to get XCode 8.3 going! I'll reboot into El Capitan now and try out your link order suggestion though.
Bobflip is offline   Reply With Quote
Old 03-15-2017, 02:57 PM   #22
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Ok, this appears to be one of those situation where it doesn't work until you ask, and then it's absolutely fine!

Not sure what I was doing wrong before... I'd fiddled around a bit so had maybe changed another setting by accident, or was only changing settings on one project instead of all of them. Managed to solve it by redownloading your branch from GitHub and starting afresh. It compiled first time.

Booted back into Mavericks to test XCode 6.2 with the same project, but that doesn't seem to work. No matter though... Now I need to try and get my files into the XCode project and compiling!

Thanks again for your work on this :-)
Bobflip is offline   Reply With Quote
Old 03-16-2017, 11:47 AM   #23
CaptnWillie
Human being with feelings
 
Join Date: Dec 2016
Posts: 51
Default

Looking forward to having a go with this tonight - hopefully it fixes some issues I've had with Cairo plugins not working in Ableton... will check it later
CaptnWillie is offline   Reply With Quote
Old 03-16-2017, 04:27 PM   #24
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Well, getting my sources into OSX is going well but slowly. Caught up on FFT at the moment, keep on getting Undefined Symbol errors, even though I've dragged a reference to fft.h into the Project Headers section. Tried it at the top and bottom as well! Have you got FFT going ok over there?

Undefined symbols for architecture x86_64:
"_WDL_fft_init", referenced from:
SpectralDisplay::SpectralDisplay(IPlugBase*, ycairo_base*, IRECT) in Compere.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Bobflip is offline   Reply With Quote
Old 03-16-2017, 04:31 PM   #25
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by Bobflip View Post
Well, getting my sources into OSX is going well but slowly. Caught up on FFT at the moment, keep on getting linker errors, even though I've dragged a reference to fft.h into the Project Headers section. Tried it at the top and bottom as well! Have you got FFT going ok over there?
What are you getting? DId you included c source also?
Youlean is offline   Reply With Quote
Old 03-16-2017, 04:33 PM   #26
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Argh, that was it... sorry for the noobish mistake, having a rough time of things around here and not thinking fully clearly.

Thanks for the swift reply, before I'd even edited in the error message!
Bobflip is offline   Reply With Quote
Old 03-16-2017, 04:35 PM   #27
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by Bobflip View Post
Argh, that was it... sorry for the noobish mistake, having a rough time of things around here and not thinking fully clearly.

Thanks for the swift reply, before I'd even edited in the error message!
No problem.
Youlean is offline   Reply With Quote
Old 03-21-2017, 07:41 AM   #28
David S
Human being with feelings
 
Join Date: Jan 2017
Posts: 11
Default example projects

I have downloaded the latest IPlug-Youlean-Master and built all example projects with VS2015 in Win10 without issue, but two of the projects are not operating as expected. IPlugEffectCairoGraphics: When opening initially, 3 objects appear on gui(2 green and1 blue). After minimizing and maximizing the screen, 4 objects appear (3green and 1 blue). After repeating the process of minimizing/maximizing, all 4 objects are green.

IPlugEffectGUILiveEdit: Background resizes properly. Controls move but do not appear to resize properly. When trying to resize the knob, the vertically stitched knob image is revealed.

I have only tested the projects in savihost so far.
Also, are the modifier keys (E,B,T,etc...) still working? Resizing/moving only snaps to grid.
David S is offline   Reply With Quote
Old 03-22-2017, 06:13 AM   #29
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by David S View Post
I have downloaded the latest IPlug-Youlean-Master and built all example projects with VS2015 in Win10 without issue, but two of the projects are not operating as expected. IPlugEffectCairoGraphics: When opening initially, 3 objects appear on gui(2 green and1 blue). After minimizing and maximizing the screen, 4 objects appear (3green and 1 blue). After repeating the process of minimizing/maximizing, all 4 objects are green.

IPlugEffectGUILiveEdit: Background resizes properly. Controls move but do not appear to resize properly. When trying to resize the knob, the vertically stitched knob image is revealed.

I have only tested the projects in savihost so far.
Also, are the modifier keys (E,B,T,etc...) still working? Resizing/moving only snaps to grid.
IPlugEffectCairoGraphics: This is because of cairo_translate. If you do cairo_translate you must undo it before next frame...
IPlugEffectGUILiveEdit: You shouldn't resize knob as it must have fixed size depending on number of frames and bitmap width. This is stripped down version of previous IPlugGUILiveResize, it will gain many functions in the future...
Youlean is offline   Reply With Quote
Old 03-22-2017, 07:11 AM   #30
David S
Human being with feelings
 
Join Date: Jan 2017
Posts: 11
Default

Thank you for replying. Even as is, Gui Live Edit is very useful.
David S is offline   Reply With Quote
Old 03-26-2017, 02:11 PM   #31
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,093
Default

Hi,

first of all thank you and congrats for your IPlug-Youlean release.


While trying this out I found I seem to have a problem with 'baked in' presets ( = not using chunks).

I simply copied your IPlugEffect example (using W-DLicate) and changed the following to make some presets (see screenshot). Result: Only first preset is shown (screenshot shows Reaper, but I get the same result in Tobybear's Minihost).

Hm, any idea what's going on ? Has anyone tried this, is it supposed to work ? (I used this method in WDL-OL without problems)
Thanks.



edit:
Hm...now I get the same result (only first preset showing up) also when I try with WDL-OL (I've recently pulled the latest commits), not sure what's going on.

At least it doesn't seem to be something with WDL-Y alone, need to investigate...

Last edited by nofish; 03-26-2017 at 03:18 PM.
nofish is offline   Reply With Quote
Old 03-26-2017, 02:13 PM   #32
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

I will check this out...
Youlean is offline   Reply With Quote
Old 03-26-2017, 05:06 PM   #33
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,093
Default

Thanks Youlean.

But meanwhile I think it probably has nothing to do with your IPlug version as I now have this problem also on some older projects, so I think it's something on my side.

But if you (or anyone) could confirm it's working as it should with your version that can at least narrow the cause.

edit:
To not spam your thread I've a new one here:
http://forum.cockos.com/showthread.php?t=190011

Last edited by nofish; 03-27-2017 at 07:25 AM.
nofish is offline   Reply With Quote
Old 03-30-2017, 01:20 PM   #34
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Quote:
Originally Posted by Youlean View Post
IPlugEffectCairoGraphics: This is because of cairo_translate. If you do cairo_translate you must undo it before next frame...
IPlugEffectGUILiveEdit: You shouldn't resize knob as it must have fixed size depending on number of frames and bitmap width. This is stripped down version of previous IPlugGUILiveResize, it will gain many functions in the future...
Hi there, I'm wondering if there's something we're meant to tweak to get the GUIResize to work correctly? I understand that it's stripped back for now, but over here only the edge of the window can be changed, but the controls stay in place. However David S's post says that for him the controls are moving.

I've pulled the latest WDL-Y to test, but the same results. I've tested both the VST and App versions with VS2015. I'd previously also tested with XCode with the same results, but not at home to check the latest version or check that I'd tested all three of App, VST and AU (I probably missed out VST).


Edit - Still on PC, noticed that Ableton doesn't appear to recognise the VST, though Reaper does. Compiled as 64 bit so that's not the issue!

Last edited by Bobflip; 03-30-2017 at 02:19 PM.
Bobflip is offline   Reply With Quote
Old 03-30-2017, 04:36 PM   #35
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

GUIResize example is not finished at all. For now you can only resize window. I will make it more complex soon. For now you can do your own experimenting...
Youlean is offline   Reply With Quote
Old 03-30-2017, 04:49 PM   #36
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Quote:
Originally Posted by Youlean View Post
GUIResize example is not finished at all. For now you can only resize window. I will make it more complex soon. For now you can do your own experimenting...
Ah, fair enough! David S's post saying the controls themselves were moving threw me completely, but I'll 100% take your word for it that they're not, hahah.

Are there any pointers to how I might be able to experiment? I'm considering doing most of my controls as vector graphics so bitmap resizing won't be such an issue at this point. I could try and help beta test as well if you want. I already beta test for a number of high profile audio software companies, but haven't beta tested an entire framework before, lol.
Bobflip is offline   Reply With Quote
Old 03-30-2017, 04:55 PM   #37
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by Bobflip View Post
Ah, fair enough! David S's post saying the controls themselves were moving threw me completely, but I'll 100% take your word for it that they're not, hahah.

Are there any pointers to how I might be able to experiment? I'm considering doing most of my controls as vector graphics so bitmap resizing won't be such an issue at this point. I could try and help beta test as well if you want. I already beta test for a number of high profile audio software companies, but haven't beta tested an entire framework before, lol.
You can resize window in IPlugEffectGUILiveEdit...

For now look at IPlugGUIResize.h. I will try to add something for the weekend...
Youlean is offline   Reply With Quote
Old 03-30-2017, 05:12 PM   #38
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

I'll see about giving it a bit of a prod on the long train journey home tomorrow. Thanks!
Bobflip is offline   Reply With Quote
Old 04-01-2017, 04:14 PM   #39
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

I have updated IPlugEffectGUIResize. Now you can see how it resizes or scales the window.
Youlean is offline   Reply With Quote
Old 04-02-2017, 11:57 AM   #40
Bobflip
Human being with feelings
 
Join Date: Nov 2016
Posts: 341
Default

Thanks for that! I've compiled the test project and starting to have a little fiddle about, looks very well featured, lots of options.

One thing so far - spotted a typo in IPlugGUIResize with the naming of the functions GetWidnowSizeWidthRatio and GetWidnowSizeHeightRatio.
Bobflip 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 09:50 PM.


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