I’ve decided to create a lite free version of one of my plugins, and the idea is that the lite version has some sliders/button disabled. When the user buy the full version all the controls are enabled. The user can still load presets, but simply can’t change the value of some controls manually. Inside the UI this is really simple to do: I know if the plugin has been authenticated and I enable/disable the sliders accordingly (or I place an overlay over them making them not-clickable).
The problem is that the DAW sees the parameters in my ValueTree and let the user change them with a custom interface. This is an example in Logic Pro and Reaper:
Is there a way to hide some params inside my ValueTree to the DAW? I’ve tried AudioParameterFloatAttributes().withAutomatable(false) but the result is that the parameter is not in the automation list but it is still in the custom interface shown above.
I would recommend to keep those parameters in both versions but make it in the DSP and the GUI that they have no effect/are hidden or greyed out.
The reason is, when the user upgrades and the number of parameters changes, all their saved sessions would potentially become unusable.
I think you can rename the parameters to an empty string, then the host will not show them. But it is up to the host…
I’m the only one testing my plugin so far (it’s not released), and I often test with the standalone outside a DAW, so I don’t know if there could be issues with this approach, but it’s been working very well for me for the past 6 months. I plan to continue doing things this way for the foreseeable future.
There is actually just a version, the user installs the lite and if he likes it can unlock it by buying a license. In the GUI those parameters are greyed out and not clickable, but several DAWs have a “simplified” UI that shows all the parameters in the Value Tree, as shown above. So someone can switch to that view, change a parameter and go back to the official UI.
I know I could disable the setters inside the plugin for those params, but I would like to keep the possibility to load presets, and loading a presets calls that same setters…
As far as I know, there isn’t a way to do this. They will show up in some DAWs when they are there, even when they are created as “non-automatable”. Using a dummy audio processor or not registering those parameters is also not a solution for your use case. It can cause problems when restoring automation when the parameter order changes.
I think you need to do this in the DSP code and the UI as @daniel mentioned. I wouldn’t care if these parameters show up in the generic DAW UI.
Maybe you even don’t do anything about it and only disable it on the UI for the demo? No one wants to work in the generic UI. People who like your product will buy it.