I’ve looked into this a bit, and at the moment it looks like this issue is on the hosting side.
I expect that the AU plugins which appear to work in REAPER are exposing the non-normalised parameter ranges to the host. However, JUCE AU plugins only expose normalised parameter values to the host for non-discrete parameters. This is by design, and changing this behaviour is not really viable, as it would likely require a change along the lines of requiring RangedAudioParameter to be used everywhere that plain AudioProcessorParameters are allowed at the moment. Such a change would break most users’ plugin projects.
Luckily, the AU header provides a pair of properties, kAudioUnitProperty_ParameterStringFromValue and kAudioUnitProperty_ParameterValueFromString which allow parameter values to be converted to strings and back. The docs for ParameterStringFromValue state:
This property is used with parameters that are marked with the kAudioUnitParameterFlag_HasName parameter info flag. This indicates that some (or all) of the values represented by the parameter can and should be represented by a special display string.
…
ParameterStringFromValue… states to the host that if it is displaying those parameter’s values, they should request a name any time any value of the parameter is set when displaying that parameter.
Further on in the AU header, we find this:
enum {
kAudioUnitParameterFlag_HasName = kAudioUnitParameterFlag_ValuesHaveStrings
};
In the JUCE AU wrapper, we mark all parameters with the ValuesHaveStrings flag. If I’m interpreting the docs correctly, the host should use StringFromValue to translate values of parameters marked with this flag. In Live, breakpoints placed in the StringFromValue branches of GetProperty and GetPropertyInfo are hit when modifying parameters through the generic display shown in @PluginPenguin’s initial post. However, REAPER doesn’t seem to do this (breakpoints in the same locations are never hit).
At the moment I think this is a bug in REAPER, so I’ve created a bug report thread on the official forum.
