I’d assume most compilers will optimize exp(ln(2.f)*x) to exp(0.69…*x).

What I find a bit strange is that the skew is implemented the way it is with pow(normalizedValue, skew). IMO, there are generally three different types of parameters: stepped, linear and log. And to do a log parameter correctly it should be done using `normalized = log(plain/min)/log(max/min)`

and `plain = min * exp(normalized * log(max/min))`

.

For some reason skew is implemented similarily in IPlug but I must admit I always change this to the above calculations for log parameters. With skew it might be easier to add neg log parameters but I never came to a point where I needed that.

Of course, with JUCE it is now quite easy to use lambdas for such behavior but I still never understood why a skew was added in the first place. That doesn’t mean that there might not have been a reason, I simply can’t see it.