Implementing Preset Models

This morning I took a stab at resolving the import/export/copy/paste program issue I mentioned previously. The issue here is what to do if you export or copy a program in one preset model and try to import or paste it to a plugin with a different preset model setting.

In the end I took a fairly simple approach to it:

  1. When you export or copy a program, regardless of which preset model you have selected it copies three sets of data: the program data, the bank data and the parameter set data.
  2. When you import or paste a program, depending on the selected preset model it loads one of the three saved data sets and ignores the others.

The only down side to this is when importing to a plugin in “parameter set” preset mode it will only ever import the parameters and not the underlying plugin settings but I find that preferable to accidentally overwriting settings that the user has explicitly stated should be shared across presets. If you really want to import all the preset settings and not just the parameters you can still do it via a native preset file (ie: a .fxp file).

Note this also applies to the “Undo Program Changes” while in Parameter Set mode - it only ever undoes the parameter changes and not any other plugin settings.

Assuming I don’t find any fundamental problems while testing, this finishes preset model support. However, I’m not going to release it yet as I want to sit on it until the VST 3 work is finished just in case I need to make further changes.

Next up is more testing and then I think I can pop the development stack and return to Revisiting VST 3.

2 Likes