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:
http://blog.myspace.com/index.cfm?fuseaction=blog.view&friendID=8000634&...
and here:
http://blog.myspace.com/index.cfm?fuseaction=blog.view&friendID=8000634&...
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~]:
http://alberto.zin.googlepages.com/puredata
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! D.
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.