Presets with out-of -bounds values

Presets can have out-of-bound parameter values. In Bitwig and Reaper, if a VST3 preset has a parameter value of -500, but the the parameter only goes from -100 to +100, it will accept the -500 and set the parameter to it, even if it is impossible to set it to that value with other means.

That’s a really cool hack for us, and we can distribute kind of “easter egg” style presets which go out of bounds of our VST3 Plugin. FUN!

However, testing in Ableton Live we see that there the preset values are clipped to the “legal” boundaries of the parameter.

Is this a grey area of the VST3 protocol? What is Steinbergs stance on this? Should the preset handling include some sanity checking and clipping of the values or not?

VST3 hosts see only normalized values [0.0, 1.0].
Presets are binary Blob saved and loaded by the plug-in itself, the host provides only a way to save these binary blob inside a project or on Harddisk.
What do you mean by having a value of -500?

Preset values are normalized to [0.0, 1.0] internally, but their range will be expanded to whatever values the parameter has.
We stumbled on this by making a preset, then adding more parameters which messed with the parameter index.
You can try it out with the preset “Easter Egg”, works in Bitwig and Reaper, maybe other hosts too.

By the way, what’s the rationale why presets aren’t plain XML or JSON but a binary blob? I can’t think of any reason. I’d rather have the .uidesc file a binary when compiled for the user than the preset files.