To add a new synthesizer, follow these steps:
-
Make sure the synthesizer is supported by DawDreamer.
-
Add its path to the
.envfile, e.g.,NEW_SYNTH_PATH=/path/to/new/synth/vst3. -
Create a file under src/data/synths/ that defines the synthesizer as a tuple of
SynthParameterinstances.- Use src/data/synths/another_synth.py as a template.
- Use src/utils/synth/get_synth_parameters.py to auto-generate parameter descriptions (then double-check).
-
Add additional arguments for each SynthParameter instance if desired (see src/utils/synth/synth_parameter.py and existing synthesizers for examples). These are used to constraint the sampling process used to generated synthetic presets.
-
Register the synth:
- Add the python module for the new synthesizer to the package under src/data/synths/__init__.py.
- Add the synthesizer name
- to the list of supported synthesizer names in the
PresetHelperclass definition in src/utils/synth/preset_helper.py, and - in the
SynthDatasetclass definition in src/data/datasets/synth_dataset.py.
- to the list of supported synthesizer names in the
-
Create a configuration file under ./configs/export/synth for the synthesizer specifying the parameters to exclude. The excluded parameters will be set to their default values during sampling and will not be fed to the preset encoder.
-
Once the datasets have been generated, files in the following configuration folders need to be added depending on the need (see existing synthesizers for examples).