yes, now it makes more sense. that could be very sexy, as besides all the interesting ideas, it would be possible to have a only-graphical version of Pd running, for people who are only users. it might not be very practical for cases where canvases have more than a certain number of scalars (I have some with a couple thousands), but very nice for other issues.

João

When you create an abstraction, you basically save a patch that is a template for all instances of the abstraction which you will create later. [f $1] gets filled
in with the first arg, [symbol $2] with the second arg, and so on.

With my idea, you create a scalar that has an associated canvas (similar to an abstraction), and that canvas has access to the field values for that scalar.

Example: let's say you have [struct foo float y symbol blah canvas bar], and have a subpatch [pd bar] that is a template for the field "bar" which is just a canvas. So when you create a scalar foo, that scalar has a y variable-- which is a float; a blah variable-- which is a symbol; and a bar variable-- which is a canvas. Imagine a hypothetical object inside that scalar's canvas called [getmy y], and when you bang it you get the y value associated with _this_ scalar. Now imagine
this inside bar:

[getmy y]
|
[mtof]
|
[osc~]
|
[catch~ bus]

Now if you instantiate 16 scalars, each one of them has an associated oscillator that gets its pitch from that scalar's y value. In other words, each scalar also has a canvas that holds within it the means to produce sound from the y value
that you see.

I'm just assuming here that [getmy] would work like the outlet of [struct]-- that is, it sends out a message when the y value for that scalar is updated. (Or alternatively
when it is banged.)

Better yet, imagine using "foo" as the template for another struct as in the following:
[struct container float x float y array z foo]

Now you can create/destroy voices in an oscbank using [setsize]! Of course I'm skipping over lots of details, like you'd still have to rebuild the dsp graph, and how loadbang would or woudn't work when you instantiate a scalar with a canvas field,
etc., etc.

Hopefully some of that makes sense.

-Jonathan


João



--
Friedenstr. 58
10249 Berlin (Deutschland)
Tel +49 30 42020091 | Mob +49 162 6843570
Studio +49 30 69509190
[email protected] | skype: jmmmpjmmmp

_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to