SynthLab SDK
SynthEngine Object

As with all of the SynthLab components, the SynthEngine is designed to be highly flexible in your personal application and coding style. The example synth projects will demonstrate the SynthLab paradigm of sharing data and parameters via module constructors and declaring voices statically in a fixed array, one voice per note of polyphony. You may have existing code that creates note event handlers on the fly or uses completely different schemes for data sharing. That is all fine because the voice and engine object's interfacing functions are generalized and require few arguments. If you adhere to using these functions as prototyped, but with your own implementations inside, then they will still fit into the SynthEngine <-> SynthVoice paradigm.

The SynthLab_SDK's source subfolder contains a partially coded SynthEngine object that you can use as a starting template for your own designs. As the central database for the shared databases, the template engine class is preset with those members. It also includes an array of SynthVoice objects, one for each note of polyphony. As with the voice object, you may ingnore my implementations and replace them with your own, and the object can be altered to make an abstract base class so you can create engine objects with the same interfacing functions as the SythLab examples.

After looking at the template code, move to the next section and we will do an example to modify the engine template code and create a monophonic, minimal synth engine that will encapsulate a complete synth. You can use this as a starting point for your own designs, or as a tutorial to help you understand the example synths.

Engine Programming Guide


synthlab_4.png