[PD] GUI toolkits and custom GUIs WAS: Integra Live 1.5 released

Jonathan Wilkes jancsika at yahoo.com
Sat Jan 26 04:30:46 CET 2013


----- Original Message -----

> From: Bill Gribble <grib at billgribble.com>
> To: Jonathan Wilkes <jancsika at yahoo.com>
> Cc: Lorenzo Sutton <lorenzofsutton at gmail.com>; "pd-list at iem.at" <pd-list at iem.at>
> Sent: Friday, January 25, 2013 10:05 PM
> Subject: Re: [PD] GUI toolkits and custom GUIs WAS: Integra Live 1.5 released
> 
>T he case you describe is the easy one, once you introduce any kind of lexical 
> hygiene.  Names in use in a patch bind closely to the patch or scope in which 
> they are used, so there's no danger of escapes from a patch just because its 
> being used within another patch. 

So inside [blah] let's say I have this:

[r foo]
|
[print I_don_t_want_bob_to_trigger_this]

I share my [blah] abstraction with Bob, who creates a [blah] instance in the same
patch where he has

[Click here to start my thing(
|
[s foo]

I suppose I don't know what "lexical hygiene" means.  But I think you have to have
a way to explicitly state that "binding symbol foo applies to >this< canvas and all
of its children, but not to any parents".  Do you have a way to do that without using
the $0 kludge?

There are also use cases for "binding symbol foo applies to all instances of
>this< abstraction", and possibly "all instances of abstractions from >this<
libdir" (though the latter may be overkill).

-Jonathan

> 
> At the same time, references to names that can't be resolved in the local 
> scope do bubble up, so you can have more global names if you need them.
> 
> Thanks,
> Bill Gribble
> 
> On Jan 25, 2013, at 21:27, Jonathan Wilkes <jancsika at yahoo.com> wrote:
> 
>> 
>> 
>> 
>> 
>>  ----- Original Message -----
>>>  From: Bill Gribble <grib at billgribble.com>
>>>  To: Jonathan Wilkes <jancsika at yahoo.com>
>>>  Cc: Lorenzo Sutton <lorenzofsutton at gmail.com>; 
> "pd-list at iem.at" <pd-list at iem.at>
>>>  Sent: Friday, January 25, 2013 7:55 PM
>>>  Subject: Re: [PD] GUI toolkits and custom GUIs WAS: Integra Live 1.5 
> released
>>> 
>>>  On Fri, 2013-01-25 at 15:21 -0800, Jonathan Wilkes wrote:
>>>>>  From: Bill Gribble <grib at billgribble.com>
>>>>>  I am working on a pd-clone intended to explore a lot of the 
> topics in
>>>  this 
>>>>>  thread.  It's not fully baked yet -- the biggest working 
> patch is
>>>  a biquad 
>>>>>  filter designer with pole-zero and freq response plotting -- 
> but
>>>  I'm 
>>>>>  particularly excited about the approach to namespacing and 
> scope
>>>  management, 
>>>>>  which works a lot like hc describes.  Patches have a set of 
> scopes
>>>  which can be 
>>>>>  mapped onto subpatches (represented as layers, not separate 
> windows). 
>>>  Name 
>>>>>  resolution in send/receive elements works like you would want 
> it to.
>>>> 
>>>>  How does scope work for abstractions?
>>> 
>>>  Well, every object in a patch has a name.  To find that object, the 
> tree
>>>  of patches and scopes is crawled upward from the site of the lookup. 
> For
>>>  example, the (equivalent of) [s "foo"] first looks in the 
> scope of the
>>>  [s], then the patch-global scope of the containing patch, then in the
>>>  application global scope for the name "foo". 
>>> 
>>>  Dotted notation can drill down, so [s "foo.bar"] would try to 
> find an
>>>  object named "foo", then find "bar" in its 
> patch-global 
>>>  scope (or an
>>>  object named "bar" within a scope named "foo" in 
> the current 
>>>  patch). 
>>> 
>>>  Does that make sense?
>> 
>>  I don't think I understand it.
>> 
>>  Let's say I have abstraction [blah].  I want [s foo] and [r foo] inside 
> [blah] and
>>  all of [blah]'s children to talk to each other.  Then I want to share 
> my abstraction
>>  with Bob who needn't worry about the send/receive names I used inside 
> [blah]
>>  because they are guaranteed not to conflict with anything he does outside 
> the
>>  scope of the [blah] abstraction (e.g., creating a [s foo] on the same 
> canvas where
>>  a [blah] object sits).
>> 
>>  Can I specify the scope of the s/r symbol in this way?
>> 
>>  Jonathan
>> 
>>> 
>>>  Thanks,
>>>  Bill Gribble  
>>> 
> 



More information about the Pd-list mailing list