How to implement presets in VST3/App builds?

Hi iPluggers, I’m still learning iPlug2 and though I:

  • Read about VST3_PRESET_LIST & made sure it’s defined in my build (using #ifdef’s)
  • Tried to build test presets (no parameters change for now only the preset name changed) like MakePreset(preset_names[i].c_str(), 0); // preset_names is persistent for safe c_str() calls
  • kNumPresets is >1 in all my tests

I still can’t see/use them in my DAWs.

Is there a doc and/or an example that features plugin presets?

Hi, I’m also a beginner in iPlug2.

I believe you did the same as me, but maybe in this response you can find a clue How-to guide on managing Presets - #5 by danielsacco

The first thing to point out is that not all DAWs support VST3 plugins with “baked in” presets. Wavelab is one and there are others. Check your plugin in Reaper and see if the presets show up.

Second, the “PRESET LIST” has to be included in the Win Props file (not #def) like this:

`<EXTRA_ALL_DEFS>IGRAPHICS_NANOVG;IGRAPHICS_GL2;VST3_PRESET_LIST</EXTRA_ALL_DEFS>`
2 Likes

Thanks to both of you for your responses,

I did read the danielsacco thread too and I believe I did it right, but RexMartin2 made me understand that I need to learn more about VST3 and iPlug current UI components & limitations probably too.

I think I can develop my own preset model data and them connect them to a gui then in future to midi bank & program changes without using a full VST3 implementation after all.
Or I can use the VST3 impl partially and then build my own UI around it.

After fixing a wav loading bug in NAM, my motivation is to now add preset handling too.
I have implemented a new preset class as well as unit tests and code all working and also preprocessor code (no UI yet) that allows to save presets and then minimal UI loads them in a feature branch I started here:
feature-presets.

Now I’m thinking that I need a preset UI element which could be minimal and consist of:

  • a text field (the current preset name)
  • two arrow buttons (prev / next)
  • a popup menu user clicks on the text (at first could be a one level flat menu then could show later a tree of presets files).

Such a composite UI component does not seem to exist in iPlug2 for now so I guess I have to develop it?

Check out the NAMFileBrowserControl, which is an evolution of the “PresetManager” Controls in this file: https://github.com/iPlug2/iPlug2/blob/master/IGraphics/Controls/IVPresetManagerControl.h