Blue Cat's Plug'n Script 3.3 Released - DSP DIY Summer?
-
- KVRist
- 316 posts since 28 May, 2011
I would be glad to, yet I couldn't make a simple demo that crashes with default skin. I'll keep trying though.
Today I thought, maybe it happens like this: code in KUIML_WIDGET adds <ACTION_TRIGGER ... async="true" /> and then KUIML_WIDGET content gets reloaded (maybe when the event was scheduled to run but not yet executed). And when the event is finally executed the KUIML_WIDGET content has already changed, so it crashes.
How do think, can it be a possible reason?
Today I thought, maybe it happens like this: code in KUIML_WIDGET adds <ACTION_TRIGGER ... async="true" /> and then KUIML_WIDGET content gets reloaded (maybe when the event was scheduled to run but not yet executed). And when the event is finally executed the KUIML_WIDGET content has already changed, so it crashes.
How do think, can it be a possible reason?
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 6345 posts since 8 Sep, 2004 from Paris (France)
You should indeed avoid mixing several async tasks with stuff that reloads the skin. In this case there is no way to control the flow of events. But you could for example make sure that all your async tasks have been completed before re-loading the content of the skin. This cannot be done on the skin engine side because it could break the order of calls (which is currently guaranteed to be sequential), and we don't know what your scripts contain
.
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 6345 posts since 8 Sep, 2004 from Paris (France)
By the way, idle refresh priority is the default - using "normal" with cpu intensive stuff may freeze the GUI of other plug-ins when used in the same DAW, so it should be used with care (I actually do not use anymore in any of the Blue Cat Audio plug-ins because of that).
-
- KVRist
- 316 posts since 28 May, 2011
While trying to make a crashable example in the default skin (luckily I failed at that), I came to the conclusion that the problem was in how my skin was initially loading the custom ".kuiml" body (it was doing it asynchronously on window.onload). Probably it was not the safe way to do that. I've reworked that part to load ".kuiml" a bit later and synchronously, and now the crashes seem to be gone.
Thanks again for patience!
Thanks again for patience!
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 6345 posts since 8 Sep, 2004 from Paris (France)
Reloading a skin is already asynchronous (behind the scenes), so it is indeed not a good idea to play with async actions at the same time. Async is mainly useful when you want to make sure that the action is triggered after everything else has been updated in the model. It is very rare that you actually need it (but hey, I know who you are, you are probably the exception
).
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 6345 posts since 8 Sep, 2004 from Paris (France)
It's exactly the same as in the GUI. Persistent data will be saved in both presets and session unless they are locked (using the metadata.lock attribute): in this case they are only saved into session, nit in presets.
-
- KVRist
- 316 posts since 28 May, 2011
Gathering a small beta-testers team for the upcoming release of a Plug'n Script based plugin.
Here are some screen shots: If you want to help with testing, contact me!
ilya@letimix.com
Here are some screen shots: If you want to help with testing, contact me!
ilya@letimix.com
You do not have the required permissions to view the files attached to this post.
-
ericbridenbaker ericbridenbaker https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=200163
- KVRer
- 29 posts since 5 Feb, 2009
I have a question about creating scalable GUI's.
In the default xml, I changed scalable to "true", and the skin and screw decorations scaled accordingly, but the knobs disappeared and my png decorations stayed the same size while stretching.
I haven't had much luck adding the svg I made in Inkscape to the Letimix skin decorations, but it seems to like png. Is it just a problem with the Inkscape svg format?
Also, would the knobs need to be animated svgs also?
Thanks,
Eric
In the default xml, I changed scalable to "true", and the skin and screw decorations scaled accordingly, but the knobs disappeared and my png decorations stayed the same size while stretching.
I haven't had much luck adding the svg I made in Inkscape to the Letimix skin decorations, but it seems to like png. Is it just a problem with the Inkscape svg format?
Also, would the knobs need to be animated svgs also?
Thanks,
Eric
Last edited by ericbridenbaker on Tue Aug 25, 2020 1:10 pm, edited 1 time in total.
-
- KVRist
- 316 posts since 28 May, 2011
Eric, hi! If you're using Letimix Skin, the question is probably mostly for me.
1) If you mean that you're using LM Skin and you've set <MAKE_RESIZEABLE enabled="true"
then you should know, that it's experimental/new and oriented towards custom .kuiml mostly and not well tested with "auto-layouts" yet as well as with decorations. So for now I would suggest you use the default "zoom" icon for GUI resizing, and I will do some more investigation into "resizeable" thing some time later. Basically, I've just tested that it's possible with KUIML, but hadn't done much tweaking yet for it supporting everything. Resizeable controls are in my todo list.
2) Considering svg for decorations - I haven't tested that, true. Used only with bitmaped decorations. Added it in my todo.
3) (this is more to Blue Cat, but I think I can answer) Yes, by default the knobs use stripes both for PNG and SVG sources. I never used SVG striped knobs, I prefer in-skin-drawn knobs, like the ones starting with "LMR_" (you can open Skin Scanner in LM Skin and see available knobs there).
1) If you mean that you're using LM Skin and you've set <MAKE_RESIZEABLE enabled="true"
then you should know, that it's experimental/new and oriented towards custom .kuiml mostly and not well tested with "auto-layouts" yet as well as with decorations. So for now I would suggest you use the default "zoom" icon for GUI resizing, and I will do some more investigation into "resizeable" thing some time later. Basically, I've just tested that it's possible with KUIML, but hadn't done much tweaking yet for it supporting everything. Resizeable controls are in my todo list.
2) Considering svg for decorations - I haven't tested that, true. Used only with bitmaped decorations. Added it in my todo.
3) (this is more to Blue Cat, but I think I can answer) Yes, by default the knobs use stripes both for PNG and SVG sources. I never used SVG striped knobs, I prefer in-skin-drawn knobs, like the ones starting with "LMR_" (you can open Skin Scanner in LM Skin and see available knobs there).
-
ericbridenbaker ericbridenbaker https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=200163
- KVRer
- 29 posts since 5 Feb, 2009
Thanks Ilya, that clears things up for me. Will experiment more with the zoom icon.
-
- KVRist
- 316 posts since 28 May, 2011
KUIML question to Blue Cat Audio:
Is PARAM_ANIMATOR attribute `duration_ms` accessible? I'd like to be able to adjust in realtime the speed (smoothness) of animation, and right now it says (`Unknown identifer. Object doesn't exist`) when trying to display (or change) value of `my_param_animator.duration_ms`
Strangely enough, `my_param_animator.refresh_time_ms` is accessible and works fine.
The manual says they are both exposed since v. 1.7
BTW is PARAM_ANIMATOR a TEMPLATE that combines TIMER and some scripts? I've made my own, but it would be interesting to see its implementation, if possible!
Is PARAM_ANIMATOR attribute `duration_ms` accessible? I'd like to be able to adjust in realtime the speed (smoothness) of animation, and right now it says (`Unknown identifer. Object doesn't exist`) when trying to display (or change) value of `my_param_animator.duration_ms`
Strangely enough, `my_param_animator.refresh_time_ms` is accessible and works fine.
The manual says they are both exposed since v. 1.7
BTW is PARAM_ANIMATOR a TEMPLATE that combines TIMER and some scripts? I've made my own, but it would be interesting to see its implementation, if possible!
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 6345 posts since 8 Sep, 2004 from Paris (France)
You can indeed use SVG for knobs too (any type of image can be a svg file). It just needs to be in a filmstrip format.ericbridenbaker wrote: Tue Aug 25, 2020 12:41 pm I haven't had much luck adding the svg I made in Inkscape to the Letimix skin decorations, but it seems to like png. Is it just a problem with the Inkscape svg format?
Also, would the knobs need to be animated svgs also?
SVG support is limited to simple svgs (style sheets are not supported for example). If you are using Inkscape, exporting as "Optimized SVG" should work most of the time. Just open the file in a text editor to check that there is no css (you may otherwise have to transfer the style attributes in the elements themselves).
-
ericbridenbaker ericbridenbaker https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=200163
- KVRer
- 29 posts since 5 Feb, 2009
Thanks! Didn't realize that css could be embedded in an svg. Sorry for the delayed reply, I got busy for awhile but look forward to checking this out.Blue Cat Audio wrote: Thu Aug 27, 2020 7:53 amYou can indeed use SVG for knobs too (any type of image can be a svg file). It just needs to be in a filmstrip format.ericbridenbaker wrote: Tue Aug 25, 2020 12:41 pm I haven't had much luck adding the svg I made in Inkscape to the Letimix skin decorations, but it seems to like png. Is it just a problem with the Inkscape svg format?
Also, would the knobs need to be animated svgs also?
SVG support is limited to simple svgs (style sheets are not supported for example). If you are using Inkscape, exporting as "Optimized SVG" should work most of the time. Just open the file in a text editor to check that there is no css (you may otherwise have to transfer the style attributes in the elements themselves).