|
| WaveWarp 2.0 Example DrawingBoard

NonAlgebraicLoopEducationalExample2
Description
This seemingly trivial example demonstrates how WaveWarp handles feedback connections and avoids algebraic loops.
(see also NonAlgebraicLoopEducationalExample1.dwb").
NOTE: THIS DRAWINGBOARD WILL NOT RUN IN THE DEMO VERSION SINCE THE OUTPUT FILE
FUNCTIONALITY HAS BEEN DISABLED.
At face value, this Drawing Board appears to contain an "algebraic loop" which is the term given to a feedback network
which has a feedback loop consisting of a sequence of blocks which all have direct feedthrough. In this simple but
instructive example, the output of the "Simple Summer" block is connected to one of its inputs. At face value, the
difference equation of this system would be (where "k" represents the sample instance):
output( k ) = input ( k ) + output ( k )
This is a clear example of an algebraic loop where an equation must be solved to determine the correct input-to-output
relation for a given time k. In fact, this simple example has no solution for non-zero input.
Not all algebraic loops are degenerate like this example. Generally, however, they are rather more complicated requiring
nonlinear (and generally iterative) equation solvers at each time step.
Since such solutions are computationally intensive, and since audio applications don't generally require systems with
algebraic loops, WaveWarp AVOIDS THEM COMPLETELY by simply inserting an implicit unit-delay at each feedback
connection. In other words, the internal WaveWarp representation of the above system has the following difference
equation:
output( k ) = input (k) + output (k -1 )
This is no longer an algebraic loop, and can simply be propagated in time without the need of an equation solver.
Thus, for an input sequence given by [,1,2,3,4,5...] the output sequence would be [1,3,6,10,15,...] etc. This is
precisely the result produced by WaveWarp as can be seen by running the DrawingBoard and inspecting the files
"input1to10.txt" and "output.txt" with a text editor.
It is important to note that WaveWarp's insertion of an implict delay into any feedback connection leads to a slight loss of
generality when constructing DrawingBoards. However, this is generally not important for audio applications though the
user must exhibit some caution when building DrawingBoards with feedback since "what you see" is not exactly "what you
get" in terms of difference equations.
Components used:

|
|