On Mon, 13 Dec 2010, Jonathan Wilkes wrote:
Jmax Phoenix does this. If I recall correctly it breaks the nested list feature in Gridflow.
Well, it's a bit more complicated. Back then, GridFlow's nested lists were written using braces {}, but they weren't GridFlow's nested lists, they were supported directly by jMax. I had to add the parentheses hack to GridFlow so that I could port it to Pd.
the (pitch * 2) feature of jMax does it with variables only (such as [v]) (or constant-declarations, a jMax-only feature) and I think that this is at creation time only, but I don't recall using it, anyway.
for some reason that I don't remember, the * that is supposed to be a multiplication only within parentheses, was also considered a multiplication sign outside of parentheses, where it was considered to be a syntax error instead of a symbol. This is why I decided to ditch jMax completely and go for Pd as much as possible. (But ditching jMax was going to happen not long after that anyway, as IRCAM cancelled the project, deleted the mailing-list archives, etc.)
But considering your [osc~ (pitch * 2)] example-- what would happen if you change the value of pitch? The value of the [osc~] object's argument is assigned to be the initial frequency only when the object is created, so it doesn't seem like it would have an effect unless you recreate the object.
It's not currently possible to know how to update it dynamically : the creation arguments are only passed to creators (constructors), not assigned in any explicit way to inlets or inlet/message combinations. The first argument is not even consistently assigned to the second inlet.
As an example, if I implemented such a feature in GridFlow,
[# + (pitch * 2)]
Pd would read it as :
$1 = + $2 = (pitch $3 = * $4 = 2)
GridFlow would reparse it as :
$1 = + $2 = (pitch * 2)
But at that point, something is lacking, to say that the second argument is assigned to the second inlet, and that the first argument corresponds to a method named "op" instead.
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC