[PD] [PD-announce] the end of type restrictions
Mathieu Bouchard
matju at artengine.ca
Sat Jul 21 19:59:06 CEST 2007
On Sat, 21 Jul 2007, Thomas O Fredericks wrote:
> In what case do you rely on using [unpack 0 0 0] except for throwing an
> error when it receives a symbol? As it was previously suggested on this
> list, why use anything else than [t a] or [t b]?
Actually, there is one single use for [t f], which has to do with a
distinction that GridFlow needs. Originally, in jMax, a float atom or int
atom was something clearly distinct from a list containing only one such
atom. In Pd, the distinction is supposed to be ignored but Pd still makes
that distinction and GridFlow still uses it because I never thought about
any sensible replacement for it. I have a problem with that
auto-conversion, especially as there isn't much of any other kind of
auto-conversion that ever happens in pd (can you think of anything else
like that?).
> I think Mathieu's end of type restrictions is a great idea. For example,
> if you use Max/Msp every so often, you regularly curse at the useless
> int/float type restriction.
int-vs-float is just a distinction.
An example of a restriction, is to forbid the use of float in an int
context. An example of a useless restriction is to get the user to choose
between "int context" "float context" "symbol context" "pointer context"
in advance because no "any-atom context" is offered.
The int-vs-float distinction is useful because with ints your counters can
go up to 2147483647 whereas with float they can only go up to 16777216,
and yet float can handle things than int cannot.
> Mathieu, you would only need to create a new object that would determine the
> type of the data (unless your new [route] still does this).
The new [route] still does this because it is expected from [route] that
using symbol arguments will match the selector of the message; the basic 5
selectors are: bang, float, symbol, pointer, list. ("anything" is not a
selector, it's the collection of all other possible selectors together)
> For example, I sometimes use [route bang list symbol] to parse data by
> its type when an abstraction has many different "functions" attached to
> the same inlet.
The only way that my type restriction removal may affect normal patches,
is that it will remove a need to use [route] where it was previously used
to work around a restriction; that's an optional change, but I usually
jump at every opportunity to make patches simpler to read, understand,
explain and modify. (supposing that "making a patch less generic" doesn't
count...)
_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada
More information about the Pd-list
mailing list