# [PD] Feedback discussion

Mathieu Bouchard matju at artengine.ca
Tue Sep 15 22:00:09 CEST 2009

```On Tue, 15 Sep 2009, Derek Holzer wrote:

> as you probably discovered, you need to use a send~/receive~ pair or
> other type of one-block delay to make any kind of feedback in Pd

You don't need it to be one block...?

> For one, feedback in the digital realm is never instantaneous,

Instantaneousness is a myth. It does not exist in nature. If you ever
wondered why computer clock speeds stopped increasing recently... well,
that's the reason. but in the audio world, in which everything is in kHz,
you wouldn't notice that often, because the scale of hearing is much
larger than the scale of signal propagation.

> because no code can compute it's output using that exact same output as
> its input (discrete/sampled time).

Use Mathematica. You will find out that it can figure out simultaneity
equations using algebraïc manipulation, which is a digital-only concept.
The only way you can compute actual instantaneous equations in analogue
gear is if you use your analogue gear to build enough digital gear to be
able to run Mathematica. But for audio, a straight mapping of signal
theory might appear instantaneous in almost all cases... due to scale.

> In the analog realm, as in real life, things can and do simultaneously
> affect each other (continuous time).

This analog realm, just like this real life, are completely foreign to the
physics of the last 100 years.

> This makes sense since a filter is in fact a small feedback system of
> it's own which cancels out or reinforces various phases of a wave!

Not all filters are feedback systems... for example, [rpole~] uses
feedback, but [rzero~] doesn't.

> So this was the second turn-off from digital feedback systems--that I
> couldn't always rely on them to work!

Ow, I don't know how you can rely on your analogue gear to work... I
suppose you keep room temperature very close to constant, and you put the
whole thing in a huge faraday cage, etc. One big reason for using digital
gear is that it's so much more predictable.

> Most filters or delays in Pd, for example, throw a "nan" error at that
> point and the signal chain breaks down.

If it does a NaN in the digital realm, it does a NaN also in signal
theory, which means it does a NaN in Maxwell theory, which means Maxwell
theory can't explain it, yet something happens. Therefore Maxwell theory
is at least a bit off from the real world, and so this is another example
of why you shouldn't confuse signal theory and real world.

I figured this out in grade 13 when they showed us Maxwell equations and
there were derivatives of things like resistance, but while you plug a
wire, the resistance changes suddenly, and this causes a NaN in the
derivative, and Maxwell theory offers no way to figure out what will
happen at that time. Obviously, the teacher and the book both conveniently
worked around those hurdles by ignoring them... provided no-one asks how
to compute the voltage of the spark that comes out by plugging a certain
wire in a certain circuit.

> Frank Barknecht posted a waveshaper to do soft clipping somewhere in the
> archives once, that might be an interesting patch to look at, since what
> it does is gradually "taper off" values as they approach the max/min
> values, instead of "hard clipping" them as the [clip~] object would.

I mention [expr~ tanh(\$v1)] rather often (?), and I'm not the first one to
use it. I suspect that it's rather close to how capacitors saturate, but
still somewhat off... (I think I recall capacitors saturate more like
negative exponentials...)

_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801
```