[PD] biquad~ with elementary filters [was: Re: dinosaurs ...]

martin brinkmann mnb at martin-brinkmann.de
Sun Sep 21 18:55:19 CEST 2008


Damian Stewart wrote:

> [shrug] i don't even know what a 'zero' is.

a (probably a little too simple) explanation:

a zero is a valley. its depth is 0 on its deepest
point. a pole is a very (very,very,...) high
mountain. both things exist on the complex plane
(just a plain, where all points have 2 coordinates,
like any map)

you can design filters by placing (defining a pair of
coordinates) poles and zeros within the unit circle
(a circle with radius==1 around the origin (center)
of the complex plain). the frequencys from zero to
samplerate/2 are wrapped around the upper half of
the unit circle. when you cut along this line through
your 'landscape', the profile is the same as the
graph on your filter/eq plugin.

for example the peak-filter from the pd docs is just
a 'mountain' and a 'valley' which are moved on circular
pathes with a certain distance to the unit circle.
the closer the 'mountain' is to the unit circle, the
higher the peak (on the circular profile-cutout).
the frequencys coressponding to this spot are boosted.
the position on the path (or the angle) defines the
frequency.

so it is possible to make filters with the cpole/zero
objects, without knowing too much (or anything at
all...) of the math involved.

the only problem i still have, is the gain-factor.
while this is easy to overcome with 'static' filters
(just scale the filters input or output until it is loud
enough/stops clipping), i have not yet found a method
(that works without thinking (and more important:
computing) too much) for time-variable-filters.
ok, a table would do the trick, but thats not elegant
at all...

bis denn!
	martin




More information about the Pd-list mailing list