I've never really seen it as anything but an event flag. A stack of [t b b b b ] so that, as I now understand, I can sequence the evaluation order of my code better. And yes for that exact purpose it rather sucks, because if you want to insert an earlier one you have to move everything. Perhaps the obvious thing that nobody is saying is to change the persistance characteristics of the trigger instance. Have it make a copy of itself which gets used to construct the new one? Wouldn't that be generally useful to be able to insert new parameters in any order for other objects? What are the dangers?
But as for type management, yeah, its definitely a Badthing(tm) right. Better to use inlets and not to build complex datastructures with lists and pointers to be passed about so early in the design. At the moment you sort of have to manage the control parameter layer of a synthesiser yourself, using routes and selects, packs and unpacks to mange control vectors of your own definition. In between goes a layer of type-checking, range limiting with [max]/[min], and stuff like that to make sure all your parameters are where they should be. I'm learning to use datastructures a bit now. Anyway it seems in Pd, perhaps because passing parmeters to subpatches and abstractions isn't formal, and there's not a handy way to wrap the parameters of a block of code, that trigger gets abused.
It's hard to say where exactly the type handling of Pd could be improved without taking the lid off a huge can-o-worms, but I can feel its limitations.
Andy
On Sat, 1 Jul 2006 21:14:10 -0400 (EDT) Mathieu Bouchard matju@artengine.ca wrote:
On Sat, 1 Jul 2006, IOhannes m zmoelnig wrote:
matju convinced frank, that it is a bad idea to have one object do 2 things which are totally unrelated. defining execution order and casting types IS unrelated, therefore it is bad practice (according to matju. and i agree) to use the trigger object for anything else but defining execution order.
Actually, it's not so much that [t] does both ordering and casting, it's that it doesn't even do any casting worth mentioning. Replacing any float by the "symbol" symbol isn't casting, it's a big nothing, it's pure uselessness.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada