[PD-dev] representing parent patch levels as args

Hans-Christoph Steiner hans at eds.org
Tue Dec 9 16:18:23 CET 2008

On Dec 9, 2008, at 3:37 AM, IOhannes m zmoelnig wrote:

> Hans-Christoph Steiner wrote:
>> On Dec 8, 2008, at 12:21 PM, Claude Heiland-Allen wrote:
>>> Hans-Christoph Steiner wrote:
>>>> So I am just adding support to canvas_name and window_name for    
>>>> getting the names from other canvases besides the current one,   
>>>> i.e.  parent, toplevel, etc.
>>> OK.
>>>> I am using the now standard numeric notation  that is used in   
>>>> [getdir], iemguts, getdollarzero, etc.
>>> Care to give a brief description of that for those that don't   
>>> know?  I'd be interested in adding something similar to pdlua,  
>>> so  that .pd_lua(x) files can access the path(s) of their  
>>> containing  patch(es), would make sense to have the same numbers.
>> 0 = current patch
>> 1 = parent
>> 2 = parent's parent
>> etc.
>> One question I have is about the behavior when you specific more   
>> levels than exist.  Like [canvas_name 999999].  Should that be an   
>> error, warning?  Should it give the toplevel? nothing?  I am  
>> guessing  it should give the toplevel, with a warning.
> in iemguts it gives nothing and no warning.
> however, you get an implicit, programmatic warning: no result from  
> the object means that the specified parent was illegal.
> it is up to the user to print out an error message.

I think it should give a warning since it is similar to asking for a  
filename that doesn't exist.  Or maybe there should be something to  
represent that it didn't get a result, since it is difficult to test  
to see that nothing happened in Pd while trivially easy to respond to  
events.  This could be a second status outlet or maybe special keyword.

>> Agreed, I think a limited set of names, like "parent", "toplevel"  
>> and  maybe "current" just to make things explicit.  I forgot I had  
>> already  implemented this, except for the "parent" and "toplevel"  
>> part:
> how's that done in tot? iirc something like "."?
> which would give us:
> .
> ..
> /
> but anyhow, i don't see a real reason for "current" and  
> "parent" (but have no strong opinion about the latter; the former  
> seems much like an overkill to me)
> the only useful thing i could think of is "toplevel".
> but then, the concept of "toplevel" is rather alien to me:  
> everything is patches/abstractions. i don't want my patch behave  
> differently just because i have created it as an abstraction within  
> a toplevel patch instead of a toplevel patch itself.
> this is also the reason why i don't fully understand the concept of  
> [declare] yet (roman probably agrees with me here).

Hmm, that's a good point.  Perhaps just the numbers and names are  

> apart from that, i also have an idea to share:
> how about the possibility to modify the parent-dept via arguments.
> something like [canvas_name 2+$1]
> (definitely not this syntax, it's just to illustrate my idea)

> i haven't come up with a real use-case, though...

I think this is a good idea, but should just use standard Pd syntax,  
no need for anything special:

            [2 (
            [+ $1]


> gfmasdr
> IOhannes


Man has survived hitherto because he was too ignorant to know how to  
realize his wishes.  Now that he can realize them, he must either  
change them, or perish.    -William Carlos Williams

More information about the Pd-dev mailing list