Signal class objects pass signals (e.g., audio signals) to one another in a specific way. Here is an example configuration of signal class objects:
Consider the connections as an analogy to a river. Signals are created upstream and flow downstream. Connections between signal classes are made by connecting an object to the upstream object. The SoundFileOut class in the diagram above is in the furthest downstream position. The DownSample class is upstream from the SoundFileOut class, but it is downstream from the WhiteNoise class.
If a signal class is derived from the Generator class, don't worry -- there is nothing to do. Generator classes are always the furthest possible upstream that is possible, so no connections can be made by them.
Like a river, a signal stream can have any number of tributaries. The following example demonstrates this property of synthesis classes:
For the above example, the SoundFileOut object is the furthest downstream, and it has two tributaries -- one from the Add object called addLeft and one from addRight. The two Add objects in turn have two tributaries each.
An important difference in the analogy to the river is feedback -- unless you have happen to have an Escher River
The flow diagram for a one-pole filter show below is possible to create with the three signal classes: Add, Scale, and Delayline. Actually, the Delayline class will not even be needed due to an important property of digital feedback: The a feedback will involve automatically a one sample delay.
The above flow diagram can be implements with basic signal classes as: