IMHO a protocol similar to the VST3 SDK would make sense:
This would mean simply adding some functions to the existing RangedAudioParameter subclasses (and the templated get() function):
ValueType get (int sampleNum=0); // fully backwards compatible
int getNumCurvePoints() const;
int getSamplesPositionOfCurvePoint (int curvePointIndex) const;
And then you can create helper functions like the one @chkn was probably thinking of:
static inline void multiplyWithParameter (juce::AudioBuffer<float>& buffer,
const juce::AudioParameterFloat& parameter,
float factor=1.0f);
No need for changes in processBlock’s signature at all…

