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