[PD] [OT] spectral irregularity to measure noisiness (was Re:about fiddle~)
Charles Henry
czhenry at gmail.com
Sat Jan 19 03:38:41 CET 2008
On Jan 18, 2008 11:48 AM, Matteo Sisti Sette <matteosistisette at gmail.com> wrote:
> Also, I may be missing something, but I think your attached patch only
> calculates the product and sum of the LAST TWO bins. Note you use
> [fexpr~ $x[0]+$x[-1]] and [fexpr~ $x[0]*$x[-1]]
> where I would use:
> [fexpr~ $x[0]+$y[-1]] and [fexpr~ $x[0]*$y[-1]]
I don't really know what you two are talking about, but I know what this means.
> [fexpr~ $x[0]+$x[-1]] and [fexpr~ $x[0]*$x[-1]]
evaluates on every pair of samples. You get an output vector that looks like:
(x[0]+x[-1], x[1]+x[0], x[2]+x[1], ... , x[N-1] + x[N-2] )
or
(x[0]*x[-1], x[1]*x[0], x[2]*x[1], ... , x[N-1] * x[N-2] )
Whereas,
> [fexpr~ $x[0]+$y[-1]] and [fexpr~ $x[0]*$y[-1]]
is an accumulator!!! It will just keep growing and growing. Consider
the equations in the following way:
[fexpr~ $x[0]+$y[-1]]
means y[n] = y[n-1] + x[n] for all n
you can expand this by substitution:
y[n] = y[n-2] + x[n-1] + x[n]
y[n] = y[n-3] + x[n-2] + x[n-1] + x[n]
and so on....
suppose we add up terms between arbitrary indexes a and b (could be
more than one block)
y[b]=sum( i = a to b, x[i]) + y[a]
likewise
[fexpr~ $x[0]*$x[-1]]
means y[n] = y[n-1]*x[n]
y[b]=product( i = a to b, x[i]) * y[a]
if y is ever zero, it will always be zero after that...so, to use
this, you would have to seed the values of y using the set y1 command.
I always check this bookmark for reference because I need it all the
time!
http://crca.ucsd.edu/~syadegar/expr.html
Chuck
More information about the Pd-list
mailing list