Just as a preface: I have looked for several days through similar forum posts about this issue, and none of the answers solved my issue. No matter what I do I cannot get my host (Ableton) to display automation values as anything other than the default floating point with a range of 0.0f to 1.0f. I would really ideally want to change my togglebutton parameters to be either binary “On”/“Off” strings since it would be confusing for a user to have a continuous automation envelope for a binary switch.
I’ve tried numerous ways of writing to parameter text conversion functions, all to no avail. I’ve tried using lambdas (I am building with C++ 11, so that should work). I have tried writing the functions as class methods of my PluginProcessor, and I have tried writing them as static functions. No matter what I do, my host only displays the parameters on the automation envelope as being between 0 and 1. I have tested this both with the VST I created as well as the AU and neither seem to behave properly.
Just in case this helps, here is an example of my code within my PluginProcessor constructor. The below parameter is controlled by a ToggleButton.
parameters.createAndAddParameter("randomParamID", "Random", String(),
NormalisableRange<float> (0.0f, 1.0f, 1.0f), 0.0f,
[](float v) -> String { return v < 0.5f ? "Off" : "On";},
[](const String& s) -> float { if (s == "Off"){return 0.0f;} if(s =="On"){return 1.0f;}return 0.0f;} );
Any thoughts would be highly appreciated!

