[PD] Feedback discussion

Derek Holzer derek at umatic.nl
Tue Sep 15 13:03:18 CEST 2009

Hi Jerome,

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 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).

Good luck!

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 ::: 
http://www.vimeo.com/macumbista :::
---Oblique Strategy # 87:
"Imagine the music as a moving chain or caterpillar"

More information about the Pd-list mailing list