Signal Class Hierarchy

Synthesis classes are derived from three virtual classes: Signal, Generator, and Filter. All synthesis classes are derived from the Signal class which contains declarations of functions that are present in all derived classes and which will be used to communicate between the various derived classes. The most important of these functions are:

No new derived classes can be directly derived from the Signal class. Instead there are two virtual classes intended for this purpose. The classes to inherit from are the Generator and Filter classes.

There is no significant difference between the Generator and Filter classes. The Generator class was created solely for didactic purposes. Generator-derived classes are intended to create signals out of the blue, while Filter-derived classes are intended to take in one or more inputs, then output modified signal(s). Also, parameter values can be treated as signals in Filter classes, while in Generator classes, all parameters must be sent to the object as function calls. For example, to start outputing a soundfile signal, the SoundFileIn must be called with the function setFile. Filter classes could act like Generator classes if no upstream connections are made in instances of the Filter-derived class.