[PD] array indirection
pkstone at ucdavis.edu
Mon Dec 10 22:44:24 CET 2007
A glorious hack, Jean-Yves! This should work well for what I am
envisioning. One strange thing, though: if you move the subpatch (that
displays the selected array), the other array is visible underneath it.
I wonder what's up with that?
Thanks for the solution, Jean-Yves (and Chuck for suggesting it was
possible in the first place).
Chuckk Hubbard wrote:
> 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.
> On Dec 10, 2007 1:11 PM, Jean-Yves GRATIUS <jygratius at freesurf.fr> wrote:
>> 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 <pkstone at ucdavis.edu> 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
>> 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 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...
>> On Dec 8, 2007 10:26 PM, Phil Stone <pkstone at ucdavis.edu> 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
More information about the Pd-list