Get the current preset name

How should a VST3 host get the plugins current preset name?

In VST2 this was effGetProgramName

It depends. If the plug-in has a program preset parameter of the root unit, you can use its parameter ID to query the edit controller for the string representation of the current value of it. If the plug-in does not have such a parameter then it does not support it and you have to remember the name of the vstpreset you used to set the state of the plug-in.

None of the examples has presets or did I completely miss that? Could you confirm?

Thanks for the info

In reality though, the common usage scenario is that the user selects the preset inside the UI of the plugin. Most plugins have their own preset management. so it seems VST3 doesn’t offer a solution for this?.

Couple examples of why host would want this info:

  • If the host has a ‘save slot’ type option, where the user can save an instrument/fx preset you want to be able to suggest a meaningful filename
  • when displaying a slot name in the host UI, preset name can be more useful.

Ideally id like to see the ability to get the current preset name, but also get a ‘current product display name’ (the latter being useful for content based product such as Kontakt/Reaktor where the instrument name from the users perspective is the name of the loaded content and not the name of the plugin).

The mda JX10, DX10, Piano and ePiano examples have it implemented.

See Presets & Program Lists - VST - Steinberg Developer Help for how VST3 host and plug-ins should handle presets and program lists.
And as a host developer you should also read about Complex Plug-in Structures / Multi-timbral Instruments - VST - Steinberg Developer Help.

Ok thanks for the info