@d-healey & @Lindon Thank you very much, both of your responses have really helped me explore the possibilities here. I am pleased to know I can use the text property in this way, and will definitley explore this more in future projects. A lot of this particularly UI is already laid out so I am settling for bypassing any text that is not the exception cases, and employing it for any cases that call for customized value displays.
Example based on Lindon's edits:
const tempos = ["1/1", "1/2D", "1/2", "1/2T", "1/4D", "1/4", "1/4T", "1/8D", "1/8", "1/8T", "1/16D", "1/16", "1/16T", "1/32D", "1/32", "1/32T", "1/64D", "1/64", "1/64T"];
const filterModeLabels = ["Lowpass", "Highpass", "Bandpass"];
const LAF_StandardKnob = Content.createLocalLookAndFeel();
LAF_StandardKnob.registerFunction("drawRotarySlider", function(Style,Widget)
//...
if (Widget.text.contains("FilterType"))
{
// For FilterType knob, display the corresponding label
displayLabel = filterModeLabels[parseInt(Widget.value)];
//For TempoSync, display tempo sync values
}else if (Widget.text.contains("TempoSync")){
displayLabel = tempos[parseInt(Widget.value)];
}
else
{
// For all other knobs, display the value
displayLabel = Engine.doubleToString(KnobValue, 2) + Widget.suffix;
}
Style.drawAlignedText(displayLabel, [Area[STARTX] + LabelOffset, Area[HEIGHT]-Area [HEIGHT] +6, Area [HEIGHT]+LabelOffset, Area[HEIGHT]], "left");
//...