[PD] GUI toolkits and custom GUIs WAS: Integra Live 1.5 released
Jonathan Wilkes
jancsika at yahoo.com
Sat Jan 26 04:11:44 CET 2013
----- Original Message -----
> From: Billy Stiltner <billy.stiltner at gmail.com>
> To: Jonathan Wilkes <jancsika at yahoo.com>
> Cc: Bill Gribble <grib at billgribble.com>; "pd-list at iem.at" <pd-list at iem.at>
> Sent: Friday, January 25, 2013 9:43 PM
> Subject: Re: [PD] GUI toolkits and custom GUIs WAS: Integra Live 1.5 released
>
> Here's how I've managed to send and receive from a parent(multi
> instance) abstraction to multiple instances of nested sub
> abstractions.
I'm talking about doing it without the constraint of having to prepare
the child abstractions beforehand with an argument that contains
a dollarsign variable. Passing unique identifiers around to simulate
scope is really painful. In fact I was going to write some trivial tcl
example code here to show how clunky the $0 approach would be,
but I can't even imagine what it would look like.
-Jonathan
>
> within main abstraction [mainAb]
> some data named $0var send it like this [s $0var]
>
> initialize sub abstractions
> pass names X_1 and X_2 in so you can send and receive data to these
> abstractions individually
> [abX X_1 $0] [abX X_2 $0]
>
> within sub abstraction abX initialized with X_1
> $1 = X_1
> $2 = mainAb's $0
>
> for all instances of abX
> to receive from main's [s $0var]
> [r $2var]
>
> to to send and receive locally and have mainAb access
> within abX [s $2$1varZ]
> within mainAb [r $0X_1varZ] and [r $0X_2varZ]
>
> a way to get global data to sub abstractions of abX
> within abX initialize [abY $2var]
> within abY $1var = mainAb $0var
>
> This information is useful say if you have multiple voices and want to
> have them share the same control
>
> so say $0var is a send on a filter frequency slider
> when you move the slider all instances of abX receive the new filter frequency
>
> when you want information to or from a specific instance of abX say
> like you want to plot each of the voices outputs on a scope
> use [s~ $2$1varZ] in abX
> then in main [r~ $0X_1varZ] and [r $0X_2varZ] then you can write those
> to a table so you can see which voice is sounding
> On Fri, Jan 25, 2013 at 9:27 PM, 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
>>>
>>
>> _______________________________________________
>> Pd-list at iem.at mailing list
>> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
More information about the Pd-list
mailing list