Blue Cat's Plug'n Script V3 Released - Now with VST Plug-in Export!
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5799 posts since 8 Sep, 2004 from Paris (France)
The plug-in does not offer (yet) a library of built-in effects, but you can write your own
- KVRAF
- 9569 posts since 16 Dec, 2002
Not totally trueBlue Cat Audio wrote: ↑Tue Oct 30, 2018 10:22 am The plug-in does not offer (yet) a library of built-in effects, but you can write your own
https://github.com/bluecataudio/plugnsc ... in/Presets
Amazon: why not use an alternative
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5799 posts since 8 Sep, 2004 from Paris (France)
You are right: there are indeed a couple of audio & midi sample dsp scripts available, as well as a few open source classes for filters, delays etc. that you can use freely in your own code.
But the plug-in does not expose native implementations of well-known effects as reusable blocks.
But the plug-in does not expose native implementations of well-known effects as reusable blocks.
-
- KVRist
- 302 posts since 28 May, 2011
Hey, Blue Cat!
Thanks again for PnS environment! Don't know how I'd develop my plugin without it - it's really helpful, all those KUIML things and AngelScript.
Got a few questions, more important first:
1) When exporting plugin we loose all the advantages of VST3 - sidechain capabilities and GUI auto-resize. That's quite a pity. Maybe there's a possibility in the future to export plugins in VST3 format?
Less important:
2) How to measure performance of Angelscript? To find which parts require the most CPU time? Right now I can do it just disabling/enabling blocks of code one by one and looking at VST performance meter.
3) KUIML: How to toggle input parameter clicking on text (not on image)? INVISIBLE_PARAM_TOGGLE_SWITCH toggles twice (once on mouse down, and back on mouse up). Couldn't make INVISIBLE_PARAM_BUTTON work with a simple 0/1 input param. IMAGE_PARAM_BUTTON works fine. Right now i use IMAGE_PARAM_BUTTON with 0% opacity over some text.
4) KUIML: How to get current directory in KUIML? $_DIR_$ points to main skin directory, and if we want to link to images in the subfolder of kuiml file, there's no easy way, just to use absolute paths? I tried detecting currentWorkingDir in .cxx and then re-writing it to .kuiml variable, but it's not an easy way
5) When "reset" function is called? What is it for?
Thanks again for PnS environment! Don't know how I'd develop my plugin without it - it's really helpful, all those KUIML things and AngelScript.
Got a few questions, more important first:
1) When exporting plugin we loose all the advantages of VST3 - sidechain capabilities and GUI auto-resize. That's quite a pity. Maybe there's a possibility in the future to export plugins in VST3 format?
Less important:
2) How to measure performance of Angelscript? To find which parts require the most CPU time? Right now I can do it just disabling/enabling blocks of code one by one and looking at VST performance meter.
3) KUIML: How to toggle input parameter clicking on text (not on image)? INVISIBLE_PARAM_TOGGLE_SWITCH toggles twice (once on mouse down, and back on mouse up). Couldn't make INVISIBLE_PARAM_BUTTON work with a simple 0/1 input param. IMAGE_PARAM_BUTTON works fine. Right now i use IMAGE_PARAM_BUTTON with 0% opacity over some text.
4) KUIML: How to get current directory in KUIML? $_DIR_$ points to main skin directory, and if we want to link to images in the subfolder of kuiml file, there's no easy way, just to use absolute paths? I tried detecting currentWorkingDir in .cxx and then re-writing it to .kuiml variable, but it's not an easy way
5) When "reset" function is called? What is it for?
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5799 posts since 8 Sep, 2004 from Paris (France)
Hi,
Glad that you like it!
Regarding (1) it depends on your host application: apart from Cubase (!) most if not all other hosts actually support side chain with VST2. But we will indeed probably add a VST3 target as well in the future.
(2) I don't think there is a better way to check performance than doing A/B comparisons. Measuring time using scripting would actually have an impact on performance.
(3) INVISIBLE_PARAM_BUTTON should work. Maybe you need to force positions_count="2", if your parameter is not defined as a boolean.
(4) We'll have to check this out - I remember there is indeed a trick for this because the .kuiml file is a sub-skin hosted in the main skin.
(5) reset is called when the host needs to reset the state of the plug-in. Typically before restarting playback from another location or after initialization. But it depends on the host application.
Glad that you like it!
Regarding (1) it depends on your host application: apart from Cubase (!) most if not all other hosts actually support side chain with VST2. But we will indeed probably add a VST3 target as well in the future.
(2) I don't think there is a better way to check performance than doing A/B comparisons. Measuring time using scripting would actually have an impact on performance.
(3) INVISIBLE_PARAM_BUTTON should work. Maybe you need to force positions_count="2", if your parameter is not defined as a boolean.
(4) We'll have to check this out - I remember there is indeed a trick for this because the .kuiml file is a sub-skin hosted in the main skin.
(5) reset is called when the host needs to reset the state of the plug-in. Typically before restarting playback from another location or after initialization. But it depends on the host application.
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5799 posts since 8 Sep, 2004 from Paris (France)
Just double checked for (4): it is indeed currently not possible to refer to the current directory of the KUIML file. One of the reasons is that when you export the scripts as a plug-in, there is no way to know which extra resource files should be copied.
So if you need to add extra images, it is recommended to create a custom skin instead. One way to do it if you do not want to start from scratch is to copy the default skin from a previously exported plug-in and replace the file named custom_controls.kuiml.inc with the content of your kuiml file. Hope this helps!
So if you need to add extra images, it is recommended to create a custom skin instead. One way to do it if you do not want to start from scratch is to copy the default skin from a previously exported plug-in and replace the file named custom_controls.kuiml.inc with the content of your kuiml file. Hope this helps!
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5799 posts since 8 Sep, 2004 from Paris (France)
The new version of Plug'n Script now has the datetime add-on, so you should be able to use the date to generate file names in scripts.
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5799 posts since 8 Sep, 2004 from Paris (France)
-
- KVRist
- 302 posts since 28 May, 2011
Maybe you'll be interested in what have been done with PNS!
https://www.youtube.com/watch?v=eG4FeTQ8Ct0
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5799 posts since 8 Sep, 2004 from Paris (France)
- KVRian
- 736 posts since 5 Jul, 2005 from Southern California
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5799 posts since 8 Sep, 2004 from Paris (France)
I have just tested your plug-in with our own software, and I am impressed by what you have achieved!
There is just one thing I may have not understood well: the measurements seem to be highly dependent on how you setup the threshold vs the levels in the generator (it seems that you get the most accurate results when setting up the threshold of the compressor close to the low level value, so that the compressor is triggered right away). What do you recommend?
There is just one thing I may have not understood well: the measurements seem to be highly dependent on how you setup the threshold vs the levels in the generator (it seems that you get the most accurate results when setting up the threshold of the compressor close to the low level value, so that the compressor is triggered right away). What do you recommend?
-
- KVRist
- 302 posts since 28 May, 2011
Hey, Blue Cat! Thank you!
I've just tried what you've mentioned with Oxford Dynamics. Not matter the threshold, the resulted Attack and Release data are almost the same. Maybe it depends on the compressor itself, not the measuring plugin.
The measuring is easy: it calculates GR using "max" and "static after attack" level (the same for release - min/static after release level). And then takes 63% (adjustuble) of that GR to measure attack (release) time.
So the results should be threoretically the same for any GR (any threshold/ratio combination) if compressor's attack time is not threshold/ratio dependent. I've seen different behaviour, for example changing ReaComp attack time changes GR. Why?
I suggest using average GR about 10db for measuring. Really the plugin just shows what's going on!
If you think there's something wrong in this logic, please, tell me!
I've just tried what you've mentioned with Oxford Dynamics. Not matter the threshold, the resulted Attack and Release data are almost the same. Maybe it depends on the compressor itself, not the measuring plugin.
The measuring is easy: it calculates GR using "max" and "static after attack" level (the same for release - min/static after release level). And then takes 63% (adjustuble) of that GR to measure attack (release) time.
So the results should be threoretically the same for any GR (any threshold/ratio combination) if compressor's attack time is not threshold/ratio dependent. I've seen different behaviour, for example changing ReaComp attack time changes GR. Why?
I suggest using average GR about 10db for measuring. Really the plugin just shows what's going on!
If you think there's something wrong in this logic, please, tell me!
-
- KVRist
- 302 posts since 28 May, 2011
By the way, there's a github repository for that project (for those, who are interested in how it's made).
https://github.com/ilyaorlovru/cmt
https://github.com/ilyaorlovru/cmt