Hi!
On 21.10.2010 07:17, Mathieu Bouchard wrote:
On Thu, 21 Oct 2010, Martin Schied wrote:
It shouldn't be too hard to do this integration with basic pole / zero objects. A problem using integration only is the lack of mechanical damping. A real speaker goes back to x=0 if no signal is present. A simple integrator doesn't
right. That's why you can't just use [rpole~ 1]. Then, any [rpole~] with a value between 0 and 1 will act as a convolution with an exponential decay function. An integral is a convolution with a constant function, such as exp(0*t).
nice way to look at it. I used the formulation y[n] = x[n]+ a[n] * y[n-1] in the help files and some semi-knowledge about filters...
Because the integral of the exponential decay function is bigger than 1, the result of [rpole~] will have some amount of gain.
- so the 'simulated' cone would just fly away slowly.
That's only in the case where the signal has a DC.
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...)
[rpole~ 0.999] does it very well...
Note that [rpole~] is dependent on sampling rate. So, assuming you have a sampling rate of 44100 Hz, the rate-independent way to do it is :
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!
cheers Martin