Parameter of JUCE audio plugin, which is used in Unity is not showed as boolean / toggle parameter. Range is adjust to 0 to 1

I made an audio effect plugin using JUCE and applied to Unity. The parameter is the variable of AudioProcessorValueTreeState class. I set few parameters, which is controlled by range (using NormalisableRange class), and other parameters, which is controlled by combobox or toggle. It appears correctly on VST3 on DAW. However, on Unity, it does not appear correctly. Every parameters, which is controlled by combobox or toggle are showed as range-control parameter. Although it appears range-control (supposed to be toggle/combobox-control), it works correctly. However, I want to know why it shows different.
I also want to know why the range is adjust to 0 to 1 in Unity.

Mapping parameters to a 0 to 1 float range which will then be exposed to the host application loading the plugin is a common thing required by all other plugin formats JUCE uses. For that reason, the AudioProcessor class that is used as a common base class for all the plugin formats doesn’t even know about classes as the AudioProcessorValueTreeState or AudioParameterBool, it only knows normalised float parameters, maybe the number of steps for that parameter and string<->value conversion functions. So I guess they used the same logic when building the Unity wrapper to stay consistent.

1 Like