[PD] Data structures - delete specific scalar?

Roman Haefeli reduzent at gmail.com
Sat May 19 23:23:23 CEST 2018

On Sat, 2018-05-19 at 17:00 +0200, Ingo Stock wrote:
> On 05/19/2018 11:56 AM, Roman Haefeli wrote:
> > Yeah. It's not very elegant and gets expensive pretty quickly. I
> > was
> > wondering about alternative strategies, like moving non-used
> > scalars
> > out-of-the-way and later re-use them. It's cumbersome to implement,
> > but
> > probably less drastic than the clear-all-and-rebuild method. 
> Can only answer to this: There are several methods to make scalars
> invisible. Anyhow, in my experience the method to clear the subpatch
> and
> recreate everything works quite well and is imho the clean approach
> to
> do it, as all the scalars are redrawn every frame any way.
> There are other limits to the use of data structures. Depending on
> your
> computer, when you get above 800 scalars or so, the patch becomes
> laggy.

Thanks for your considerations. That is exactly the kind of info that I
was looking for. I don't share the experience with the limit of 800,
though, but this is presumably related to the computer/CPU.

> Consider the attached patch:

Nice and illustrative example patch.

>  On load 1050 scalars are created, which is
> already quite heavy on my computer. 

I'm not sure I understand correctly. Just having the patch open is
heavy on your box? Or interacting with it?

> Anyhow, deleting a scalar by
> clicking on it works fine, using the clear and redraw method.>>

It works fine for me, too. Then I measured the time it takes to redraw
different numbers of squares. It seems computation time is roughly
proportional to the number of redrawn objects (1: 0.08ms, 500: 3.9ms,
1000: 7.6ms). So there is a penalty of this method with larger numbers
of scalars.

> Hiding scalars by making them invisible doesn't help with the lagging
> problem. Therefore i would recommend the clear and redraw method any
> day. ;)

I don't experience any lags by making specific scalars invisible. It
takes 0.007ms to make a single scalar invisible within a subpatch of
1050 squares. See my modified version of your patch.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: scalar-hide-demo.pd
Type: text/x-puredata
Size: 45088 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20180519/591ee80a/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20180519/591ee80a/attachment-0001.sig>

More information about the Pd-list mailing list