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