Fb1 - An interface for single sample feedback and feedforward in SuperCollider
The class Fb1, contained in miSCellaneous_lib, an extension of SuperCollider (SC), enables single sample feedback and feedforward with arbitrary block sizes. This is made possible by an iterative application of the defining relation in the SynthDef (instrument) graph, a method suggested by Nathaniel Virgo. While alternative approaches exist, e.g. by setting SC server's block size to 1, Fb1 provides a clear interface: the relation, which describes the calculation of subsequent samples from previous samples, is passed via an SC Function (the capital indicates the SC object) with the two arguments 'in' (feedforward) and 'out' (feedback). Consequentially, difference equations of linear filters can almost directly be taken over in the syntax, in which they are described in standard DSP literature. Because any operators can be written in the Function, non-linear filters and totally irregular feedback / feedforward setups can also be explored. Further options include arbitrary look-back depths and multichannel sizes, which allow complicated setups with a few lines of code. In August 2019 the class Fb1_ODE for integrating resp. audifying ordinary (systems of) differential equations with initial values in realtime was added to miSCellaneous_lib v0.22. It is based on Fb1 and will be described in more detail in a separate paper.