SynthLab SDK
SynthLab-DM Examples

The SynthLab_SDK folder contains a subfolder of example DM projects named "dm_projects" with four example DM projects, one for the four main kinds of synth modules: LFO, EG, oscillator and filter. These are also referenced in various locations in the synth book. The projects consist of DM versions of existing ModuleCores in SynthLab so you can quickly learn how to convert any ModuleCore into a DM core.

Each folder contains only two files: synthlabcore.h and synthlabcore.cpp which replace the same named files in a DM project. To use any of them:

  1. create your DM project in Visual Studio or Xcode
  2. copy over the /corefiles/ folder into the new project folder
  3. replace the existing synthlabcore.h and synthlabcore.cpp files with the example DM files
  4. add the whole group of files to the compiler project, build and test

biquad_filters
This is the DM version of the SynthLab object that creates bilinear transform filters. For a nice excercise, add filters from my FX book to fill out the rest of the emtpy module strings to have a massive set of filters for your projects.

  • Note the use of the BQAudioFilter objects from synthbase.h which may be used to implement the more advanced filters from my FX book
  • You can make the update() function more efficient by checking to see if the fc or Q parameter has changed before recalculating the coefficients

fm_lfo
These are interesting LFO waveforms that are a DM version of the existing SynthLab object.

  • these use two and three operator series algorithms (see synth book)
  • you can add many more variations by using small bits and pieces of the larger DX-100 algorithms

fourier_wt
This is a DM version of the SynthLab project that creates and uses dynamic wavetables that are generated at load time, rather than being pre-compiled into the synth as with the others from the synth book.

  • uses the IWavetableDatabase pointer to register its IWavetableSource objects
  • generates the parabola table when the sample rate changes

linear_eg
This EG project is the simplest EG project possible and a good starting place if you want to make your EG from scratch. As a linear modulator, it is somewhat useless for our normal modulations, but may be used for FM operator modulation with good success. It is mainly used as a starter project for a more complex EG.

  • simple finite state machine implementation
  • includes code for sustain and legato


    synthlab_4.png