ok, so I hit a mysterious shortcut that sent the message when I was trying to type the "~" sign. Please allow me to continue.

==============

request 2:

A wrap function like [pong~] or [zexy/wrap]. 

I'm actually frustrated that "fmod" behaves in way that you cannot loop between a specified range when you feed it negative values.

For example sending -3.1 to [expr fmod($f1, 10)] gives -3.1, and I wanted 6.9

I have been using fmod in a few patches for this purpose, but I need to do things like [expr if($f1 < 0, 100 + $f1, fmod($f1, 100))] - not the most elegant thing.

This is more like the behaviour of the [mod] object in vanilla, send -3 to [mod 10] and you get 7

This way you get an actual "loop" behaviour. I'd really be happy for an alternative to fmod that would work that way, but we could go further and have a new function where you specify the minimum and maximum values, like [pong~] or [zexy/wrap]. So it would take 3 arguments, (input, minumum boundary, maximum boundary).

I think it is important to maintain the expr family of objects and even expand it now that Pd Extended is not in the picture anymore. I believe this raises the importance to add new features to Pd Vanilla, not to mention things like libpd...

cheers

2016-02-14 22:03 GMT-02:00 Alexandre Torres Porres <porres@gmail.com>:
Ok, I don't think I was able to get the new version working, anybody else did?

This might be too late in the game, I know, but if you're including features, I have some requests.

In [fexpr~], I find it would be good to set a starting value for the current sample input, you could set this via a set message and that would overwrite the signal input for that sample. 

You can now set just about any previous samples, but no current.

I see you'd need to create a new syntax for this, something like "set in1 0.4" (to set x1[0] to 0.4)

I really need this for some applications where I'm using fexpr~ as signal accumulators/counters

=========

A wrap function like [pong]

2016-02-05 23:36 GMT-02:00 Shahrokh Yadegari <sdy@ucsd.edu>:
Dear All,

Attached is a pre-release of Expr 0.5 compiled for Mac os x (compiled on 10.9) and Linux (compiled on an older Cent OS). I have also attached Alexandre's big pd patch which listed the issues, with my comments.

Hopefully I have addressed most of the issues that were brought up and now I am working on a more complete documentation of Expr objects. One open issue is that expr still supports no more than 10 expressions.

I have provided a mechanism for local variables and abstraction substitutions ($0 and $1, $2, etc.) to work. Also, one hopefully useful new feature in V0.5 is the assign  '='  operator. Now you can use expr to assign to "value"s and into arrays. So if you have a variable called 'count'

"value count"

"expr count = count + 1"

will implement a counter, raising the value of count with every "bang"

You can also change values of arrays through the usual syntax.

"expr array1[5] = $f1"

will set the sixth value (counting zero based) of the array "array1" to the incoming float value on inlet 1.

I will write a more informative and comprehensive release notes along with the documentation when I pass the sources to Miller. However, I have made a few changes to the parser and I am looking for alpha-testers who can run the code and let me know if any bugs are found, specially in parsing of complex expressions. 

I look forward to hearing from whoever uses these objects. Please let me know if you find any bugs. (NOTE: you need to create the links for expr and fexpr~ to get the new version for those as well.)

cheers,
Shahrokh