[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