# [PD] overdriven speaker

Mathieu Bouchard matju at artengine.ca
Fri Oct 22 03:10:41 CEST 2010

```On Fri, 22 Oct 2010, Martin Schied wrote:

> yeah, but this is often the case when messing things up in pd. I tried
> rpole~ 1 with sinewaves first which worked as integrator, but already
> had different results for the output of rpole~ if the wave started at 0
> or pi/2 (which is logic, but I didn't think about it first...)

um, yeah, the amount of DC is rather relative to where you start looking,
and where you stop (or where you're at so far). That's why I used things
like [rpole~ 0.99] to force it to recentre around 0 rather quickly.

>         lop's gain compensation = 1 - 0.999 = 0.001
>         rpole's gain to compensate for = 1/0.001 = 1000
>         cutoff frequency = 0.001*44100/2π = 7.019
>         therefore use [lop~ 7.019] with [*~ 1000] (in any order)
> I thought about lop~ doing similar things too, but didn't know what lop~
> is doing and I'm sure I wouldn't have figured it out in any reasonable
> time this morning. thanks!

Ah, I also think that you'll like to know that the total weight of an
input sample in [rpole~ a] can be written like this :

k = a^0 + a^1 + a^2 + a^3 + a^4 + ...
but
a*k =     a^1 + a^2 + a^3 + a^4 + ...
therefore
k-a*k = a^0 = 1
k*(1-a) = 1
k = 1/(1-a) is how the gain of [rpole~] is computed above.

I attached my [lop2~] abstraction, which is a rpole~-version of [lop~],
with a signal-rate right-inlet. I posted it some time ago.

_______________________________________________________________________
| Mathieu Bouchard ------------------------------ Villeray, Montréal, QC
-------------- next part --------------
#N canvas 465 194 328 107 10;
#X obj 191 26 samplerate~;
#X obj 7 45 *~;
#X obj 7 64 rpole~;
#X obj 7 26 inlet~;
#X obj 7 83 outlet~;
#X obj 49 26 inlet~;
#X obj 50 45 expr~ \$v1*3.141593*2/\$v2;
#X obj 49 64 expr~ 1-\$v1;
#X text 57 82 signal-rate [lop~] by Mathieu Bouchard 2010;
#X connect 0 0 7 1;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 4 0 2 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 0 2 1;
#X connect 8 0 3 1;
```