Hi,
On Mon, 24 Apr 2023 at 07:15, Hairi Vogel (airi) <
hairi...@gmail.com> wrote:
> I ' ve been working a lot with PraxisLive and it is marvellous.
> It took quite some paradigm shifting in my mind, to work with this architecture. It feels more like analog electronics than digital-data-processing. GOOD:
Glad you're liking it! :-) And glad the paradigm shift works for you.
It was certainly initially inspired by working with patching
environments that mimicked analog electronics, but wanting to be able
to re-code their components.
> I did a lot of coding that actually works very well. A way to keep states of components and recall them via animations, and some 30+ components (video processing, shaders, control modules) that conform to this.
> I would like to contribute this work to the PraxisLive community, but I do not know how. It works well but the code is not all cleaned-up yet.
Depending on whether they're most useful as reusable components or as
examples of ways to do things, then contributions are welcome to
https://github.com/praxis-live/templates
https://github.com/praxis-live/components
Releases of these repositories are what get downloaded from the start
page and added to the projects and components menus.
They haven't been updated in a little while, unfortunately. NetBeans
is taking up the majority of my time at the moment (which will benefit
PraxisLIVE too), and the time I have is concentrated towards v6.
> There are some flaws and questions, mostly minor, and I list them for you:
>
> - Property which is declared as @Type.Integer responds to .type().toString()
> with "Number", why that ?
Because the underlying type system used in messaging only has Number.
There were a variety of reasons for doing this. Properties expose a
flag that they will convert the input to an integer - similar to mix,
max, etc. ... which of course leads to the same issues as ...
> Q: is there a way to get the min, max, def values used in declaring, back from the Property ?
Short answer, at the moment, no. As with most things in PraxisLIVE,
there's a complicated way around this! :-)
What's your use case? There may be other ways to do it.
> - the layout of a graph is not consistent through saving/loading. Components move.
That's concerning. I haven't noticed this myself. Some code in the
loading UI changed in the last release to give visual feedback on
loading - I wonder if this is causing an issue for you.
> - the Property show all feature is not consistent through interface stops. It used to be in the previous version of PL.
Yes, it looks like the above change might have broken this. Will look into it.
> - the GUI feature performs some odd auto-formatting and does not respond to edits in the cell parameters of items. No way.
The GUI feature has not had any work for a while! I might look to do
something else in v6. It uses MigLayout underneath which does
occasionally do some interesting things!
You should be able to move the cells of UI items by using the arrows
in the toolbar, or the arrow keys. I never did get around to drag and
drop.
> During intensive live-programming I managed to crash PL in different ways. It never crashed during normal use (without hacking code or shaders live).
Well, hacking code and shaders is normal use! :-)
> - When working on shaders it happens that the shader freezes. Stopping and restarting the hub solves this every time.
This can be an issue, and can be a bit GPU driver reliant.
> - stopping all hubs does noit free the memory on my GPU. It stays used and starting again just adds the memory needed to the part already used before. So sooner or later the interface becomes slow, because the GPU memory is full. Cleaning the project resolves this issue, frees the GPU memory. My patch is rather large and it takes minutes to build it, so this is a drag.
>
> - I only discovered the GPU-memory hog now, so I am not sure if it is the reason for other crashes:
> - sometimes all output windows close. the relative hubs stay on and cannot be stopped if not by cleaning/building. Once only even the IDE froze.
Hub? Roots / patches? All output windows?
I'm not sure if we're using the same terminology exactly.
Do you have more than one video patch / window in the same project?
That can definitely cause issues if not handled carefully due to the
design of Processing.
> in a P3D component when using a switch statement, it defaults to throwing an AssertionError. That crashes the patch for sure.
In Java code? I can't replicate this. Can you share a bit more?
> I collected some crash dumps and put them in a file I attach.
Well, it seems to be crashing in the GPU driver. At the moment, not
sure more than that.
> All the best from Zürich, Switzerland. Keep rocking.
Thanks, and all the best from Oxford, UK. :-)
Neil