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.