Well-done, that looks like the perfect solution. I did notice these functions mentioned in the code, with xmargin and ymargin as arguments of a longer function call, but I hadn't followed up to see what else went in the message. I believe this is your answer, Phil.
Another one for msg-docs, I think. -Chuckk On Dec 10, 2007 1:11 PM, Jean-Yves GRATIUS <[EMAIL PROTECTED]> wrote: > > > 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 > > > _______________________________________________ > PD-list@iem.at 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; > > _______________________________________________ > PD-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > > -- http://www.badmuthahubbard.com _______________________________________________ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list