[PD] Feedback discussion
derek at umatic.nl
Tue Sep 15 13:03:18 CEST 2009
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 to
avoid the dreaded "DSP loop detected" error. Filters, delays,
waveshapers and other things can affect the signal along the way.
But to be honest, doing feedback-systems was the main thing that got
*away* from using computers, and more into using hardware (analog
filters, oscillators, waveshapers, etc). For one, feedback in the
digital realm is never instantaneous, because no code can compute it's
output using that exact same output as its input (discrete/sampled
time). In the analog realm, as in real life, things can and do
simultaneously affect each other (continuous time). For my longer (and
more philosophical) explanation, check here:
And secondly, feedback-systems sound completely differently in the
digital realm than in the analog realm, where the saturation of
different op amps or transistors in combination with the less-than-ideal
analog waveforms creates interesting, "unpredictable" timbral and/or
rhythmic effects. These non-linear effects are far more attractive to me
than the absolute precision or total "randomness" of most computer
synthesis, and this moved me away from using Pd for sound synthesis
(versus using it for sample manipulation, where it truly excels) and
more towards analog modular synthesizers. Some people like apples, and
some people like oranges...
In Pd, unlike in an analog system, saturating some object usually
results in it "blowing up", i.e. all values are maximum or minimum. Most
filters or delays in Pd, for example, throw a "nan" error at that point
and the signal chain breaks down. If you read "The CSound Book", you
find that "blowing up" filters was one of the biggest problems in that
particular language. 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! (At least that's my analog-world understanding of it,
DSP math wizards are welcome to correct me on this one...) So this was
the second turn-off from digital feedback systems--that I couldn't
always rely on them to work!
Creating Pd patches which could possible mimic analog saturation might
involve using lookup tables with transfer functions based on those
sampled from op amp or transistor clipping. But that's a hell of a lot
more math than I've ever been interested in ;-) 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. The
resulting distortion of the signal may sound "warmer" or "more analog"
than a hard-clipped, aliased digital distortion, and put in the right
place it *might* prevent an object after it from "blowing up".
Some other objects to explore would be [fdn~] (feedback delay network)
and [xfm~] (cross-frequency modulation), both in the creb library. Be
warned that the author's documentation can be cryptic however!!!! The
"Mondriaan" abstraction provides a novel GUI for [xfm~]:
For artistic inspiration, I would highly recommend Kevin Drumm's
"Imperial Distortion" CD, which was composed using very simple filter/EQ
feedback loops. Raphael Toral's "Aeriola Frequency" and "Cyclorama Lift
3" CDs also use a "no input" technique of delays and equalizers, as do
all of Toshimaru Nakamura's famous "No Input Mixer" recordings (although
he uses a digital delay looper extensively to create rhythmic patterns).
Jerome Covington wrote:
> I'm interested to know who's been working with feedback, and if anyone
> has any patches they've developed, or that others have developed that
> they think is exemplary.
::: derek holzer ::: http://blog.myspace.com/macumbista :::
---Oblique Strategy # 87:
"Imagine the music as a moving chain or caterpillar"
More information about the Pd-list