|
08-19-2017, 11:31 AM
|
#1
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
IPlug - Youlean [BUGS]
I would like to write any problem that you have with my repository here.
So far there are some problems regarding changing GUI size using resizing handle. This is broken in some hosts on macOS like Ardour5 or Ableton Live 9 (as Oli mentioned). I have an idea how to solve that so I will experiment with it in the next couple of days. This is definitely high priority for me.
|
|
|
08-22-2017, 12:41 AM
|
#2
|
Human being with feelings
Join Date: Apr 2017
Posts: 36
|
I had to go through and add a bunch of brackets around where there were castings to unsigned chars in order to get examples to build. No problem really.
|
|
|
08-24-2017, 10:46 PM
|
#3
|
Human being with feelings
Join Date: Aug 2017
Posts: 6
|
Just shortly checked examples yesterday. During resizing everything is getting black. Is that intentional?
|
|
|
08-24-2017, 11:58 PM
|
#4
|
Human being with feelings
Join Date: Sep 2007
Posts: 642
|
Quote:
Originally Posted by nosonic
Just shortly checked examples yesterday. During resizing everything is getting black. Is that intentional?
|
Not being the developer, I'd venture to say it's normal. Each time you change the gui size, all graphics needs to be recalculated/re-scaled. It may be time consuming especially if you have bitmaps. It's not a "real time" process.
|
|
|
08-25-2017, 12:35 AM
|
#5
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Anomaly
Not being the developer, I'd venture to say it's normal. Each time you change the gui size, all graphics needs to be recalculated/re-scaled. It may be time consuming especially if you have bitmaps. It's not a "real time" process.
|
Indeed, there is setting to disable that but GUI resizing will be significantly slower. If I remove LICE support in the future showing GUI while resizing will be much faster...
|
|
|
08-31-2017, 10:21 AM
|
#6
|
Human being with feelings
Join Date: Sep 2007
Posts: 642
|
I have never been able to make presets work with Iplug-Youlean. So I made a following test:
I created a new project from the IPlugEffect template, one with WDL-OL and another with IPlug-Youlean. Then I added the following presets to both of them:
MakePreset("preset 1", 10.);
MakePreset("preset 2", 20.);
MakePreset("preset 3", 30.);
MakePreset("preset 4", 40.);
MakePreset("preset 5", 50.);
MakePreset("preset 6", 60.);
MakePreset("preset 7", 70.);
MakePreset("preset 8", 80.);
MakePreset("preset 9", 90.);
MakePreset("preset 10", 100.);
This is basically just the kGain knob. After compiling both, I tested them in REAPER. The WDL-OL version worked perfectly. The gain knob moves when I switch the presets. But with the IPlug-Youlean version however the gain knob won't change.
So I wanted to add this issue to the bugs list. If this is already a known issue, then my apologies.
|
|
|
08-31-2017, 12:40 PM
|
#7
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Anomaly
I have never been able to make presets work with Iplug-Youlean. So I made a following test:
I created a new project from the IPlugEffect template, one with WDL-OL and another with IPlug-Youlean. Then I added the following presets to both of them:
MakePreset("preset 1", 10.);
MakePreset("preset 2", 20.);
MakePreset("preset 3", 30.);
MakePreset("preset 4", 40.);
MakePreset("preset 5", 50.);
MakePreset("preset 6", 60.);
MakePreset("preset 7", 70.);
MakePreset("preset 8", 80.);
MakePreset("preset 9", 90.);
MakePreset("preset 10", 100.);
This is basically just the kGain knob. After compiling both, I tested them in REAPER. The WDL-OL version worked perfectly. The gain knob moves when I switch the presets. But with the IPlug-Youlean version however the gain knob won't change.
So I wanted to add this issue to the bugs list. If this is already a known issue, then my apologies.
|
Thanks. I definitely should look at this. I will try to fix that ASAP.
|
|
|
09-08-2017, 11:23 AM
|
#8
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
Quote:
Originally Posted by Youlean
Thanks. I definitely should look at this. I will try to fix that ASAP.
|
I was going to ask about this as well! Thought I was getting the code wrong in some way, but as it’s non-critical it kept getting pushed down the priority list.
Also on OSX, it seems that a control’s OnMouseOut is not called if the mouse pointer is moved off the plugin window - for example if a control is right next to the edge of the window and the mouse is moved quickly in that direction. Appears to be ok in Windows though.
|
|
|
09-09-2017, 09:31 AM
|
#9
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Bobflip
Also on OSX, it seems that a control’s OnMouseOut is not called if the mouse pointer is moved off the plugin window - for example if a control is right next to the edge of the window and the mouse is moved quickly in that direction. Appears to be ok in Windows though.
|
Thanks, I will check this out too.
|
|
|
09-09-2017, 02:14 PM
|
#10
|
Human being with feelings
Join Date: Sep 2007
Posts: 642
|
I'd like to report couple issues with VST3:
- Private parameters are getting displayed to the host (Reaper) with vst3.
- It is not possible to set up more input/output channels than 6 with VST3. Anything higher than that causes the plugin I/O to "disappear". By disappear I mean that Reaper can't access the I/O layout of that plugin.
|
|
|
09-09-2017, 07:40 PM
|
#11
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
Quote:
Originally Posted by Anomaly
I'd like to report couple issues with VST3:
- Private parameters are getting displayed to the host (Reaper) with vst3.
- It is not possible to set up more input/output channels than 6 with VST3. Anything higher than that causes the plugin I/O to "disappear". By disappear I mean that Reaper can't access the I/O layout of that plugin.
|
I'm wondering if I've been having trouble with private parameters as well. I thought it was partially my code and partially not fully understanding what they’re to be used for. Are they meant to be left alone when the host saves/loads presets and projects, and not supposed to be automatable? If so then I think I’m experiencing similar problems with them with OSX/Logic.
I've also spotted a typo in the IPlugConfigFile class, SetEncriptionKey should be SetEncryptionKey
|
|
|
09-09-2017, 11:54 PM
|
#12
|
Human being with feelings
Join Date: Sep 2007
Posts: 642
|
Quote:
Originally Posted by Bobflip
Are they meant to be left alone when the host saves/loads presets and projects, and not supposed to be automatable?
|
Yes, I believe that is the idea. Comparing to VST2, the private parameters are not exposed to host at all, nor recalled by presets.
|
|
|
09-10-2017, 02:55 AM
|
#13
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Anomaly
Yes, I believe that is the idea. Comparing to VST2, the private parameters are not exposed to host at all, nor recalled by presets.
|
Idea for private presets is to be hidden from the host like chunks but to be easy to work on unlike chunks. I will definitely need to check this out.
|
|
|
09-10-2017, 03:08 AM
|
#14
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
I have tested the private presets and it seems that you were right. I will try to fix that ASAP in package with making presets.
Thanks for the reporting bugs guys, it really speeds up a development!
|
|
|
09-10-2017, 07:16 AM
|
#15
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
No problem! Thanks again for all your work on the framework, it's speeds development up for me even more, hahah :-)
I would like to help out with the development of IPlug at some point, once I've got my own project completed (or at least at 1.0) it'd be nice to give something back. Not sure what I can do at this stage, but then again I think I should probably have more confidence in my abilities!
|
|
|
09-10-2017, 12:22 PM
|
#16
|
Human being with feelings
Join Date: Sep 2007
Posts: 642
|
Thanks to you Youlean for your hard work!
|
|
|
09-11-2017, 06:07 AM
|
#17
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
I'm experiencing a problem with resizing and showing/hiding controls, I've poked around enough that I think it could be a bug with WDL-Youlean, but we'll see...
Basically, I have a control that I want to show when another button is pressed. At first I had the following code in the constructor and in OnParamChange, which was all good:
Code:
bitmap = pGraphics->LoadPointerToBitmap(IBUTTON_TEST_ID, IBUTTON_TEST_FN, 1);
mTestControl = pGraphics->AttachControl(pTestControl = new ISwitchControl(this, 50, 10, kTestControl, bitmap));
pTestControl->Hide(true);
hideFlag = true;
bitmap = pGraphics->LoadPointerToBitmap(IBUTTON_SHOW_ID, IBUTTON_SHOW_FN, 2);
mShowSwitch = pGraphics->AttachControl(pShowSwitch = new ISwitchControl(this, 10, 10, kShowSwitch, bitmap));
case kShowSwitch:
if (GetParam(kShowSwitch)->Value() == true) {
pTestControl->Hide(false);
}
else {
pTestControl->Hide(true);
}
However, trying to put that into a plugin with a resizable window is causing problems. If I have clicked the button to show the control, every time I resize the GUI, the newly shown control will disappear again when I release the mouse button. I’ve included the if(hideFlag) check in all the view modes. It seems like it’s being redrawn elsewhere? Interestingly, if I comment out pTestControl->Hide(true) and hideFlag = true, the problem happens in reverse, where the control will be unhidden after releasing the mouse button.
Code:
bitmap = pGraphics->LoadPointerToBitmap(IBUTTON_TEST_ID, IBUTTON_TEST_FN, 1);
mTestControl = pGraphics->AttachControl(pTestControl = new ISwitchControl(this, 50, 10, kTestControl, bitmap));
pTestControl->Hide(true);
hideFlag = true;
bitmap = pGraphics->LoadPointerToBitmap(IBUTTON_SHOW_ID, IBUTTON_SHOW_FN, 2);
mShowSwitch = pGraphics->AttachControl(pShowSwitch = new ISwitchControl(this, 10, 10, kShowSwitch, bitmap));
case kShowSwitch:
if (GetParam(kShowSwitch)->Value() == true) {
hideFlag = false;
pTestControl->Hide(false);
}
else {
hideFlag = true;
pTestControl->Hide(true);
}
if (viewMode == defaultView)
{
GetGUIResize()->MoveControlHorizontally(*knobIndex, windowWidth - 200);
GetGUIResize()->MoveControlHorizontally(*helloIPlugIndex, windowWidth - 220);
GetGUIResize()->MoveControlHorizontally(*miniViewIndex, windowWidth - 220);
GetGUIResize()->MoveControlHorizontally(*defaultViewIndex, windowWidth - 220);
GetGUIResize()->MoveControlHorizontally(*hugeViewIndex, windowWidth - 220);
GetGUIResize()->MoveControlHorizontally(*handleSelectorIndex, windowWidth - 220);
if (hideFlag == true)
pTestControl->Hide(true);
else
pTestControl->Hide(false);
}
|
|
|
09-11-2017, 06:41 AM
|
#18
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
You will need to use GuiResize hide/show control method for that.
|
|
|
09-11-2017, 06:52 AM
|
#19
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
D'oh, thanks! I'll go implement that now instead.
|
|
|
09-11-2017, 06:56 AM
|
#20
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Bobflip
D'oh, thanks! I'll go implement that now instead.
|
No problem. This is indeed little bit confusing so I might try to find a way to make that better implemented...
|
|
|
09-11-2017, 07:11 AM
|
#21
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
And now it’s working great! There’s a couple of minor issues still, but I’m pretty certain that’ll be my own code (and probably something I’ve changed while trying to get it to work the other way, lol)
I’m certainly finding it easier to read using ShowControl and HideControl over the Hide(true) and Hide(false) methods :-)
|
|
|
09-11-2017, 02:24 PM
|
#22
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
One extra question regarding this - is it possible to show/hide a control on a view other than the current view?
|
|
|
09-11-2017, 02:28 PM
|
#23
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Bobflip
One extra question regarding this - is it possible to show/hide a control on a view other than the current view?
|
Not for now. Why would you need that?
|
|
|
09-11-2017, 02:39 PM
|
#24
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
I have a Prefs window that is shown when you click on the plugin logo, and on that window are buttons for two view modes. When I clicked on the second view mode, the Preference window was disappearing. The solution in mind was to show the prefs window on both views in two separate lines, only as I check back now it doesn't appear to be doing this any more! The logo switch value seems to be remembering the old state though.
|
|
|
09-11-2017, 02:49 PM
|
#25
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Bobflip
I have a Prefs window that is shown when you click on the plugin logo, and on that window are buttons for two view modes. When I clicked on the second view mode, the Preference window was disappearing. The solution in mind was to show the prefs window on both views in two separate lines, only as I check back now it doesn't appear to be doing this any more! The logo switch value seems to be remembering the old state though.
|
Views are separated one from another. You can use SelectViewMode method to select other view and change position/show/hide and switch back to current view. GUI won't be changed unless you call ResizeGraphics method.
|
|
|
09-11-2017, 03:00 PM
|
#26
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
Ah excellent, that'll do the trick, thanks again!
|
|
|
09-14-2017, 08:58 AM
|
#27
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Good news, I found what is problem with presets, now only I need to implement that...
|
|
|
09-14-2017, 09:53 AM
|
#28
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
Excellent news! :-D
|
|
|
10-19-2017, 10:07 AM
|
#29
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
I’ve just spotted that if you accidentally add a control to a control group twice, any GUI resizing is applied to that control twice.
Of course this would really be a bug with the plugin code rather than the framework, but wonder if there should be a check or warning?
|
|
|
11-09-2017, 02:06 PM
|
#30
|
Human being with feelings
Join Date: May 2012
Location: PA, USA
Posts: 356
|
Is anyone trying VST3 SDK 3.6.8?
I am trying it on Xcode, but I get an error in IPlugVST3.h. It is specific to IUnitInfo.
If everyone is still on 3.6.7, it might be easier for me to just switch to that.
Thanks
|
|
|
11-09-2017, 03:40 PM
|
#31
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
I am using 3.6.7. I will check this until end of week...
|
|
|
11-13-2017, 03:19 PM
|
#32
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
Spotted a typo in ycairo.h and ycairo.cpp
With ycairo_text_w_aligement and ycairo_text_h_aligement, aligement should be alignment.
|
|
|
11-17-2017, 07:37 PM
|
#33
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Bobflip
Spotted a typo in ycairo.h and ycairo.cpp
With ycairo_text_w_aligement and ycairo_text_h_aligement, aligement should be alignment.
|
Hahahah, indeed.
|
|
|
11-29-2017, 02:53 PM
|
#34
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
Hi there, I've just updated the framework to the latest release, but the config file code seems to have broken. It's a problem with the line 76 in IPlugConfigFile.h, which gives an error of "no viable conversion from returned value of type 'std::_1::basic_string<char>' to function return type 'int'."
Code:
return string_to_T<string>(ReadString(groupName, valueName, T_to_string(defaultValue)));
To get around it I've changed the typecast from <string> back to ValueType for now, but not sure if that was changed to string for a reason?
I also had to add the following to icontrol.h to get it to compile in XCode.
Code:
#include <string>
#include <sstream>
#include <iostream>
|
|
|
11-29-2017, 03:05 PM
|
#35
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Bobflip
Hi there, I've just updated the framework to the latest release, but the config file code seems to have broken. It's a problem with the line 76 in IPlugConfigFile.h, which gives an error of "no viable conversion from returned value of type 'std::_1::basic_string<char>' to function return type 'int'."
Code:
return string_to_T<string>(ReadString(groupName, valueName, T_to_string(defaultValue)));
To get around it I've changed the typecast from <string> back to ValueType for now, but not sure if that was changed to string for a reason?
I also had to add the following to icontrol.h to get it to compile in XCode.
Code:
#include <string>
#include <sstream>
#include <iostream>
|
Thanks Bobflip. It might be that I left this out... I still have not received my macbook from service so I can't test this out. I will take a look ASAP.
|
|
|
11-29-2017, 03:13 PM
|
#36
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
No probs!
Also wondering if there's any progress on the VST resizing? I've just checked the GUIResize example in Ableton, and the buttons don't resize the interface as well as using the bottom right handle.
As I want to release 1.0.0 of my plug in the next day or so, I'm thinking about just adding some preset window size buttons to my prefs page and disabling the resize handle on VST, if that's possible?
|
|
|
11-29-2017, 03:18 PM
|
#37
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Bobflip
No probs!
Also wondering if there's any progress on the VST resizing? I've just checked the GUIResize example in Ableton, and the buttons don't resize the interface as well as using the bottom right handle.
As I want to release 1.0.0 of my plug in the next day or so, I'm thinking about just adding some preset window size buttons to my prefs page and disabling the resize handle on VST, if that's possible?
|
I have not touched it yet. When my macbook arrive I will have a look, but I will need as much help as possible on that one!
You can disable handle by adding false to third parameter in IPlugGUIResize, and then you can manually set size by calling SetWindowSize and then ResizeGraphics from IControl.
|
|
|
11-29-2017, 03:28 PM
|
#38
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
Cool, I'm willing to help where I can! More likely to be able to offer testing and reports rather than fixes but will see what I can do. I'll try and sort those typos I've spotted and the ChangeBitmap method in a new pull request after initial release as well.
Thanks for the pointers on the resize too, though I'd already implemented three preset sizes in an earlier version before taking them out in favour of a single 'reset display size' button, because I thought users may not realise it could be dynamically resized if they had preset sizes presented to them. D'oh!
|
|
|
11-29-2017, 04:09 PM
|
#39
|
Human being with feelings
Join Date: May 2015
Location: Serbia
Posts: 654
|
Quote:
Originally Posted by Bobflip
Cool, I'm willing to help where I can! More likely to be able to offer testing and reports rather than fixes but will see what I can do. I'll try and sort those typos I've spotted and the ChangeBitmap method in a new pull request after initial release as well.
Thanks for the pointers on the resize too, though I'd already implemented three preset sizes in an earlier version before taking them out in favour of a single 'reset display size' button, because I thought users may not realise it could be dynamically resized if they had preset sizes presented to them. D'oh!
|
That would be great. I can't wait to see what you came up with!
|
|
|
12-01-2017, 06:34 AM
|
#40
|
Human being with feelings
Join Date: Nov 2016
Posts: 341
|
Quote:
Originally Posted by Youlean
I have not touched it yet. When my macbook arrive I will have a look, but I will need as much help as possible on that one!
You can disable handle by adding false to third parameter in IPlugGUIResize, and then you can manually set size by calling SetWindowSize and then ResizeGraphics from IControl.
|
Ok, bit of a problem with this approach - the handle is still there when I change the line to this:
Code:
AttachGUIResize(new IPlugGUIResize(this, pGraphics, false, 16, 16));
Tried this in the IPlugEffectGUIResize example as well. Initally I put some ifdefs in there to try and make it specific the the Mac VST versions, but when that wasn't working I tried just changing the line by itself and realised that wasn't doing anything!
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 04:21 AM.
|