To avoid confusion, I should probably say some things about how the patch actually works ...

Most importantly, I decided to only use complex filters and to arrange them in conjugate pairs to get real valued outputs at every stage within the cascade of elementary filters. Shortcuts as used in [vcf~] (a one-pole complex filter) aren't possible in this kind of implementation. To get the result corresponding to its left outlet (= real output), you would have to place a (real) zero right in the middle between the two (complex conjugate) poles etc.

The patch allows to use up to six (pairs of) poles or zeros, which may be either real or complex. If less poles or zeros are used, the coefficients of the unused filters are simply set to zero (just as the conjugate poles or zeros are set to zero for the real elementary filters).

By the way: In an earlier version of the patch, I also graphed the phase response of the filter, but I dropped that very soon because I thought this wouldn't be too helpful anyway.

Now for the use: The key control options are explained in the patch itself. Apart from that, you can click and drag the poles and zeros or specify each of its five parameters using the number boxes (values are rounded according to the graphic resolution of one hundredth).

The radii of all poles an zeros are clipped to guarantee stability.

Well, that's about it, I guess.

Bug reports or hints at unexpected behaviour are, as always, very welcome!

]]>To avoid confusion, I should probably say some things about how the patch actually works ...

Most importantly, I decided to only use complex filters and to arrange them in conjugate pairs to get real valued outputs at every stage within the cascade of elementary filters. Shortcuts as used in [vcf~] (a one-pole complex filter) aren't possible in this kind of implementation. To get the result corresponding to its left outlet (= real output), you would have to place a (real) zero right in the middle between the two (complex conjugate) poles etc.

The patch allows to use up to six (pairs of) poles or zeros, which may be either real or complex. If less poles or zeros are used, the coefficients of the unused filters are simply set to zero (just as the conjugate poles or zeros are set to zero for the real elementary filters).

By the way: In an earlier version of the patch, I also graphed the phase response of the filter, but I dropped that very soon because I thought this wouldn't be too helpful anyway.

Now for the use: The key control options are explained in the patch itself. Apart from that, you can click and drag the poles and zeros or specify each of its five parameters using the number boxes (values are rounded according to the graphic resolution of one hundredth).

The radii of all poles an zeros are clipped to guarantee stability.

Well, that's about it, I guess.

Bug reports or hints at unexpected behaviour are, as always, very welcome!

]]>Works flawless in in Pure data vanilla ]]>

Unfortunately, I didn't know about ELSE back then. As you probably know, it has frequency response and pole-zero plots as well, and there's also a section about the Z-plane in the wonderful live-electronics tutorial. In fact, these are the main reasons, why I decided to update my patch.

So the new version of my pole-zero diagram has two additional features: First, you can now switch between linear and logarithmic scaling of both amplitude and frequency, and second, I added some examples of standard filter types, so that you can also see the effect of changing a filter's parameters on the positions of its poles and zeros.

I hope this may be helpful for some of you. If something's wrong with the patch or the filter examples, please tell me!

]]>