COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 11-06-2019, 02:30 PM   #1
jkeller51
Human being with feelings
 
Join Date: Oct 2014
Posts: 48
Default IPlug (wdl-ol) Hidden Parameters

Hello,


I've been trying to hide some MIDI controller parameters in my VST3 project (e.g. MIDI Pitch bend, mod wheel) from being visible to the user for control or automation. Here is an example:


Code:
Parameter * param;
param = new RangeParameter(USTRING("MIDI Mod Wheel"), kModWheelParam, USTRING(""), 0.0, 1.0, 0.5, 0, ParameterInfo::kNoFlags);
param->setPrecision(1);
parameters.addParameter(param);
Note that I set the flags to kNoFlags, indicating that the user should NOT be able to automate this parameter.


Nevertheless, I end up with this:





When I try a similar approach to the HelloWorld example in the VST3 SDK, I can hide the parameter:


Code:
parameters.addParameter (STR16 ("Bypass"), 0, 1, 0,
                                 Vst::ParameterInfo::kCanAutomate | Vst::ParameterInfo::kIsBypass,
                                 HelloWorldParams::kBypassId);

        parameters.addParameter (STR16 ("Parameter 1"), STR16 ("dB"), 0, .5,
                                 Vst::ParameterInfo::kNoFlags, HelloWorldParams::kParamVolId, 0,
                                  STR16 ("Param1"));


         parameters.addParameter (STR16 ("Parameter 2"), STR16 ("On/Off"), 1, 1.,
                                 Vst::ParameterInfo::kCanAutomate, HelloWorldParams::kParamOnId, 0,
                                 STR16 ("Param2"));





Note that Parameter 1 is not visible.


Any ideas for why the same approach works when using the VST3 SDK directly but not when using IPlug? I recently updated the VST3 SDK that my IPlug project uses.


Thanks!
jkeller51 is offline   Reply With Quote
Old 11-07-2019, 05:14 PM   #2
Nonlinear
Human being with feelings
 
Join Date: Apr 2018
Posts: 396
Default

Try this in your constructor when initiating the control:

GetParam(kSomeControl)->SetCanAutomate(false);
Nonlinear is offline   Reply With Quote
Old 11-08-2019, 07:31 AM   #3
jkeller51
Human being with feelings
 
Join Date: Oct 2014
Posts: 48
Default

Hi nonlinear, thanks for your reply.


The parameters I'm setting up here are not IParams but Steinberg::Vst::Parameter class. I almost feel like this has something to do with the way the parameters are being read by the host (REAPER in this case), but I hope not. When I inspect the Parameters in memory at runtime, the flag is still set to 0 (kNoFlags) which theoretically should mean they aren't available for automation (since kCanAutomate is nonzero).
jkeller51 is offline   Reply With Quote
Old 11-08-2019, 12:07 PM   #4
jkeller51
Human being with feelings
 
Join Date: Oct 2014
Posts: 48
Default BREAKTHROUGH

Breakthrough!


As far as I know, this was not mentioned anywhere in the vst3 documentation, or on any forums I could find... But you have to provide at least 1 visible parameter for the DAW. When I created a dummy parameter that is visible, all of my MIDI parameters became hidden. Hope this can help somebody.
jkeller51 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 07:27 AM.


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