Hi, I've started using the resonant low pass filter lp2~, and I am having problems with the sound. When 'interpolation time' is set to zero, I get a loud click when I sound a note, this changes to a metallic sound when the value is set high, but the filter also tales a lot longer to react to the filter envelope I have hooked up to it.
Does anyone know why this is, and what exactly does the interpolation time of the filter do?
thanks
-
Lp2~ interpolation time?
-
The interpolation time is how long it takes for the filter parameters to update. So if it's set to 200 ms, and you change the cutoff frequency, it will glide to the new frequency over 200 ms. It's meant to make it more efficient when calculating coefficients. You'll probably never want it to be zero, especially if you're modulating the parameters at all. It will just give you zipper noise.
-
cheers, I had a feeling it might be that.
Do you know why it makes a little metallic-shimmer sound at the beginning and end of the sound? It ranges from a click at 0ms to a metal sound at 500ms.
Thanks -
I can't think of why, and I can't seem to make it happen. Can you post a simple patch that does it?
-
Yeah, thanks
You have to hit the messages 187 and 800 at the top first. I've also included a table of the output, which seems to still be moving when the envelope sends 0 -
Oh, I know what you're talking about now (I thought maybe you were referring to the transient response). Yeah, I've always hated that about the IEM filters. There's always some noise when you modulate the cutoff. I think it's just a bad implementation. It seems to me that it only samples the interpolated value at the beginning of the block, and holds that value throughout the block instead of gliding to the next one. If you set the filter inside a subpatch with [block~ 1], it works fine. But that's also ridiculous and you shouldn't have to do that. It's one of the reasons I made that biquad abstraction I posted earlier. Otherwise, I would use those filters more often.
-
I might have a look at putting it in a subpatch and see how it goes.
Yeah, I had a go with the one you wrote, but I ended up tying myself in knots, so I decided to go down the simpler route, even though I will eventually work out how to use that one, I just had trouble with my equation calculations.
I still can't understand why there aren't some simple resonant filters built in to Pd, only non-resonant
oh well... -
There are externals in ggee such as [lowpass], [highpass], etc. that calculate biquad coefficients. They appear to be based on Robert Bristow-Johnson's cookbook. They've got their own bit of weirdness (why it uses bandwidth instead of Q for filter resonance is beyond me), but they work alright. You can use those to run the abstraction I posted, as in the attached.
I've been working on a number of filter objects, which I eventually plan on posting here sometime soon. They're still pretty inefficient right now, though.
-
Thanks a lot for that, I'll give it a try tomorrow
The filter cookbook is what I was trying to use to calculate the co-efficients for your abstraction, but I don't think I was doing it properly, I'm still trying to get my head around the seemingly simple difference between signal and message inlets.
thanks -
Not sure if it's what you are looking for but there are few objects in the rjlib (https://github.com/rjdj/rjlib/tree/master/rj) that allow you to compute filter coefficients for different filter types e.g:
[u_lowpass] [u_bandpass] [u_highpass]
You can set the frequency and Q and it will output a set of coefficients that can be used with [e_beequad] (clone of [biquad~])
-
i think it is really annoying that there is no easy way of dling the files from github
and i'm too lazy to install a repository clientpd redefining mathematics |expr fact(0)|==0