How-to guide on managing Presets

Is there a tutorial or any docs on managing presets with iPlug2? Especially with an eye toward serializing and deserializing arbitrary data along with each preset.

Presets are essential and easily misunderstood, so I think many beginners just starting with plugins would benefit from this.

Yeah I’d be interested in that too? I also wanted to ask what the state of serialisation currently is, as the FAQ mentions it hasn’t been finalised yet? Is it safe to create presets yet?

My current plugin will have its own sub-preset system (ie. for smaller groups of parameters) so I can extend that for developing presets if the serialisation code still needs work.

I will try and put something together


hi, any updates here? i am super interested in this topic as well

Hi montag, I don’t know if this may help you (3 years later), I don’t even know if this is the way to go. Anyway, I arrived here looking for a guide on creating factory presets.
Looking at the code, I could create VST3 factory presets that are working on Reaper/Windows.

In IPlugVST3_Defs.h I added a the following define:

  #define VST3_PRESET_LIST

In my plugin’s header I declared the number of presets

const int kNumPresets = 2;

Then in the plugin’s constructor I created the presets after declaring the params.

//... declaring params
  GetParam(kStereoLink)->InitBool("Link Channels", false);
  GetParam(kLookAhead)->InitBool("Look Ahead", false);

  // Factory Presets
  // Params in order: kGain, kRatio, kThreshold, kAttackMs, kReleaseMs, kStereoLink, kLookAhead
  MakePreset("Bass Attack", 6., 5.4, -20., 30., 300., true, false);
  MakePreset("Kick Drum Sustain", 6. , 2.5, -20., 10., 50., true, true);

Hope it helps somebody. If my response is wrong or out of the subject please let me know and I’ll delete it.