A couple of weeks ago I posted some audio and code examples of a software matrix mixer I made with SuperCollider. I thought a post going into some detail about feedback and how to code it may be of help to those new to the concept as a creative tool, or to using it within SuperCollider. Lets first start with some basics of a feedback circuit.
The necessary components of a feedback system (the bare bones) are an input source (some sound, if only line-level hum) and an independent loop with a gain control. Check out the diagram below.
The feedback loop can be accomplished in a number of ways. If you have ever used a mic in an auditorium (or been to school for that matter) you have already probably experienced feedback in the form of a high-pitched squeal. The microphone picks up your voice, is routed to a mixer, is amplified (gain) and played out the room speakers. The sound coming out the speakers is then picked up by the mic in addition to your voice. The squeal occurs when the amplitude of the input signal (your voice plus the amplified version coming back over the speakers) is loud enough that with each cycle the overall gain increases. Cut the amplification out to the speakers and the squeal stops. The quality of the feedback (the frequencies amplified) have to do with the microphone’s resonant frequencies in combination with a lot of other factors (room size and resonance, quality of the audio gear being used, whether the signal is balanced or unbalanced, matching or mismatched impedance, etc.)
In the mixer feedback post I did a couple weeks back, the input signal was the inherent noise of the analog mixer with gain applied at each stage of the 4-stage feedback loop. In any analog system there is always noise present because of the nature of electrical circuits and the power required to make them work. The same is not true for purely digital (software) feedback systems so some generated sound input signal is necessary.
Below is some very simple SuperCollider codez to demonstrate this simplest of feedback loops and a recording so you don’t have to run the code. If you do run the code in SC, be careful when moving the mouse to the right of the screen. As you approach 1, the feedback loop will become increasingly loud until at 1 and beyond, it becomes exponentially loud until things break. (And by ‘things’ I mean your speakers and/or eardrums and/or the SC server :P) In the recording below, i just move the mouse to the right to “max out” the feedback loop, then drop back after it maxes out.
[scribd id=44493355 key=key-2gt9tpfxnsvnuhduz56r mode=list]
Here is another version with a simple half-second delay built into the processing section. Note that this rids us of the ear-piercing noise that occurred in the above example. In the recording I’m moving the mouse to the right, then back and forth across the screen to make a more interesting texture. I then just let it build up with the mouse all the way to the right.
[scribd id=44493356 key=key-52rcy8s3huiuh1g0h68 mode=list]
The next two examples are of slightly more interesting feedback circuits. In the first version I have fixed the gain at 1.1 so it the sound eventually reaches saturation and does not return. I’ve removed the limiter and replaced it ‘.clip’ which squares off the wave form resulting in audible distortion of the signal. I have also added a random line generator ‘speed’ to control some aspects of the sound, the resonant frequency of a low pass filter and the delay time.
[scribd id=44541139 key=key-1vrgufamawp8iy204dja mode=list]
Here is a version that uses the built-in mic and adds some cheesy panning.
[scribd id=44541142 key=key-2klar39vbqaz5624zm7y mode=list]
While these samples are a few steps away from being art, they show the power of possibility lurking in feedback circuits. The truth of synthesis is that, with a few exceptions, the more intricate (complex) a sound is, the more realistic and better it sounds. Adding a feedback loop to a sound introduces a few more layers of complexity and can have beautiful as well as destructive results.
If you are interested in hearing some truly excellent feedback music, check out the work of David Tudor. The complexity of his circuits is both astounding and elegant, and the sonic results are really fantastic.
Viva la feedback!