Cockos Incorporated Forums

Cockos Incorporated Forums (https://forum.cockos.com/index.php)
-   WDL users forum (https://forum.cockos.com/forumdisplay.php?f=32)
-   -   IPlug - Youlean (https://forum.cockos.com/showthread.php?t=189266)

Youlean 03-12-2017 11:39 AM

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

olilarkin 03-12-2017 12:09 PM

great!

br_ck1 03-12-2017 01:37 PM

Best wishes with IPlug Youlean, following with much interest...

1eqinfinity 03-13-2017 05:06 AM

awesome, thank you :)

Tale 03-13-2017 08:51 AM

Cool, thanks for sharing!

snooks 03-13-2017 10:49 AM

+1, looking forward to checking out the Cairo integration! Thanks!

Youlean 03-13-2017 12:50 PM

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...

Bobflip 03-13-2017 10:52 PM

Big thanks for this! Will experiment and let you know how it goes :-)

snooks 03-14-2017 06:26 AM

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.

Youlean 03-14-2017 06:41 AM

Quote:

Originally Posted by snooks (Post 1817656)
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...

snooks 03-14-2017 07:03 AM

Cool, good man!

Bobflip 03-14-2017 04:05 PM

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'

snooks 03-14-2017 04:25 PM

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

Bobflip 03-14-2017 04:34 PM

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 03-14-2017 06:18 PM

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!

Youlean 03-15-2017 09:30 AM

OK. All libs are uploaded now. IPlugEffectGUIResize will be updated with more features later...

Bobflip 03-15-2017 10:56 AM

Do you have any thoughts on what might be preventing things things from compiling with XCode?

Youlean 03-15-2017 11:48 AM

Quote:

Originally Posted by Bobflip (Post 1818334)
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?

Bobflip 03-15-2017 12:13 PM

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"

Youlean 03-15-2017 12:18 PM

Quote:

Originally Posted by Bobflip (Post 1818375)
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!

Bobflip 03-15-2017 12:25 PM

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 03-15-2017 02:57 PM

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 :-)

CaptnWillie 03-16-2017 11:47 AM

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 :)

Bobflip 03-16-2017 04:27 PM

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)

Youlean 03-16-2017 04:31 PM

Quote:

Originally Posted by Bobflip (Post 1819104)
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?

Bobflip 03-16-2017 04:33 PM

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!

Youlean 03-16-2017 04:35 PM

Quote:

Originally Posted by Bobflip (Post 1819110)
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. :D

David S 03-21-2017 07:41 AM

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.

Youlean 03-22-2017 06:13 AM

Quote:

Originally Posted by David S (Post 1821396)
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...

David S 03-22-2017 07:11 AM

Thank you for replying. Even as is, Gui Live Edit is very useful.

nofish 03-26-2017 02:11 PM

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.

https://i.imgur.com/tMpeltI.jpg

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...

Youlean 03-26-2017 02:13 PM

I will check this out...

nofish 03-26-2017 05:06 PM

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

Bobflip 03-30-2017 01:20 PM

Quote:

Originally Posted by Youlean (Post 1821824)
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!

Youlean 03-30-2017 04:36 PM

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...

Bobflip 03-30-2017 04:49 PM

Quote:

Originally Posted by Youlean (Post 1825729)
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.

Youlean 03-30-2017 04:55 PM

Quote:

Originally Posted by Bobflip (Post 1825736)
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...

Bobflip 03-30-2017 05:12 PM

I'll see about giving it a bit of a prod on the long train journey home tomorrow. Thanks!

Youlean 04-01-2017 04:14 PM

I have updated IPlugEffectGUIResize. Now you can see how it resizes or scales the window.

Bobflip 04-02-2017 11:57 AM

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.


All times are GMT -7. The time now is 05:46 PM.

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