Parameters , only normalised float?

If parameters are only normalized values , then
why do we have things like
streamer.readBool
streamer.readChar16
streamer.readChar8
streamer.readInt16 etc. etc. ?
And if the parameter is only normalized,
then why can I, on the UI editor, set a UI control to have
min value = 1
max value = 127

The parameters are normalized. But you can save whatever data you want. For example, in the UI if the user enters a name for a control or something, you can save it. It is not a VST3 normalized parameters, yet you can save it and restore it when the user reloads the plugin.

My framework (Jamba), offers VstParameter that are the normalized parameters and JmbParameter that can be anything (and of course the framework takes care of the writing/reading in the proper order, including versioning so that when the plugin evolves, it can read the stream with a previous order and save it with a new one)

1 Like

The plugin-GUI relationship is complex in all of the APIs. The separation of audio processing and GUI-details requires a soft-binding method that connects your plugin parameters and GUI control variables in a thread-safe manner, including loading and saving both factory and user-created presets on top of the normal GUI parameter interface (you turning the knobs). And, automation of parameters in the DAW adds another layer of complexity. There are a few plugin programming books out there with chapter sections devoted to just this topic alone, lots of pictures, etc…

The VST3 SDK samples are all designed to work with the VSTGUI4 library. Look in the VSTGUI4 library folder and you will see their binding code in /plugin-bindings/vst3editor.h and vst3editor.cpp

1 Like