How to make your own skin, part 2
So this is where we've finished last time.
Now we have two ways to continue:
- easy - if this is a skin for an already exported plugin
- not-so-easy - if this is a skin for a plugin developed inside Plug'n Script.
Why is the second way not easy? Mostly because of parameter mappings. Let's get into that.
Accessing input parameters
From the previous experience and Plug'n Script manual you may know that to access first input parameter in the .kuiml you can use name "custom_param0". Let's try this with our custom skin:
So, why it doesn't work? And how do we access input parameters then?
The reason is that "custom_param"-s are not real DSP parameters. They are just a trick that allows Plug'n Script skin to load different scripts on the fly.
The real DSP parameters that are exposed to the GUI have names like "dsp.inputX". Let's try this:
It works! The "dsp.input0" is the "Bypass" parameter, which is the built-in first parameter in all Plug'n Script plugins.
So our first input parameter should be called dsp.input1 then? Well, yes, but only when exported (and option "Use generic parameters" was not checked).
Plug'n Script reserves 7 more parameters for it's own purposes, so when we're inside Plug'n Script (not exported plugin), we can access our first parameter via dsp.input8.
This is not very convenient, but that's how it is.
Parameters aliasing trick
Another problem is that a plugin usually cannot change parameter names and their ranges "on-the-fly", the DAWs usually don't support that. That's why Plug'n Script uses this trick:
it exposes to the DAW generic input params with names like "Param 0", "Param 1", etc. and generic ranges (0 to 1, displayed as 0 to 100%). And later on, inside the skin, for our convenience, it creates aliases (or "proxy" parameters) with names like "custom_param0, 1, 2, etc" that are linked to "dsp.input8, 9, 10" and also get proper ranges, proper names, proper default values, etc. And we can use these "custom_params" without worriyng that they will change after export.
But if you're making a skin for an exported plugin, you don't need this trick with proxy "custom_params". You can safely use dsp.input1, dsp.input2 etc.
Make a skin for exported plugin
The main difference in exported plugin and the plugin inside Plug'n Script is how the DAW sees it's parameters. Let's take a look at