[PD] GUI and DSP
Jonathan Wilkes
jancsika at yahoo.com
Thu Feb 9 00:03:31 CET 2012
----- Original Message -----
> From: Ivica Ico Bukvic <ico at vt.edu>
> To: Mathieu Bouchard <matju at artengine.ca>; Jonathan Wilkes <jancsika at yahoo.com>
> Cc: "pd-list at iem.at List" <pd-list at iem.at>
> Sent: Wednesday, February 8, 2012 3:33 PM
> Subject: Re: [PD] GUI and DSP
>
>
>
> Mathieu Bouchard <matju at artengine.ca> wrote:
>
>> Le 2012-02-08 à 11:55:00, Jonathan Wilkes a écrit :
>>
>>> While technically correct that's misleading because there's a
> lot of
>>> stuff happening on the 'pd' side that a reasonable person would
>> assume
>>> to be handled on the 'pd-gui' side. Well, more than that--
> there's
>>> stuff happening on the 'pd' side that doesn't need to
> happen at all,
>> but
>>> it can use massive amounts of CPU and consequently a reasonable
>> person
>>> gets dropouts when moving an array that has only 100 points visible
>> and
>>> erroneously thinks, "Wow, I get dropouts just moving some polygons
>
>>> around on the screen? Tk stinks!"
>
> Or you could simply use pd-l2ork and a move arrays and other complex graphical
> user interface objects using tags and never worry about that problem again.
But even in pd l2ork, if you have a million element array with 100 elements showing,
every time you click-drag a point in the array 'pd' recalculates the relationship between
points/elements for the _entire_ array, right? At least that's what the code in g_array.c
looked like it was doing when I last looked at it.
If I understand it correctly, the 'pd-gui' waits for that c code to loop through the entire array before
it updates-- thus if you swoop the mouse through the entire array it may look like a
sluggish redrawing on Tk's part when actually it's redrawing just fine once it gets the
new coords, which takes time (and can cause dropouts).
That's a purposely exaggerated example, as it doesn't make a lot of sense to draw a
100-point garray that represents a 1000000-element array. But it makes me wonder
whether the "strobing" effect you get with a ds-array that has a lot of elements
happens because of similar heavy processing on the c side of things.
Has anyone tried to make a big polygon with lots of moving parts purely in tcl/tk and
measured the cpu? Might help to see Tk's limits separated out from pd.
-Jonathan
>
>
>> Besides, you could save some cpu, ram and bandwidth if all those array
>> floats were hex-encoded instead of dec-encoded. Don't use "%g"
> nor "%d"
>>
>> when you can use "%x" and similar... especially fixed-width %x
> such as
>> "%04x".
>>
>> If Tcl had fast base64 support (like Perl/Ruby), the difference would
>> be
>> even bigger. And it would bigger with the ability to send binary data
>> (which can't happen now because "}" counts as end-of-block).
>>
>> ______________________________________________________________________
>> | Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal,
>> QC_______________________________________________
>> Pd-list at iem.at mailing list
>> UNSUBSCRIBE and account-management ->
>> http://lists.puredata.info/listinfo/pd-list
>
>
> Ivica Ico Bukvic, D.M.A
> Composition, Music Technology
> Director, DISIS Interactive Sound & Intermedia Studio
> Director, L2Ork Linux Laptop Orchestra
> Assistant Director, CCTAD
> Virginia Tech
> Department of Music
> Blacksburg, VA 24061-0240
> (540) 231-6139
> (540) 231-5034 (fax)
> disis.music.vt.edu
> l2ork.music.vt.edu
> ico.bukvic.net
>
More information about the Pd-list
mailing list