One of my favorite new features in JUCE 4 is the AudioParameter classes - however there seems to be a major shortcoming with them. Things like getting the raw normalized value and setting the unit label seem to be arbitrarily made private without any way to access them either during or after construction. It seems like it would make a lot more sense to make them either protected (so I can subclass and set the values myself) or make public methods to set these. As it stands now, it seems the only answer is to copy and paste the classes over to a new file in my own code and change the implementation myself, but obviously this is far from ideal.
I noticed these values seem to be able to be accessed/modified via the AudioProcessorValueStateTree class, but accoring to Jules in another thread (http://www.juce.com/forum/topic/how-use-audioprocessorvaluetreestate-along-audioparameterbool/float/choice) the value state tree and AudioParameter classes are meant to be different ways of implementing audio parameters and aren't really related.
tl;dr Why do the AudioParameterFloat/Bool/Choice classes have so much of their functionality made private for seemingly no reason?