daniel
March 3, 2018, 1:13pm
2
By looking at the code it is called synchronously from setValue():
void addListener (Listener* l) { listeners.add (l); }
void removeListener (Listener* l) { listeners.remove (l); }
RangedAudioParameter& getParameter() { return parameter; }
const RangedAudioParameter& getParameter() const { return parameter; }
const NormalisableRange<float>& getRange() const { return parameter.getNormalisableRange(); }
float getDenormalisedDefaultValue() const { return denormalise (parameter.getDefaultValue()); }
void setDenormalisedValue (float value)
{
if (! approximatelyEqual (value, (float) unnormalisedValue))
setNormalisedValue (normalise (value));
}
float getDenormalisedValueForText (const String& text) const
{
return denormalise (parameter.getValueForText (text));
}
setValue itself is called from the host via SDK, so it is host dependant. I know from AAX, that it even has a dedicated Automation thread, see these forum threads: Automation firing early in Pro Tools 11 and Reminder: AAX setParameter is asynchronous -> use locking - #8 by Mayae
TL;DR don’t expect it to be the same for all situations.
I think this is a good idea in any case, if it is time consuming. Especially it seems the execution time will be determined by external hardware, if I understood that correctly.
While prototyping I managed to stall all drawing of my DAW even from inside the plugin…
1 Like