SynthLab SDK
SynthLab-DM Synths

The SynthLab example synth projects, and their pre-compiled SynthLab-DM variants are all based on the Engine Architecture and Voice Architecture. All projects share the same fundemantal voice architecture shown in Figure 1 with only very minor differences. The only major difference across all six synth projects is in how the quad oscillator block is defined. Most other aspects of the synth architectures are consistent across the set for the articulation controls (EG and LFO) and filters. However, there are some major differences with the DX and WS synths with regards to the oscillator controls and modulation matrixes along with a completely new GUI control panel in the WS synth.


Figure 1: SynthLab common voice architecture

The SynthLab-DM examples are pre-compiled to let you use them immediately and see my example implementations using the SynthLab SDK. The six example synths can be roughly broken into four (4) groups:

  1. SynthLab-WT, -VA, and -PCM: these three all share identical GUI control names and their GUI's are interchangable
  2. SynthLab-KS: only differs from group 1. regarding the naming of the common oscillator controls and (for my implementation) the variable names regarding the KS algorithm components; the GUI is similar to the WT/VA/PCM synths except for the use of sliders for the exciter's EG control
  3. SynthLab-DX: this FM example synth has a very different set of controls per FM operator that includes added sliders for the operator EGs
  4. SynthLab-WS: the wave sequencing synth has a very different interface for programming the sequencer and has two wave-sequencing oscillator blocks rather than four discrete oscillators; a wave sequencing oscillator can be thought of as eight (8) independent oscillators whose outputs are crossfaded in a pair-wise manner

Modulation Matrix

The details of the modulation matrix are in the synth book and all synths share the same (fundamental) modulation matrix. The synth book details the use of "unique modulation destinations" for each oscillator along with the reasoning for grouping oscillator destinations as "123" and "4," to accommodate musicians who often dedicate one oscillator (number 4 here) as a sub-oscillator or noise oscillator, in which case modulation may be enabled separately; it also decreases the size of the matrix.

The following pages will introduce you to each synth and explain any interesting GUI controls or underlying cool features.

SynthLab Example Guide