[PD] smoothing things ...

IOhannes m zmoelnig zmoelnig at iem.at
Tue Jul 26 16:00:23 CEST 2005


Thoralf Schulze wrote:
> Hi Johannes, hi list,

> I'll try to reformulate my problem: I need a filter
> that interpolates control signals in real time.
so it comes to not filtering a signal (~) but rather a stream of float 
messages.
then you have more control and are able to do things like "set <x>"

> Ideally, this filter would be self-adopting in a way
> that it could be fed with control data that are a)
> non-predictable and b) come in in varying intervals
> and that it (the filter) would still output smooth
> curves. Another prerequisite is that the filter is
> able to recognise parameter jumps that exceed a
> certain threshold and doesn't interpolate these jumps.
> I realise that this is probably impossible to
> accomplish.

no; it should be pretty simple.

>>a simple non-linear (IIR) low-pass filter is
>>x[n]=a*x[n-1]+(1-a)*y[n]
>>(with 0<=a<=1)
> 
> So this would basically be lop~ , but not in the
> frequency domain?

actually it is a [lop]; like [lop~] it works in time-domain and has an 
effect on the frequency domain.
"frequency" and "time" domains are not exclusively bound to signals~.


> I'm a bit confused about the y[n],
> shouldn't that be x[n] as well?

not really, but what is "x" and what "y" might be a bit confusing.
x[n] is the output of the filter (at time "n") and y[n] is the input of 
the filter.

what it does is: to calculate a new output value, take the last input 
value and the last output value and do some weighted averaging.

attached is a [lop]-abstraction and a demo-patch that shows that it is 
working.





More information about the Pd-list mailing list