Hi,
Two new objects expr~ and fexr~, which are extensions of expr:
You can obtain a version from:
http://crca.ucsd.edu/~syadegar/expr-01-linux.tar.gz
This version has a number of expr bug fixes as well. I'll appreciate hearing about bugs, comments, suggestions, etc.
Shahrokh Yadegari (sdy@ucsd.edu)
The object "expr" is used for expression evaluaion of control data.
Expr~ and fexpr~ are extentions to the expr object to work with vectors. The expr~ object is designed to efficiently combine signal and control stream processing by vector operations on the basis of the block size of the environment. NOTE: Functions in expr~ do not support vectors yet. I am working on that.
The fexpr~ object provides a flexible mechanism for building FIR and IIR filters by evaluating expressions on a sample by sample basis and providing access to prior samples of the input and output audio streams. When fractional offset is used, fexpr~ uses linear interpolation to determine the value of the indexed sample.
The three objects expr, expr~, and fexpr~ are implemented in the same object so the files expr~.pd_linux and fexpr~.pd_linux are links to expr.pd_linux
Here are some syntax information: (refer to help-expr.pd for examples)
Syntyax: The syntax is very close to how expression are written in C. Variables are specified as follows where the '#' stands for the inlet number: $i#: integer input variable $f#: float input variable $s#: symbol input variable
Used for expr~ only: $v#: signal (vector) input (vector by vector evaluation)
Used for fexpr~ only: $x#[n]: the sample from inlet # indexed by n, where n has to satisfy 0 => n >= -vector size, ($x# is a shorthand for $x#[0], specifying the current sample)
$y[n]: the output value indexed by n, where n has to satisfy 0 > n >= -vector size,