I'm having fun working through Andy Farnell's "Designing Sound" book and have run into this as well. Farnell writes about using rzero~ for "differentiation" - the opposite of integrating a signal. I've gotten similar results using a hipass filter at 0.999 Hz. Is there a more exact equivalent for rzero~?
The pd help file says this about rzero~:
"rzero~ real one-zero (non-recursive) filter, raw
Rzero~ filters an audio signal (left inlet) via a one-zero real filter, whose coefficient is controlled by a creation argument or by an audio signal (right inlet).
The action of rzero~ is: y[n] = x[n] - a[n] * x[n-1]
where y[n] is the output, x[n] the input, and a[n] the filter coefficient. The filter is always stable.
Here's an rzero~ abstraction based on the filter equation given in the PD help patch. Seems to work fine. rpole~ can't be built as an abstraction since it's a recursive filter. I tried wrapping it in a poly~ set to vs 1, but it didn't work properly.
Very helpful! biquad~ is the way to go. It's been a good exercise for me to build these filters from the ground up (with delay~, +~, etc.). Now it makes perfect sense to me how zeroing a1, a2 and b2 causes biquad~ to function as a single pole filter. Thanks!