Sample accurate parameter automation?

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…

9 Likes