I’m curious if there is any tutorial or more resources for utilising Feedback in SuperCollider.
I really like the idea of UGens like LocalIn, LocalOut or InFeedback or all of the cool stuff that comes with the Feedback quark, but I always struggle to work out something interesting beyond playing with the concepts that are written in the documentation.
Feedback is one of the things that ive found very enjoyable working with analogue synths or no-input-mixing-boards and where my SuperCollider experience has come seemingly short, but its propably just my lack of proper knowlege on how to work with it.
Does anyone have more resources or can point me in some direction where i could find some?
I’m not very experienced with feedback, but one thing with analog modules and mixing boards is that there’s always noise in the system, whereas scsynth’s resting state is pure silence (0.0). So maybe part of the trick is to inject some low-amplitude noise into the chain in a few strategic places. Also introduce non-linearities (soft clipping e.g. tanh, or some third-party analog-modeling plugin suites might have fancier types of distortion).
(Btw I am more familiar playing with feedback digitally, and have found maybe a similar confusion when trying to use feedback in e.g. analog modular - I think maybe because digital feedback necessarily introduces a small delay, and/or as James says doesn’t inherently involve noise or irregularity, the intuition feels totally different)
– relatedly, be aware that when using feedback your control block size can really matter for the sounds you’re getting – the same patch at 64 sample block size vs 1 sample block size could sound completely different, because one feedback loop is delayed 64x as long as the other – or you can use Fb1 from miSCellaneous quark for single sample feedback no matter the block size at the expense of performance
In my limited understanding this small feedback delay is also why it is so hard to make a good virtual analog filter…
There is a great book for Max MSP which delves into the rich possibilities which open when you have access to the previous sample, which would be what is known as feedback in the analog domain: Generating Sound and Organizing Time | Cycling '74
But as already mentioned, most digital synthesis framework such as Max or SC do not work on a single sample basis but operate in sample batches for efficiency reasons. It is still possible to circumvent this restriction by trading performance and convenience via gen~ in Max or via Fb1 of the fabulous miSCellaneous_lib, which also offers a great introduction in its docs.
While I re-implemented most of the Cycling74 book in SuperCollider I also relied on FOS | SuperCollider 3.13.0 Help and SOS | SuperCollider 3.13.0 Help
Having access to the latest sample allows to think in deviations in time instead of generation through UGens. This is how one can think of differential equations, which is also implemented on the basis of Fb1 via Fb1_ODE | SuperCollider 3.13.0 Help , which I found is a never-ending pool of inspiration and interesting sounds.