isPluginParameter - Let the user choose
-
Hey all,
Has anyone experimented with allowing the user to choose which parameters become a "plugin parameter" within their DAW? I know a lot of DAWs and plugins feature this capability, where the user is able to select which controls are exposed to the DAW and become modulation targets. Typically when I set these in a HISE project, all my "isPluginParameters" become exposed the instance I select just one of them. I would like to make it so that only the ones a user selects are shown within the DAW.
If someone has a script elucidating how to go about this I would appreciate you sharing. If not, any suggestions on a theoretical approach, whether it is using the macro control system, some tinkering the HISE source code, or any other recommendations, is always appreciated.
Best,
-
@HISEnberg can you show me this with another plugin?
-
@HISEnberg er, doesnt Logic(at least) want to test these params as it loads? So dynamically setting them might get it very very upset - I might be wrong tho...
-
The
isPluginParameter
flag cannot be set dynamically, but what you trying to do here can be achieved through the macro control system. I've used that in Triaz to allow mapping any UI control to one of 64 slots (the amount of slots need to be static as many hosts choke on a dynamic parameter amount).You need to define two properties in your project settings extra definition:
HISE_MACROS_ARE_PLUGIN_PARAMETERS=1 HISE_NUM_MACROS=64
if
HISE_MACROS_ARE_PLUGIN_PARAMETERS
is defined, it will ignore whatever UI controls you define as pluginParameters and just register every macro control slot as automatable parameter to the DAW. Now you can use Engine.setFrontendMacros() to tell your plugin to make the macro controls assignable by the end user (this will extend the context menu where you can assign a MIDI CC control with the macro slots).Note that macro assignments are part of the user preset data model, so they will be restored correctly when loading a DAW session. However if you want to keep the macro assignments consistent across user preset browsing, you will have to implement this manually.
I've added a example to the snippet browser that will show the full code required to implement this here:
https://docs.hise.dev/tutorials/all/index.html#dynamic-plugin-parameters
-
Thank you all for your quick responses! I have been on the move lately so not much opportunity to reply.
@Christoph-Hart thank you, I think this is the exact solution I am looking for. I haven't explored the macro control system to date so this looks like the proper time. Thank you for providing the snippet.
@d-healey I am not on my main system but here is 2 screen recordings of what I am talking about. It may be a DAW/Plugin dependent request, but the first recording is an Arturia plugin, the second is one made in HISE:
@Lindon you are correct, I think it is true with most DAWs. My hope was (and the macro control system seems to be the solution) is to set all parameters which exposed to the DAW, but only have visible/assignable the ones the user selects (so maximum 64 in the macro control scenario).
-