Hi,
I have tried to change graph-on-parents settings by message for displaying different arrays, it seems to work..
I did'nt test it with large tables.
(included patch : switchingGOPtables.pd).

Jean Yves Gratius <http://jy.gratius.free.fr>


Chuckk Hubbard a écrit :
On Dec 9, 2007 10:50 PM, Phil Stone <[EMAIL PROTECTED]> wrote:
 
Hi Chuck,

I think you're right; there's no way to avoid the copying.  It's good to
dream, though.  :-)
   

I have done some experimenting, and I think I'm on to something.  If
you create a graph from the put menu, then right-click and select
Open; and then Put an array on the opened subpatch, you can see the
red outline where you can decide what will be graphed-on the parent
graph.

It would not be too hard to send editmode and mouse movement messages
to that canvas to move arrays around inside it; and it probably would
actually be more efficient than copying.  But I also notice that the
graph subpatch has, in its options, an x and y margin, which moves the
red outline.  IF it's possible to change these values with messages,
it could be trivial to move that red outline to cover several
well-placed arrays, meaning that the graph would indeed switch arrays
like you want.
I started to look at the Pd code to see if I can find such a message
mentioned; if I find it I'll let you know.

-Chuckk



 
Chuckk Hubbard wrote:
   
It would be possible, if not CPU-efficient, to have them all hidden in
table objects, and simply use tabread and tabwrite to copy them to the
skeleton array when you want to switch.  You would only need one
tabread and tabwrite pair, just different ways to specify the target
of tabread.
I would envision binding the tab key to page through them.

But it is possible to put several arrays in one graph which makes me
wonder if there might even be a pure GUI way to do it.  Kind of makes
me want to take a look...

-Chuckk

On Dec 8, 2007 10:26 PM, Phil Stone <[EMAIL PROTECTED]> wrote:

     
This probably fits into the category of a wish for PD; I think there's
no way to do it currently, but I'd love to be proven wrong!

I'd like to be able to change the data an array points to rather than
actually change the data in the array.  The scenario which me think of
this is, I'd like to have a display of a currently-selected waveform
(which could be one of many pre-allocated arrays).  It would be
wonderful to have a level of indirection where the display-array can be
given a new address [object reference?] to one of the various
pre-allocated arrays, after which it redraws itself.

I suppose this unleashes all the evils of pointers (multiple references
to memory, etc.), but it would a serious advantage, performance-wise,
for the scenario I'm envisioning.

I also think it would be very cool if arrays could act as buttons...but
that's a different subject.


Phil Stone
pkstonemusic.com


_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list


       


     
   



 



#N canvas 303 9 704 687 10;
#N canvas 0 524 610 502 subpatch 0;
#X obj 201 120 cnv 15 200 150 empty empty empty 20 12 0 14 -233017
-66577 0;
#X obj 200 321 cnv 15 200 150 empty empty empty 20 12 0 14 -233017
-66577 0;
#N canvas 0 0 450 300 graph4 0;
#X array table2 100 float 1;
#A 0 0 0 0 0.0714288 0.157143 0.171429 0.257144 0.314287 0.342858 0.400002
0.457145 0.514288 0.557145 0.600002 0.657145 0.700003 0.714288 0.757146
0.757146 0.771431 0.785717 0.785717 0.785717 0.800003 0.800003 0.814289
0.814289 0.814289 0.814289 0.814289 0.814289 0.814289 0.814289 0.814289
0.800003 0.757146 0.614288 0.514287 0.414287 0.378573 0.342858 0.257144
0.200001 -0.471431 -0.500002 -0.600002 -0.600002 -0.600002 -0.600002
-0.600002 -0.600002 -0.585717 -0.571431 -0.557145 -0.542859 -0.514288
-0.500002 -0.485716 -0.47143 -0.450002 -0.428573 -0.414287 -0.400002
-0.392859 -0.385716 -0.357144 -0.328573 -0.285715 -0.200001 0.114286
0.142858 0.228572 0.242858 0.27143 0.300001 0.314287 0.328573 0.328573
0.328573 0.328573 0.328573 0.328573 0.328573 0.328573 0.328573 0.300001
0.257144 0.171429 0.142858 0.128572 0.114286 0.128572 0.171429 0.228572
0.242858 0.257144 0.257144 0 0 0;
#X coords 0 1 99 -1 200 140 1;
#X restore 200 330 graph;
#N canvas 0 0 450 300 graph3 0;
#X array table1 100 float 1;
#A 0 0 0 0 0 0 0 0 0 0.0142856 0.0571424 0.071428 0.114285 0.157142
0.164284 0.171427 0.214284 0.271426 0.299998 0.35714 0.399997 0.442854
0.471425 0.499996 0.528567 0.557138 0.557138 0.528567 0.499996 0.478568
0.457139 0.421425 0.385711 0.371426 0.35714 0.342854 0.314283 0.285712
0.249998 0.214284 0.195237 0.176189 0.157142 0.0999992 0.0571424 -0.171427
-0.121428 -0.071428 -0.0214284 0.0285712 0.0607138 0.0928564 0.124999
0.157142 0.190475 0.223808 0.257141 0.28095 0.304759 0.328569 0.342854
0.35714 0.371426 0.385711 0.399997 0.414282 0.428568 0.428568 0.428568
0.371426 0.328569 0.257141 0.22857 0.171427 0.157142 0.142856 0.114285
0.0999992 0.114285 0.12857 0.142856 0.164284 0.185713 0.22857 0.249998
0.271426 0.285712 0.299998 0.314283 0.321426 0.328569 0.35714 0.371426
0.378568 0.385711 0.385711 0 0 0 0 0;
#X coords 0 1 99 -1 200 140 1;
#X restore 200 130 graph;
#X coords 0 -1 1 1 200 170 1 200 100;
#X restore 71 139 pd subpatch;
#X obj 61 534 s pd-subpatch;
#X text 31 432 this controls graph-on-parent;
#X msg 157 496 donecanvasdialog 1 -10 1 0 -1 1 1 200 170 200 300;
#X msg 157 460 donecanvasdialog 1 -10 1 0 -1 1 1 200 170 200 100;
#X text 64 370 message format :;
#X text 189 372 donecanvasdialog <X units per pixel> <Y units per pixel>
<graphOnParent> <X range from> <Y range from> <X range to> <Y range
to> <x size> <y size> <x margin> <y margin>;
#X text 480 477 <- click here to switch;
#X text 145 598 from help/manuals/pd-msg/1.msg_and_patch/0.all_msg.pd
;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to